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 shouldBeEqualToString('dict.stringMember', 'defaultStringValue'); | 13 shouldBe('dict.longMemberWithDefault', '42'); |
14 shouldBeNull('dict.booleanOrNullMember'); | 14 shouldBeUndefined('dict.longOrNullMember'); |
15 shouldBeUndefined('dict.doubleOrNullMember'); | 15 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 16 shouldBeUndefined('dict.booleanMember'); |
| 17 shouldBeUndefined('dict.doubleMember'); |
| 18 shouldBeUndefined('dict.stringMember'); |
| 19 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); |
16 shouldBeUndefined('dict.stringSequenceMember'); | 20 shouldBeUndefined('dict.stringSequenceMember'); |
| 21 shouldBeUndefined('dict.stringSequenceOrNullMember'); |
| 22 shouldBeUndefined('dict.elementMember'); |
| 23 shouldBeUndefined('dict.elementOrNullMember'); |
17 debug(''); | 24 debug(''); |
18 | 25 |
19 debug('Test for setting undefined'); | 26 debug('Test for setting undefined'); |
20 dictionaryTest.set(undefined); | 27 dictionaryTest.set(undefined); |
21 dict = dictionaryTest.get(); | 28 dict = dictionaryTest.get(); |
22 shouldBeUndefined('dict.longMember'); | 29 shouldBeUndefined('dict.longMember'); |
23 shouldBeEqualToString('dict.stringMember', 'defaultStringValue'); | 30 shouldBe('dict.longMemberWithDefault', '42'); |
24 shouldBeNull('dict.booleanOrNullMember'); | 31 shouldBeUndefined('dict.longOrNullMember'); |
25 shouldBeUndefined('dict.doubleOrNullMember'); | 32 shouldBeNull('dict.longOrNullMemberWithDefault'); |
| 33 shouldBeUndefined('dict.booleanMember'); |
| 34 shouldBeUndefined('dict.doubleMember'); |
| 35 shouldBeUndefined('dict.stringMember'); |
| 36 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); |
26 shouldBeUndefined('dict.stringSequenceMember'); | 37 shouldBeUndefined('dict.stringSequenceMember'); |
| 38 shouldBeUndefined('dict.stringSequenceOrNullMember'); |
| 39 shouldBeUndefined('dict.elementMember'); |
| 40 shouldBeUndefined('dict.elementOrNullMember'); |
27 debug(''); | 41 debug(''); |
28 | 42 |
| 43 var element1 = document.createElement('div'); |
| 44 |
29 debug('Test for setting valid values'); | 45 debug('Test for setting valid values'); |
30 dictionaryTest.set({longMember: 3, stringMember: 'modifiedString', | 46 dictionaryTest.set({ |
31 booleanOrNullMember: true, doubleOrNullMember: 2.0, | 47 longMember: 1, |
32 stringSequenceMember: ['foo', 'bar', 'baz']}); | 48 longMemberWithDefault: 2, |
| 49 longOrNullMember: 3, |
| 50 longOrNullMemberWithDefault: 4, |
| 51 stringMember: 'modifiedString1', |
| 52 stringMemberWithDefault: 'modifiedString2', |
| 53 booleanMember: true, |
| 54 doubleMember: 3.14, |
| 55 stringSequenceMember: ['foo', 'bar', 'baz'], |
| 56 stringSequenceOrNullMember: [], |
| 57 elementMember: element1, |
| 58 elementOrNullMember: null, |
| 59 }); |
33 dict = dictionaryTest.get(); | 60 dict = dictionaryTest.get(); |
34 shouldBe('dict.longMember', '3'); | 61 shouldBe('dict.longMember', '1'); |
35 shouldBeEqualToString('dict.stringMember', 'modifiedString'); | 62 shouldBe('dict.longMemberWithDefault', '2'); |
36 shouldBeTrue('dict.booleanOrNullMember'); | 63 shouldBe('dict.longOrNullMember', '3'); |
37 shouldBe('dict.doubleOrNullMember', '2.0'); | 64 shouldBe('dict.longOrNullMemberWithDefault', '4'); |
| 65 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); |
| 66 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); |
| 67 shouldBeTrue('dict.booleanMember'); |
| 68 shouldBe('dict.doubleMember', '3.14'); |
38 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); | 69 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); |
| 70 shouldBe('dict.stringSequenceOrNullMember', '[]'); |
| 71 shouldBe('dict.elementMember', 'element1'); |
| 72 // This will be undefined as the spec says |
| 73 shouldBeUndefined('dict.elementOrNullMember'); |
39 debug(''); | 74 debug(''); |
40 | 75 |
41 // FIXME: Following test doesn't pass. Make it pass. | |
42 /* | |
43 debug('Test for explicit undefined or null, and missing members'); | 76 debug('Test for explicit undefined or null, and missing members'); |
44 dictionaryTest.reset(); | 77 dictionaryTest.set({ |
45 dictionaryTest.set({longMember: undefined, stringMember: undefined, | 78 longMember: undefined, |
46 booleanOrNullMember: null}); | 79 longMemberWithDefault: null, |
| 80 longOrNullMember: undefined, |
| 81 longOrNullMemberWithDefault: null, |
| 82 }); |
47 dict = dictionaryTest.get(); | 83 dict = dictionaryTest.get(); |
48 shouldBeUndefined('dict.longMember'); | 84 shouldBeUndefined('dict.longMember'); |
49 shouldBeEqualToString('dict.stringMember', 'defaultStringValue'); | 85 shouldBe('dict.longMemberWithDefault', '42'); |
50 shouldBeNull('dict.booleanOrNullMember'); | 86 shouldBeUndefined('dict.longOrNullMember'); |
51 shouldBeUndefined('dict.doubleOrNullMember'); | 87 // Nullable and its default value is null |
52 shouldBeUndefined('dict.stringSequenceMember'); | 88 shouldBeNull('dict.longOrNullMemberWithDefault'); |
53 debug(''); | 89 debug(''); |
54 */ | |
55 | 90 |
56 debug('Test for setting invalid member'); | 91 debug('Test for setting invalid member'); |
57 dictionaryTest.set({invalidMember: 'shouldNotBeSet'}); | 92 dictionaryTest.set({invalidMember: 'shouldNotBeSet'}); |
58 dict = dictionaryTest.get(); | 93 dict = dictionaryTest.get(); |
59 shouldBeUndefined('dict.invalidMember'); | 94 shouldBeUndefined('dict.invalidMember'); |
60 debug(''); | 95 debug(''); |
61 } | 96 } |
62 </script> | 97 </script> |
OLD | NEW |