blob: fbeeb46137e28642afaa40b9037a5d50dd066b5a [file] [log] [blame]
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
part of observable_tests;
testObservableValue() {
test('ObservableValue', () {
final value = new ObservableValue<String>('initial');
expect(value.value, equals('initial'));
// Set value.
value.value = 'new';
expect(value.value, equals('new'));
// Change event is sent when value is changed.
EventSummary result = null;
value.addChangeListener((summary) {
expect(result, isNull);
result = summary;
expect(result, isNotNull);
});
value.value = 'newer';
expect(result, isNotNull);
expect(result.events.length, equals(1));
validateUpdate(result.events[0], value, 'value', null, 'newer', 'new');
});
test('does not raise event if unchanged', () {
final value = new ObservableValue<String>('foo');
expect(value.value, equals('foo'));
bool called = false;
value.addChangeListener((summary) { called = true; });
// Set it to the same value.
value.value = 'foo';
// Should not have gotten an event.
expect(called, isFalse);
});
}