| 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 |