// 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'; 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]); }