Index: test/codegen/lib/html/serialized_script_value_test.dart |
diff --git a/test/codegen/lib/html/serialized_script_value_test.dart b/test/codegen/lib/html/serialized_script_value_test.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..16c8b438d8c2a673e9112005631290eca9370673 |
--- /dev/null |
+++ b/test/codegen/lib/html/serialized_script_value_test.dart |
@@ -0,0 +1,52 @@ |
+library SerializedScriptValueTest; |
+import 'package:unittest/unittest.dart'; |
+import 'package:unittest/html_config.dart'; |
+import 'dart:html'; |
+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() { |
+ useHtmlConfiguration(); |
+ |
+ 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]); |
+} |