| 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 if (window.internals && internals.dictionaryTest) { | 6 if (window.internals && internals.dictionaryTest) { |
| 7 var dictionaryTest = window.internals.dictionaryTest(); | 7 var dictionaryTest = window.internals.dictionaryTest(); |
| 8 | 8 |
| 9 debug('Test for setting an empty dictionary'); | 9 debug('Test for setting an empty dictionary'); |
| 10 dictionaryTest.set({}); | 10 dictionaryTest.set({}); |
| 11 dict = dictionaryTest.get(); | 11 dict = dictionaryTest.get(); |
| 12 shouldBeUndefined('dict.longMember'); | 12 shouldBeUndefined('dict.longMember'); |
| 13 shouldBe('dict.longMemberWithDefault', '42'); | 13 shouldBe('dict.longMemberWithDefault', '42'); |
| 14 shouldBeUndefined('dict.longOrNullMember'); | 14 shouldBeUndefined('dict.longOrNullMember'); |
| 15 shouldBeNull('dict.longOrNullMemberWithDefault'); | 15 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 16 shouldBeUndefined('dict.booleanMember'); | 16 shouldBeUndefined('dict.booleanMember'); |
| 17 shouldBeUndefined('dict.doubleMember'); | 17 shouldBeUndefined('dict.doubleMember'); |
| 18 shouldBeUndefined('dict.stringMember'); | 18 shouldBeUndefined('dict.stringMember'); |
| 19 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); | 19 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); |
| 20 shouldBeUndefined('dict.stringSequenceMember'); | 20 shouldBeUndefined('dict.stringSequenceMember'); |
| 21 shouldBeUndefined('dict.stringSequenceOrNullMember'); | 21 shouldBeUndefined('dict.stringSequenceOrNullMember'); |
| 22 shouldBeUndefined('dict.elementMember'); | 22 shouldBeUndefined('dict.elementMember'); |
| 23 shouldBeUndefined('dict.elementOrNullMember'); | 23 shouldBeUndefined('dict.elementOrNullMember'); |
| 24 shouldBeUndefined('dict.enumMember'); |
| 25 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo'); |
| 26 shouldBeUndefined('dict.enumOrNullMember'); |
| 24 debug(''); | 27 debug(''); |
| 25 | 28 |
| 26 debug('Test for setting undefined'); | 29 debug('Test for setting undefined'); |
| 27 dictionaryTest.set(undefined); | 30 dictionaryTest.set(undefined); |
| 28 dict = dictionaryTest.get(); | 31 dict = dictionaryTest.get(); |
| 29 shouldBeUndefined('dict.longMember'); | 32 shouldBeUndefined('dict.longMember'); |
| 30 shouldBe('dict.longMemberWithDefault', '42'); | 33 shouldBe('dict.longMemberWithDefault', '42'); |
| 31 shouldBeUndefined('dict.longOrNullMember'); | 34 shouldBeUndefined('dict.longOrNullMember'); |
| 32 shouldBeNull('dict.longOrNullMemberWithDefault'); | 35 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 33 shouldBeUndefined('dict.booleanMember'); | 36 shouldBeUndefined('dict.booleanMember'); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 49 longOrNullMember: 3, | 52 longOrNullMember: 3, |
| 50 longOrNullMemberWithDefault: 4, | 53 longOrNullMemberWithDefault: 4, |
| 51 stringMember: 'modifiedString1', | 54 stringMember: 'modifiedString1', |
| 52 stringMemberWithDefault: 'modifiedString2', | 55 stringMemberWithDefault: 'modifiedString2', |
| 53 booleanMember: true, | 56 booleanMember: true, |
| 54 doubleMember: 3.14, | 57 doubleMember: 3.14, |
| 55 stringSequenceMember: ['foo', 'bar', 'baz'], | 58 stringSequenceMember: ['foo', 'bar', 'baz'], |
| 56 stringSequenceOrNullMember: [], | 59 stringSequenceOrNullMember: [], |
| 57 elementMember: element1, | 60 elementMember: element1, |
| 58 elementOrNullMember: null, | 61 elementOrNullMember: null, |
| 62 enumMember: 'foo', |
| 63 enumMemberWithDefault: 'bar', |
| 64 enumOrNullMember: 'baz', |
| 59 }); | 65 }); |
| 60 dict = dictionaryTest.get(); | 66 dict = dictionaryTest.get(); |
| 61 shouldBe('dict.longMember', '1'); | 67 shouldBe('dict.longMember', '1'); |
| 62 shouldBe('dict.longMemberWithDefault', '2'); | 68 shouldBe('dict.longMemberWithDefault', '2'); |
| 63 shouldBe('dict.longOrNullMember', '3'); | 69 shouldBe('dict.longOrNullMember', '3'); |
| 64 shouldBe('dict.longOrNullMemberWithDefault', '4'); | 70 shouldBe('dict.longOrNullMemberWithDefault', '4'); |
| 65 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); | 71 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); |
| 66 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); | 72 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); |
| 67 shouldBeTrue('dict.booleanMember'); | 73 shouldBeTrue('dict.booleanMember'); |
| 68 shouldBe('dict.doubleMember', '3.14'); | 74 shouldBe('dict.doubleMember', '3.14'); |
| 69 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); | 75 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); |
| 70 shouldBe('dict.stringSequenceOrNullMember', '[]'); | 76 shouldBe('dict.stringSequenceOrNullMember', '[]'); |
| 71 shouldBe('dict.elementMember', 'element1'); | 77 shouldBe('dict.elementMember', 'element1'); |
| 72 // This will be undefined as the spec says | 78 // This will be undefined as the spec says |
| 73 shouldBeUndefined('dict.elementOrNullMember'); | 79 shouldBeUndefined('dict.elementOrNullMember'); |
| 80 shouldBeEqualToString('dict.enumMember', 'foo'); |
| 81 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar'); |
| 82 shouldBeEqualToString('dict.enumOrNullMember', 'baz'); |
| 74 debug(''); | 83 debug(''); |
| 75 | 84 |
| 76 debug('Test for explicit undefined or null, and missing members'); | 85 debug('Test for explicit undefined or null, and missing members'); |
| 77 dictionaryTest.set({ | 86 dictionaryTest.set({ |
| 78 longMember: undefined, | 87 longMember: undefined, |
| 79 longMemberWithDefault: null, | 88 longMemberWithDefault: null, |
| 80 longOrNullMember: undefined, | 89 longOrNullMember: undefined, |
| 81 longOrNullMemberWithDefault: null, | 90 longOrNullMemberWithDefault: null, |
| 82 }); | 91 }); |
| 83 dict = dictionaryTest.get(); | 92 dict = dictionaryTest.get(); |
| 84 shouldBeUndefined('dict.longMember'); | 93 shouldBeUndefined('dict.longMember'); |
| 85 shouldBe('dict.longMemberWithDefault', '42'); | 94 shouldBe('dict.longMemberWithDefault', '42'); |
| 86 shouldBeUndefined('dict.longOrNullMember'); | 95 shouldBeUndefined('dict.longOrNullMember'); |
| 87 // Nullable and its default value is null | 96 // Nullable and its default value is null |
| 88 shouldBeNull('dict.longOrNullMemberWithDefault'); | 97 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 89 debug(''); | 98 debug(''); |
| 90 | 99 |
| 91 debug('Test for setting invalid member'); | 100 debug('Test for setting invalid member'); |
| 92 dictionaryTest.set({invalidMember: 'shouldNotBeSet'}); | 101 dictionaryTest.set({invalidMember: 'shouldNotBeSet'}); |
| 93 dict = dictionaryTest.get(); | 102 dict = dictionaryTest.get(); |
| 94 shouldBeUndefined('dict.invalidMember'); | 103 shouldBeUndefined('dict.invalidMember'); |
| 95 debug(''); | 104 debug(''); |
| 105 |
| 106 debug('Test for setting invalid enum value'); |
| 107 shouldThrow("dictionaryTest.set({enumMember: 'invalid'})"); |
| 108 debug(''); |
| 96 } | 109 } |
| 97 </script> | 110 </script> |
| OLD | NEW |