Index: client/tests/client/dom/SerializedScriptValueTest.dart |
diff --git a/client/tests/client/dom/SerializedScriptValueTest.dart b/client/tests/client/dom/SerializedScriptValueTest.dart |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6e609822c5d2ac18e51cc501c974a319982a73f1 |
--- /dev/null |
+++ b/client/tests/client/dom/SerializedScriptValueTest.dart |
@@ -0,0 +1,38 @@ |
+#library('SerializedScriptValueTest'); |
+#import('../../../../lib/unittest/unittest.dart'); |
+#import('../../../../lib/unittest/dom_config.dart'); |
+#import('dart:dom'); |
+#import('utils.dart'); |
+ |
+serializationTest(name, value) => test(name, () { |
+ // To check how value is serialized and deserialized, we create a MessageEvent. |
+ final event = document.createEvent('MessageEvent'); |
+ event.initMessageEvent('', false, false, value, '', '', window, []); |
+ verifyGraph(value, event.data); |
+}); |
+ |
+ |
+main() { |
+ useDomConfiguration(); |
+ |
+ 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); |
+} |