OLD | NEW |
1 <!DOCTYPE html> | 1 <!DOCTYPE html> |
2 <script src="../../resources/js-test.js"></script> | 2 <script src="../../resources/js-test.js"></script> |
3 <script> | 3 <script> |
4 description('IDL dictionary unittest'); | 4 description('IDL dictionary unittest'); |
5 | 5 |
6 var testObject1 = { foo: 'x' }; | 6 var testObject1 = { foo: 'x' }; |
7 var testObject2 = { bar: 'y' }; | 7 var testObject2 = { bar: 'y' }; |
8 | 8 |
9 if (window.internals && internals.dictionaryTest) { | 9 if (window.internals && internals.dictionaryTest) { |
10 var dictionaryTest = window.internals.dictionaryTest(); | 10 var dictionaryTest = window.internals.dictionaryTest(); |
(...skipping 10 matching lines...) Expand all Loading... |
21 shouldBeUndefined('dict.unrestrictedDoubleMember'); | 21 shouldBeUndefined('dict.unrestrictedDoubleMember'); |
22 shouldBeUndefined('dict.stringMember'); | 22 shouldBeUndefined('dict.stringMember'); |
23 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); | 23 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); |
24 shouldBeUndefined('dict.byteStringMember'); | 24 shouldBeUndefined('dict.byteStringMember'); |
25 shouldBeUndefined('dict.usvStringMember'); | 25 shouldBeUndefined('dict.usvStringMember'); |
26 shouldBeUndefined('dict.stringSequenceMember'); | 26 shouldBeUndefined('dict.stringSequenceMember'); |
27 shouldBeUndefined('dict.stringSequenceOrNullMember'); | 27 shouldBeUndefined('dict.stringSequenceOrNullMember'); |
28 shouldBeUndefined('dict.elementMember'); | 28 shouldBeUndefined('dict.elementMember'); |
29 shouldBeUndefined('dict.elementOrNullMember'); | 29 shouldBeUndefined('dict.elementOrNullMember'); |
30 shouldBeUndefined('dict.enumMember'); | 30 shouldBeUndefined('dict.enumMember'); |
| 31 shouldBeUndefined('dict.enumArrayMember'); |
31 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo'); | 32 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo'); |
32 shouldBeUndefined('dict.enumOrNullMember'); | 33 shouldBeUndefined('dict.enumOrNullMember'); |
33 shouldBeUndefined('dict.objectMember'); | 34 shouldBeUndefined('dict.objectMember'); |
34 shouldBeNull('dict.objectOrNullMemberWithDefault'); | 35 shouldBeNull('dict.objectOrNullMemberWithDefault'); |
35 shouldBeUndefined('dict.doubleOrStringMember'); | 36 shouldBeUndefined('dict.doubleOrStringMember'); |
36 shouldBeNull('dict.eventTargetOrNullMember'); | 37 shouldBeNull('dict.eventTargetOrNullMember'); |
37 debug(''); | 38 debug(''); |
38 | 39 |
39 debug('Test for setting undefined'); | 40 debug('Test for setting undefined'); |
40 dictionaryTest.set(undefined); | 41 dictionaryTest.set(undefined); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
74 booleanMember: true, | 75 booleanMember: true, |
75 doubleMember: 3.14, | 76 doubleMember: 3.14, |
76 unrestrictedDoubleMember: NaN, | 77 unrestrictedDoubleMember: NaN, |
77 stringSequenceMember: ['foo', 'bar', 'baz'], | 78 stringSequenceMember: ['foo', 'bar', 'baz'], |
78 stringSequenceOrNullMember: [], | 79 stringSequenceOrNullMember: [], |
79 elementMember: element1, | 80 elementMember: element1, |
80 elementOrNullMember: null, | 81 elementOrNullMember: null, |
81 enumMember: 'foo', | 82 enumMember: 'foo', |
82 enumMemberWithDefault: 'bar', | 83 enumMemberWithDefault: 'bar', |
83 enumOrNullMember: 'baz', | 84 enumOrNullMember: 'baz', |
| 85 enumArrayMember: ['foo', 'bar', 'baz'], |
84 objectMember: testObject1, | 86 objectMember: testObject1, |
85 objectOrNullMemberWithDefault: testObject2, | 87 objectOrNullMemberWithDefault: testObject2, |
86 doubleOrStringMember: 3.14, | 88 doubleOrStringMember: 3.14, |
87 eventTargetOrNullMember: element1 | 89 eventTargetOrNullMember: element1 |
88 }); | 90 }); |
89 dict = dictionaryTest.get(); | 91 dict = dictionaryTest.get(); |
90 shouldBe('dict.longMember', '1'); | 92 shouldBe('dict.longMember', '1'); |
91 shouldBe('dict.longMemberWithDefault', '2'); | 93 shouldBe('dict.longMemberWithDefault', '2'); |
92 shouldBe('dict.longOrNullMember', '3'); | 94 shouldBe('dict.longOrNullMember', '3'); |
93 shouldBe('dict.longOrNullMemberWithDefault', '4'); | 95 shouldBe('dict.longOrNullMemberWithDefault', '4'); |
94 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); | 96 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); |
95 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); | 97 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); |
96 shouldBeEqualToString('dict.byteStringMember', '\x00\x01\xFE\xFF'); | 98 shouldBeEqualToString('dict.byteStringMember', '\x00\x01\xFE\xFF'); |
97 shouldBeEqualToString('dict.usvStringMember', '!@#123ABCabc\xA0\uD800\uDC00'
); | 99 shouldBeEqualToString('dict.usvStringMember', '!@#123ABCabc\xA0\uD800\uDC00'
); |
98 shouldBeTrue('dict.booleanMember'); | 100 shouldBeTrue('dict.booleanMember'); |
99 shouldBe('dict.doubleMember', '3.14'); | 101 shouldBe('dict.doubleMember', '3.14'); |
100 shouldBe('dict.unrestrictedDoubleMember', 'NaN'); | 102 shouldBe('dict.unrestrictedDoubleMember', 'NaN'); |
101 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); | 103 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); |
102 shouldBe('dict.stringSequenceOrNullMember', '[]'); | 104 shouldBe('dict.stringSequenceOrNullMember', '[]'); |
103 shouldBe('dict.elementMember', 'element1'); | 105 shouldBe('dict.elementMember', 'element1'); |
104 // This will be undefined as the spec says | 106 // This will be undefined as the spec says |
105 shouldBeUndefined('dict.elementOrNullMember'); | 107 shouldBeUndefined('dict.elementOrNullMember'); |
106 shouldBeEqualToString('dict.enumMember', 'foo'); | 108 shouldBeEqualToString('dict.enumMember', 'foo'); |
107 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar'); | 109 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar'); |
108 shouldBeEqualToString('dict.enumOrNullMember', 'baz'); | 110 shouldBeEqualToString('dict.enumOrNullMember', 'baz'); |
| 111 shouldBe('dict.enumArrayMember', '["foo", "bar", "baz"]'); |
109 shouldBe('dict.objectMember', 'testObject1'); | 112 shouldBe('dict.objectMember', 'testObject1'); |
110 shouldBe('dict.objectOrNullMemberWithDefault', 'testObject2'); | 113 shouldBe('dict.objectOrNullMemberWithDefault', 'testObject2'); |
111 shouldBe('dict.doubleOrStringMember', '3.14'); | 114 shouldBe('dict.doubleOrStringMember', '3.14'); |
112 shouldBe('dict.eventTargetOrNullMember', 'element1'); | 115 shouldBe('dict.eventTargetOrNullMember', 'element1'); |
113 debug(''); | 116 debug(''); |
114 | 117 |
115 debug('Additional test for union type members'); | 118 debug('Additional test for union type members'); |
116 dictionaryTest.set({ | 119 dictionaryTest.set({ |
117 doubleOrStringMember: "foo", | 120 doubleOrStringMember: "foo", |
118 }); | 121 }); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
175 shouldThrow("dictionaryTest.set({byteStringMember: '\u0100'})"); | 178 shouldThrow("dictionaryTest.set({byteStringMember: '\u0100'})"); |
176 debug(''); | 179 debug(''); |
177 | 180 |
178 debug('Test for setting invalid USVString value'); | 181 debug('Test for setting invalid USVString value'); |
179 dictionaryTest.set({usvStringMember: '_\uDC00_\uD800_\uDC00\uD800_'}); | 182 dictionaryTest.set({usvStringMember: '_\uDC00_\uD800_\uDC00\uD800_'}); |
180 dict = dictionaryTest.get(); | 183 dict = dictionaryTest.get(); |
181 shouldBeEqualToString('dict.usvStringMember', '_\uFFFD_\uFFFD_\uFFFD\uFFFD_'
); | 184 shouldBeEqualToString('dict.usvStringMember', '_\uFFFD_\uFFFD_\uFFFD\uFFFD_'
); |
182 | 185 |
183 debug('Test for setting invalid enum value'); | 186 debug('Test for setting invalid enum value'); |
184 shouldThrow("dictionaryTest.set({enumMember: 'invalid'})"); | 187 shouldThrow("dictionaryTest.set({enumMember: 'invalid'})"); |
| 188 shouldThrow("dictionaryTest.set({enumArrayMember: ['foo', 'invalid', 'baz']}
)"); |
185 debug(''); | 189 debug(''); |
186 | 190 |
187 debug('Test for setting invalid object value'); | 191 debug('Test for setting invalid object value'); |
188 shouldThrow("dictionaryTest.set({objectMember: 42})"); | 192 shouldThrow("dictionaryTest.set({objectMember: 42})"); |
189 shouldThrow("dictionaryTest.set({objectMember: 'invalid'})"); | 193 shouldThrow("dictionaryTest.set({objectMember: 'invalid'})"); |
190 debug(''); | 194 debug(''); |
191 | 195 |
192 debug('Test for setting invalid Element value'); | 196 debug('Test for setting invalid Element value'); |
193 shouldThrow("dictionaryTest.set({elementMember: 42})"); | 197 shouldThrow("dictionaryTest.set({elementMember: 42})"); |
194 shouldThrow("dictionaryTest.set({elementMember: testObject1})"); | 198 shouldThrow("dictionaryTest.set({elementMember: testObject1})"); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
277 shouldBe('derived.longMember', '1'); | 281 shouldBe('derived.longMember', '1'); |
278 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString'); | 282 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString'); |
279 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2'); | 283 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2'); |
280 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr
ing3'); | 284 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr
ing3'); |
281 shouldBeUndefined('derived.invalidMember'); | 285 shouldBeUndefined('derived.invalidMember'); |
282 | 286 |
283 debug(''); | 287 debug(''); |
284 shouldThrow("dictionaryTest.setDerived({objectMember: 42})"); | 288 shouldThrow("dictionaryTest.setDerived({objectMember: 42})"); |
285 } | 289 } |
286 </script> | 290 </script> |
OLD | NEW |