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 |