Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(423)

Side by Side Diff: LayoutTests/fast/dom/idl-dictionary-unittest.html

Issue 768793002: Revert of IDL: Null values should be converted for non-nullable dictionary members (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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
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>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698