| 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 |