| 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(); |
| 11 | 11 |
| 12 debug('Test for setting an empty dictionary'); | 12 debug('Test for setting an empty dictionary'); |
| 13 dictionaryTest.set({}); | 13 dictionaryTest.set({}); |
| 14 dict = dictionaryTest.get(); | 14 dict = dictionaryTest.get(); |
| 15 shouldBeUndefined('dict.longMember'); | 15 shouldBeUndefined('dict.longMember'); |
| 16 shouldBe('dict.longMemberWithDefault', '42'); | 16 shouldBe('dict.longMemberWithDefault', '42'); |
| 17 shouldBeUndefined('dict.longOrNullMember'); | 17 shouldBeUndefined('dict.longOrNullMember'); |
| 18 shouldBeNull('dict.longOrNullMemberWithDefault'); | 18 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 19 shouldBeUndefined('dict.booleanMember'); | 19 shouldBeUndefined('dict.booleanMember'); |
| 20 shouldBeUndefined('dict.doubleMember'); | 20 shouldBeUndefined('dict.doubleMember'); |
| 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 shouldBe('dict.stringSequenceMemberWithDefault', '[]'); |
| 27 shouldBeUndefined('dict.stringSequenceOrNullMember'); | 28 shouldBeUndefined('dict.stringSequenceOrNullMember'); |
| 28 shouldBeUndefined('dict.elementMember'); | 29 shouldBeUndefined('dict.elementMember'); |
| 29 shouldBeUndefined('dict.elementOrNullMember'); | 30 shouldBeUndefined('dict.elementOrNullMember'); |
| 30 shouldBeUndefined('dict.enumMember'); | 31 shouldBeUndefined('dict.enumMember'); |
| 31 shouldBeUndefined('dict.enumArrayMember'); | 32 shouldBeUndefined('dict.enumArrayMember'); |
| 32 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo'); | 33 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo'); |
| 33 shouldBeUndefined('dict.enumOrNullMember'); | 34 shouldBeUndefined('dict.enumOrNullMember'); |
| 34 shouldBeUndefined('dict.objectMember'); | 35 shouldBeUndefined('dict.objectMember'); |
| 35 shouldBeNull('dict.objectOrNullMemberWithDefault'); | 36 shouldBeNull('dict.objectOrNullMemberWithDefault'); |
| 36 shouldBeUndefined('dict.doubleOrStringMember'); | 37 shouldBeUndefined('dict.doubleOrStringMember'); |
| 37 shouldBeNull('dict.eventTargetOrNullMember'); | 38 shouldBeNull('dict.eventTargetOrNullMember'); |
| 38 debug(''); | 39 debug(''); |
| 39 | 40 |
| 40 debug('Test for setting undefined'); | 41 debug('Test for setting undefined'); |
| 41 dictionaryTest.set(undefined); | 42 dictionaryTest.set(undefined); |
| 42 dict = dictionaryTest.get(); | 43 dict = dictionaryTest.get(); |
| 43 shouldBeUndefined('dict.longMember'); | 44 shouldBeUndefined('dict.longMember'); |
| 44 shouldBe('dict.longMemberWithDefault', '42'); | 45 shouldBe('dict.longMemberWithDefault', '42'); |
| 45 shouldBeUndefined('dict.longOrNullMember'); | 46 shouldBeUndefined('dict.longOrNullMember'); |
| 46 shouldBeNull('dict.longOrNullMemberWithDefault'); | 47 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 47 shouldBeUndefined('dict.booleanMember'); | 48 shouldBeUndefined('dict.booleanMember'); |
| 48 shouldBeUndefined('dict.doubleMember'); | 49 shouldBeUndefined('dict.doubleMember'); |
| 49 shouldBeUndefined('dict.unrestrictedDoubleMember'); | 50 shouldBeUndefined('dict.unrestrictedDoubleMember'); |
| 50 shouldBeUndefined('dict.stringMember'); | 51 shouldBeUndefined('dict.stringMember'); |
| 51 shouldBeUndefined('dict.byteStringMember'); | 52 shouldBeUndefined('dict.byteStringMember'); |
| 52 shouldBeUndefined('dict.usvStringMember'); | 53 shouldBeUndefined('dict.usvStringMember'); |
| 53 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); | 54 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); |
| 54 shouldBeUndefined('dict.stringSequenceMember'); | 55 shouldBeUndefined('dict.stringSequenceMember'); |
| 56 shouldBe('dict.stringSequenceMemberWithDefault', '[]'); |
| 55 shouldBeUndefined('dict.stringSequenceOrNullMember'); | 57 shouldBeUndefined('dict.stringSequenceOrNullMember'); |
| 56 shouldBeUndefined('dict.elementMember'); | 58 shouldBeUndefined('dict.elementMember'); |
| 57 shouldBeUndefined('dict.elementOrNullMember'); | 59 shouldBeUndefined('dict.elementOrNullMember'); |
| 58 shouldBeUndefined('dict.objectMember'); | 60 shouldBeUndefined('dict.objectMember'); |
| 59 shouldBeNull('dict.objectOrNullMemberWithDefault'); | 61 shouldBeNull('dict.objectOrNullMemberWithDefault'); |
| 60 shouldBeNull('dict.eventTargetOrNullMember'); | 62 shouldBeNull('dict.eventTargetOrNullMember'); |
| 61 debug(''); | 63 debug(''); |
| 62 | 64 |
| 63 var element1 = document.createElement('div'); | 65 var element1 = document.createElement('div'); |
| 64 | 66 |
| 65 debug('Test for setting valid values'); | 67 debug('Test for setting valid values'); |
| 66 dictionaryTest.set({ | 68 dictionaryTest.set({ |
| 67 longMember: 1, | 69 longMember: 1, |
| 68 longMemberWithDefault: 2, | 70 longMemberWithDefault: 2, |
| 69 longOrNullMember: 3, | 71 longOrNullMember: 3, |
| 70 longOrNullMemberWithDefault: 4, | 72 longOrNullMemberWithDefault: 4, |
| 71 stringMember: 'modifiedString1', | 73 stringMember: 'modifiedString1', |
| 72 stringMemberWithDefault: 'modifiedString2', | 74 stringMemberWithDefault: 'modifiedString2', |
| 73 byteStringMember: '\x00\x01\xFE\xFF', | 75 byteStringMember: '\x00\x01\xFE\xFF', |
| 74 usvStringMember: '!@#123ABCabc\xA0\uD800\uDC00', | 76 usvStringMember: '!@#123ABCabc\xA0\uD800\uDC00', |
| 75 booleanMember: true, | 77 booleanMember: true, |
| 76 doubleMember: 3.14, | 78 doubleMember: 3.14, |
| 77 unrestrictedDoubleMember: NaN, | 79 unrestrictedDoubleMember: NaN, |
| 78 stringSequenceMember: ['foo', 'bar', 'baz'], | 80 stringSequenceMember: ['foo', 'bar', 'baz'], |
| 81 stringSequenceMemberWithDefault: ['foo', 'bar', 'baz'], |
| 79 stringSequenceOrNullMember: [], | 82 stringSequenceOrNullMember: [], |
| 80 elementMember: element1, | 83 elementMember: element1, |
| 81 elementOrNullMember: null, | 84 elementOrNullMember: null, |
| 82 enumMember: 'foo', | 85 enumMember: 'foo', |
| 83 enumMemberWithDefault: 'bar', | 86 enumMemberWithDefault: 'bar', |
| 84 enumOrNullMember: 'baz', | 87 enumOrNullMember: 'baz', |
| 85 enumArrayMember: ['foo', 'bar', 'baz'], | 88 enumArrayMember: ['foo', 'bar', 'baz'], |
| 86 objectMember: testObject1, | 89 objectMember: testObject1, |
| 87 objectOrNullMemberWithDefault: testObject2, | 90 objectOrNullMemberWithDefault: testObject2, |
| 88 doubleOrStringMember: 3.14, | 91 doubleOrStringMember: 3.14, |
| 89 eventTargetOrNullMember: element1 | 92 eventTargetOrNullMember: element1 |
| 90 }); | 93 }); |
| 91 dict = dictionaryTest.get(); | 94 dict = dictionaryTest.get(); |
| 92 shouldBe('dict.longMember', '1'); | 95 shouldBe('dict.longMember', '1'); |
| 93 shouldBe('dict.longMemberWithDefault', '2'); | 96 shouldBe('dict.longMemberWithDefault', '2'); |
| 94 shouldBe('dict.longOrNullMember', '3'); | 97 shouldBe('dict.longOrNullMember', '3'); |
| 95 shouldBe('dict.longOrNullMemberWithDefault', '4'); | 98 shouldBe('dict.longOrNullMemberWithDefault', '4'); |
| 96 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); | 99 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); |
| 97 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); | 100 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); |
| 98 shouldBeEqualToString('dict.byteStringMember', '\x00\x01\xFE\xFF'); | 101 shouldBeEqualToString('dict.byteStringMember', '\x00\x01\xFE\xFF'); |
| 99 shouldBeEqualToString('dict.usvStringMember', '!@#123ABCabc\xA0\uD800\uDC00'
); | 102 shouldBeEqualToString('dict.usvStringMember', '!@#123ABCabc\xA0\uD800\uDC00'
); |
| 100 shouldBeTrue('dict.booleanMember'); | 103 shouldBeTrue('dict.booleanMember'); |
| 101 shouldBe('dict.doubleMember', '3.14'); | 104 shouldBe('dict.doubleMember', '3.14'); |
| 102 shouldBe('dict.unrestrictedDoubleMember', 'NaN'); | 105 shouldBe('dict.unrestrictedDoubleMember', 'NaN'); |
| 103 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); | 106 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); |
| 107 shouldBe('dict.stringSequenceMemberWithDefault', '["foo", "bar", "baz"]'); |
| 104 shouldBe('dict.stringSequenceOrNullMember', '[]'); | 108 shouldBe('dict.stringSequenceOrNullMember', '[]'); |
| 105 shouldBe('dict.elementMember', 'element1'); | 109 shouldBe('dict.elementMember', 'element1'); |
| 106 // This will be undefined as the spec says | 110 // This will be undefined as the spec says |
| 107 shouldBeUndefined('dict.elementOrNullMember'); | 111 shouldBeUndefined('dict.elementOrNullMember'); |
| 108 shouldBeEqualToString('dict.enumMember', 'foo'); | 112 shouldBeEqualToString('dict.enumMember', 'foo'); |
| 109 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar'); | 113 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar'); |
| 110 shouldBeEqualToString('dict.enumOrNullMember', 'baz'); | 114 shouldBeEqualToString('dict.enumOrNullMember', 'baz'); |
| 111 shouldBe('dict.enumArrayMember', '["foo", "bar", "baz"]'); | 115 shouldBe('dict.enumArrayMember', '["foo", "bar", "baz"]'); |
| 112 shouldBe('dict.objectMember', 'testObject1'); | 116 shouldBe('dict.objectMember', 'testObject1'); |
| 113 shouldBe('dict.objectOrNullMemberWithDefault', 'testObject2'); | 117 shouldBe('dict.objectOrNullMemberWithDefault', 'testObject2'); |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 251 derived = dictionaryTest.getDerived(); | 255 derived = dictionaryTest.getDerived(); |
| 252 shouldBeUndefined('derived.longMember'); | 256 shouldBeUndefined('derived.longMember'); |
| 253 shouldBe('derived.longMemberWithDefault', '42'); | 257 shouldBe('derived.longMemberWithDefault', '42'); |
| 254 shouldBeUndefined('derived.longOrNullMember'); | 258 shouldBeUndefined('derived.longOrNullMember'); |
| 255 shouldBeNull('derived.longOrNullMemberWithDefault'); | 259 shouldBeNull('derived.longOrNullMemberWithDefault'); |
| 256 shouldBeUndefined('derived.booleanMember'); | 260 shouldBeUndefined('derived.booleanMember'); |
| 257 shouldBeUndefined('derived.doubleMember'); | 261 shouldBeUndefined('derived.doubleMember'); |
| 258 shouldBeUndefined('derived.stringMember'); | 262 shouldBeUndefined('derived.stringMember'); |
| 259 shouldBeEqualToString('derived.stringMemberWithDefault', 'defaultStringValue
'); | 263 shouldBeEqualToString('derived.stringMemberWithDefault', 'defaultStringValue
'); |
| 260 shouldBeUndefined('derived.stringSequenceMember'); | 264 shouldBeUndefined('derived.stringSequenceMember'); |
| 265 shouldBe('derived.stringSequenceMemberWithDefault', '[]'); |
| 261 shouldBeUndefined('derived.stringSequenceOrNullMember'); | 266 shouldBeUndefined('derived.stringSequenceOrNullMember'); |
| 262 shouldBeUndefined('derived.elementMember'); | 267 shouldBeUndefined('derived.elementMember'); |
| 263 shouldBeUndefined('derived.elementOrNullMember'); | 268 shouldBeUndefined('derived.elementOrNullMember'); |
| 264 shouldBeUndefined('derived.enumMember'); | 269 shouldBeUndefined('derived.enumMember'); |
| 265 shouldBeEqualToString('derived.enumMemberWithDefault', 'foo'); | 270 shouldBeEqualToString('derived.enumMemberWithDefault', 'foo'); |
| 266 shouldBeUndefined('derived.enumOrNullMember'); | 271 shouldBeUndefined('derived.enumOrNullMember'); |
| 267 shouldBeUndefined('derived.objectMember'); | 272 shouldBeUndefined('derived.objectMember'); |
| 268 shouldBeNull('derived.objectOrNullMemberWithDefault'); | 273 shouldBeNull('derived.objectOrNullMemberWithDefault'); |
| 269 shouldBeUndefined('derived.derivedStringMember'); | 274 shouldBeUndefined('derived.derivedStringMember'); |
| 270 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'derivedDefa
ultStringValue'); | 275 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'derivedDefa
ultStringValue'); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 286 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr
ing3'); | 291 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr
ing3'); |
| 287 shouldBeUndefined('derived.invalidMember'); | 292 shouldBeUndefined('derived.invalidMember'); |
| 288 shouldBeFalse('derived.requiredBooleanMember'); | 293 shouldBeFalse('derived.requiredBooleanMember'); |
| 289 debug(''); | 294 debug(''); |
| 290 | 295 |
| 291 debug('Test for passing invalid values as derived dictionary'); | 296 debug('Test for passing invalid values as derived dictionary'); |
| 292 shouldThrow("dictionaryTest.setDerived({objectMember: 42, requiredBooleanMem
ber: false })"); | 297 shouldThrow("dictionaryTest.setDerived({objectMember: 42, requiredBooleanMem
ber: false })"); |
| 293 shouldThrow("dictionaryTest.setDerived({})"); // Missing required member. | 298 shouldThrow("dictionaryTest.setDerived({})"); // Missing required member. |
| 294 } | 299 } |
| 295 </script> | 300 </script> |
| OLD | NEW |