ff5f391c0a
Make API more consistent for a few methods. Reduce the number of language features used in tests: * Never iterating an iterable, always converting it using `.toList()` first and iterating using indices (fx `setEquals`). Also require a `List` in places where an `Iterable` wasn't necessary. * Avoid doing complicated computations that are also used for the error message. Do simple check first, then recompute to get better error messages (fx `allDistinct`). Renamed some rarely used members for consistency (`stringContainsInOrder`->`containsInOrder`, where other string-contains functions just start with `contains`, and `containsOneOf` -> `containsAny` to match `Iterable.any` phrasing, and also it accepts if containing at least one, not precisely one.) Removed a function that wasn't used anywhere. Moved `assertStatementsEnabled` to `variations.dart` as `asserts`. Removed `typeAssertionsEnabled` and `checkedModeEnabled`. The former used in one place, where it was replaced with `checkedImplicitDowncasts` from `variations.dart`, the latter wasn't used anywhere. Deprecates `package:expect/minitest.dart`. It was never intended to be used for new tests, only as a help to convert existing tests written against `package:unit_test`. All existing imports marked as `// ignore: deprecated_member_use`. Change-Id: I07e21d4c0f3ccf11b82ee34af2668fdbb22264d2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352360 Reviewed-by: Slava Egorov <vegorov@google.com> Reviewed-by: Ömer Ağacan <omersa@google.com> Reviewed-by: Nate Bosch <nbosch@google.com> Reviewed-by: Stephen Adams <sra@google.com> Commit-Queue: Lasse Nielsen <lrn@google.com>
55 lines
1.7 KiB
Dart
55 lines
1.7 KiB
Dart
// Copyright (c) 2020, 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:html';
|
|
|
|
import 'package:expect/minitest.dart'; // ignore: deprecated_member_use_from_same_package
|
|
|
|
import 'utils.dart';
|
|
|
|
serializationTest(name, value) {
|
|
test(name, () {
|
|
// To check how value is serialized and deserialized, we create a
|
|
// MessageEvent.
|
|
final event =
|
|
new MessageEvent('', data: value, origin: '', lastEventId: '');
|
|
verifyGraph(value, event.data);
|
|
});
|
|
}
|
|
|
|
main() {
|
|
serializationTest('null', null);
|
|
serializationTest('int', 1);
|
|
serializationTest('double', 2.39);
|
|
serializationTest('string', 'hey!');
|
|
|
|
final simpleMap = {'a': 100, 'b': 's'};
|
|
final dagMap = {'x': simpleMap, 'y': simpleMap};
|
|
final cyclicMap = {'b': dagMap};
|
|
cyclicMap['a'] = cyclicMap;
|
|
serializationTest('simple map', simpleMap);
|
|
serializationTest('dag map', dagMap);
|
|
serializationTest('cyclic map', cyclicMap);
|
|
|
|
final simpleList = [100, 's'];
|
|
final dagList = [simpleList, simpleList];
|
|
final cyclicList = [dagList];
|
|
cyclicList.add(cyclicList);
|
|
serializationTest('simple list', simpleList);
|
|
serializationTest('dag list', dagList);
|
|
serializationTest('cyclic list', cyclicList);
|
|
|
|
serializationTest('datetime', [new DateTime.now()]);
|
|
|
|
var blob = new Blob(
|
|
['Indescribable... Indestructible! Nothing can stop it!'], 'text/plain');
|
|
serializationTest('blob', [blob]);
|
|
|
|
var canvas = new CanvasElement();
|
|
canvas.width = 100;
|
|
canvas.height = 100;
|
|
var imageData = canvas.context2D.getImageData(0, 0, 1, 1);
|
|
serializationTest('imagedata', [imageData]);
|
|
}
|