| Index: packages/observable/test/list_change_test.dart
|
| diff --git a/packages/observe/test/list_change_test.dart b/packages/observable/test/list_change_test.dart
|
| similarity index 85%
|
| rename from packages/observe/test/list_change_test.dart
|
| rename to packages/observable/test/list_change_test.dart
|
| index 30afb6073a42f3a0bc2ffae5c54fa59ad7c91cc0..b07c0b8cc8bcb767d512a6aec3e59b601d516fa7 100644
|
| --- a/packages/observe/test/list_change_test.dart
|
| +++ b/packages/observable/test/list_change_test.dart
|
| @@ -1,16 +1,18 @@
|
| -// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
|
| +// Copyright (c) 2016, 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.
|
|
|
| import 'dart:async';
|
| -import 'package:observe/observe.dart';
|
| -import 'package:unittest/unittest.dart';
|
| -import 'observe_test_utils.dart';
|
| +
|
| +import 'package:observable/observable.dart';
|
| +import 'package:test/test.dart';
|
| +
|
| +import 'observable_test_utils.dart';
|
|
|
| // This file contains code ported from:
|
| // https://github.com/rafaelw/ChangeSummary/blob/master/tests/test.js
|
|
|
| -main() => dirtyCheckZone().run(listChangeTests);
|
| +main() => listChangeTests();
|
|
|
| // TODO(jmesserly): port or write array fuzzer tests
|
| listChangeTests() {
|
| @@ -29,7 +31,7 @@ listChangeTests() {
|
| model.add(0);
|
|
|
| var summary;
|
| - sub = model.listChanges.listen((r) { summary = r; });
|
| + sub = model.listChanges.listen((r) => summary = r);
|
|
|
| model.add(1);
|
| model.add(2);
|
| @@ -42,35 +44,34 @@ listChangeTests() {
|
| model = toObservable(['a', 'b', 'c', 'd', 'e']);
|
|
|
| var summary;
|
| - sub = model.listChanges.listen((r) { summary = r; });
|
| + sub = model.listChanges.listen((r) => summary = r);
|
|
|
| model.length = 2;
|
|
|
| return new Future(() {
|
| - expectChanges(summary, [_delta(2, ['c', 'd', 'e'], 0)]);
|
| + expectChanges(summary, [
|
| + _delta(2, ['c', 'd', 'e'], 0)
|
| + ]);
|
| summary = null;
|
| model.length = 5;
|
| -
|
| }).then(newMicrotask).then((_) {
|
| -
|
| expectChanges(summary, [_delta(2, [], 3)]);
|
| });
|
| });
|
|
|
| group('List deltas can be applied', () {
|
| -
|
| applyAndCheckDeltas(model, copy, changes) => changes.then((summary) {
|
| - // apply deltas to the copy
|
| - for (var delta in summary) {
|
| - copy.removeRange(delta.index, delta.index + delta.removed.length);
|
| - for (int i = delta.addedCount - 1; i >= 0; i--) {
|
| - copy.insert(delta.index, model[delta.index + i]);
|
| - }
|
| - }
|
| -
|
| - // Note: compare strings for easier debugging.
|
| - expect('$copy', '$model', reason: 'summary $summary');
|
| - });
|
| + // apply deltas to the copy
|
| + for (var delta in summary) {
|
| + copy.removeRange(delta.index, delta.index + delta.removed.length);
|
| + for (int i = delta.addedCount - 1; i >= 0; i--) {
|
| + copy.insert(delta.index, model[delta.index + i]);
|
| + }
|
| + }
|
| +
|
| + // Note: compare strings for easier debugging.
|
| + expect('$copy', '$model', reason: 'summary $summary');
|
| + });
|
|
|
| test('Contained', () {
|
| var model = toObservable(['a', 'b']);
|
| @@ -204,7 +205,7 @@ listChangeTests() {
|
| var changes = model.listChanges.first;
|
|
|
| model.removeAt(2);
|
| - model.insertAll(2, ['e', 'f', 'g']); // a b [e f g] d
|
| + model.insertAll(2, ['e', 'f', 'g']); // a b [e f g] d
|
| model[0] = 'h';
|
| model.removeAt(1);
|
|
|
| @@ -223,15 +224,14 @@ listChangeTests() {
|
| });
|
|
|
| group('edit distance', () {
|
| -
|
| assertEditDistance(orig, changes, expectedDist) => changes.then((summary) {
|
| - var actualDistance = 0;
|
| - for (var delta in summary) {
|
| - actualDistance += delta.addedCount + delta.removed.length;
|
| - }
|
| + var actualDistance = 0;
|
| + for (var delta in summary) {
|
| + actualDistance += delta.addedCount + delta.removed.length;
|
| + }
|
|
|
| - expect(actualDistance, expectedDist);
|
| - });
|
| + expect(actualDistance, expectedDist);
|
| + });
|
|
|
| test('add items', () {
|
| var model = toObservable([]);
|
|
|