| 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 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 117 shouldBeEqualToString('dict.doubleOrStringMember', '[object Object]'); | 117 shouldBeEqualToString('dict.doubleOrStringMember', '[object Object]'); |
| 118 dictionaryTest.set({ | 118 dictionaryTest.set({ |
| 119 doubleOrStringMember: [], | 119 doubleOrStringMember: [], |
| 120 }); | 120 }); |
| 121 dict = dictionaryTest.get(); | 121 dict = dictionaryTest.get(); |
| 122 shouldBeEqualToString('dict.doubleOrStringMember', ''); | 122 shouldBeEqualToString('dict.doubleOrStringMember', ''); |
| 123 dictionaryTest.set({ | 123 dictionaryTest.set({ |
| 124 doubleOrStringMember: null, | 124 doubleOrStringMember: null, |
| 125 }); | 125 }); |
| 126 dict = dictionaryTest.get(); | 126 dict = dictionaryTest.get(); |
| 127 // This behavior doesn't match the spec. The spec says it should be "null" |
| 128 // (of type string). This is an intentional mismatch; however, we might |
| 129 // want to follow the spec at some time. |
| 130 debug('This FAIL is intentional'); |
| 127 shouldBeEqualToString('dict.doubleOrStringMember', 'null'); | 131 shouldBeEqualToString('dict.doubleOrStringMember', 'null'); |
| 128 dictionaryTest.set({ | 132 dictionaryTest.set({ |
| 129 doubleOrStringMember: undefined, | 133 doubleOrStringMember: undefined, |
| 130 }); | 134 }); |
| 131 dict = dictionaryTest.get(); | 135 dict = dictionaryTest.get(); |
| 132 shouldBeUndefined('dict.doubleOrStringMember'); | 136 shouldBeUndefined('dict.doubleOrStringMember'); |
| 133 | 137 |
| 134 debug(''); | 138 debug(''); |
| 135 | 139 |
| 136 debug('Test for explicit undefined or null, and missing members'); | 140 debug('Test for explicit undefined or null, and missing members'); |
| 137 dictionaryTest.set({ | 141 dictionaryTest.set({ |
| 138 longMember: undefined, | 142 longMember: undefined, |
| 139 longMemberWithDefault: null, | 143 longMemberWithDefault: null, |
| 140 longOrNullMember: undefined, | 144 longOrNullMember: undefined, |
| 141 longOrNullMemberWithDefault: null, | 145 longOrNullMemberWithDefault: null, |
| 142 }); | 146 }); |
| 143 dict = dictionaryTest.get(); | 147 dict = dictionaryTest.get(); |
| 144 shouldBeUndefined('dict.longMember'); | 148 shouldBeUndefined('dict.longMember'); |
| 145 // ToNumber(null) results in 0. | 149 shouldBe('dict.longMemberWithDefault', '42'); |
| 146 shouldBe('dict.longMemberWithDefault', '0'); | |
| 147 // Passing undefined shouldn't invoke any conversion. | |
| 148 shouldBeUndefined('dict.longOrNullMember'); | 150 shouldBeUndefined('dict.longOrNullMember'); |
| 149 // Nullable and its default value is null | 151 // Nullable and its default value is null |
| 150 shouldBeNull('dict.longOrNullMemberWithDefault'); | 152 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 151 debug(''); | 153 debug(''); |
| 152 | 154 |
| 153 debug('Test for setting invalid member'); | 155 debug('Test for setting invalid member'); |
| 154 dictionaryTest.set({invalidMember: 'shouldNotBeSet'}); | 156 dictionaryTest.set({invalidMember: 'shouldNotBeSet'}); |
| 155 dict = dictionaryTest.get(); | 157 dict = dictionaryTest.get(); |
| 156 shouldBeUndefined('dict.invalidMember'); | 158 shouldBeUndefined('dict.invalidMember'); |
| 157 debug(''); | 159 debug(''); |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 225 shouldBe('derived.longMember', '1'); | 227 shouldBe('derived.longMember', '1'); |
| 226 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString'); | 228 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString'); |
| 227 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2'); | 229 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2'); |
| 228 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr
ing3'); | 230 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr
ing3'); |
| 229 shouldBeUndefined('derived.invalidMember'); | 231 shouldBeUndefined('derived.invalidMember'); |
| 230 | 232 |
| 231 debug(''); | 233 debug(''); |
| 232 shouldThrow("dictionaryTest.setDerived({objectMember: 42})"); | 234 shouldThrow("dictionaryTest.setDerived({objectMember: 42})"); |
| 233 } | 235 } |
| 234 </script> | 236 </script> |
| OLD | NEW |