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

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

Issue 1057453002: bindings: Throw TypeError when required dictionary member is undefined (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 8 months 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
« no previous file with comments | « no previous file | LayoutTests/fast/dom/idl-dictionary-unittest-expected.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
236 }); 236 });
237 dict = dictionaryTest.get(); 237 dict = dictionaryTest.get();
238 shouldBeNull('dict.eventTargetOrNullMember'); 238 shouldBeNull('dict.eventTargetOrNullMember');
239 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: 'invalid'})"); 239 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: 'invalid'})");
240 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: 42})"); 240 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: 42})");
241 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: []})"); 241 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: []})");
242 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: {}})"); 242 shouldThrow("dictionaryTest.set({eventTargetOrNullMember: {}})");
243 debug(''); 243 debug('');
244 244
245 debug('Test for derived dictionary'); 245 debug('Test for derived dictionary');
246 dictionaryTest.setDerived({}); 246 dictionaryTest.setDerived({ requiredBooleanMember: true });
247 derived = dictionaryTest.getDerived(); 247 derived = dictionaryTest.getDerived();
248 shouldBeUndefined('derived.longMember'); 248 shouldBeUndefined('derived.longMember');
249 shouldBe('derived.longMemberWithDefault', '42'); 249 shouldBe('derived.longMemberWithDefault', '42');
250 shouldBeUndefined('derived.longOrNullMember'); 250 shouldBeUndefined('derived.longOrNullMember');
251 shouldBeNull('derived.longOrNullMemberWithDefault'); 251 shouldBeNull('derived.longOrNullMemberWithDefault');
252 shouldBeUndefined('derived.booleanMember'); 252 shouldBeUndefined('derived.booleanMember');
253 shouldBeUndefined('derived.doubleMember'); 253 shouldBeUndefined('derived.doubleMember');
254 shouldBeUndefined('derived.stringMember'); 254 shouldBeUndefined('derived.stringMember');
255 shouldBeEqualToString('derived.stringMemberWithDefault', 'defaultStringValue '); 255 shouldBeEqualToString('derived.stringMemberWithDefault', 'defaultStringValue ');
256 shouldBeUndefined('derived.stringSequenceMember'); 256 shouldBeUndefined('derived.stringSequenceMember');
257 shouldBeUndefined('derived.stringSequenceOrNullMember'); 257 shouldBeUndefined('derived.stringSequenceOrNullMember');
258 shouldBeUndefined('derived.elementMember'); 258 shouldBeUndefined('derived.elementMember');
259 shouldBeUndefined('derived.elementOrNullMember'); 259 shouldBeUndefined('derived.elementOrNullMember');
260 shouldBeUndefined('derived.enumMember'); 260 shouldBeUndefined('derived.enumMember');
261 shouldBeEqualToString('derived.enumMemberWithDefault', 'foo'); 261 shouldBeEqualToString('derived.enumMemberWithDefault', 'foo');
262 shouldBeUndefined('derived.enumOrNullMember'); 262 shouldBeUndefined('derived.enumOrNullMember');
263 shouldBeUndefined('derived.objectMember'); 263 shouldBeUndefined('derived.objectMember');
264 shouldBeNull('derived.objectOrNullMemberWithDefault'); 264 shouldBeNull('derived.objectOrNullMemberWithDefault');
265 shouldBeUndefined('derived.derivedStringMember'); 265 shouldBeUndefined('derived.derivedStringMember');
266 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'derivedDefa ultStringValue'); 266 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'derivedDefa ultStringValue');
267 shouldBeTrue('derived.requiredBooleanMember');
267 debug(''); 268 debug('');
268 269
269 dictionaryTest.setDerived({ 270 dictionaryTest.setDerived({
270 longMember: 1, 271 longMember: 1,
271 stringMemberWithDefault: 'modifiedString', 272 stringMemberWithDefault: 'modifiedString',
272 derivedStringMember: 'modifiedString2', 273 derivedStringMember: 'modifiedString2',
273 derivedStringMemberWithDefault: 'modifiedString3', 274 derivedStringMemberWithDefault: 'modifiedString3',
274 invalidMember: 'shouldNotBeSet', 275 invalidMember: 'shouldNotBeSet',
276 requiredBooleanMember: false,
275 }); 277 });
276 derived = dictionaryTest.getDerived(); 278 derived = dictionaryTest.getDerived();
277 shouldBe('derived.longMember', '1'); 279 shouldBe('derived.longMember', '1');
278 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString'); 280 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString');
279 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2'); 281 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2');
280 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr ing3'); 282 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr ing3');
281 shouldBeUndefined('derived.invalidMember'); 283 shouldBeUndefined('derived.invalidMember');
284 shouldBeFalse('derived.requiredBooleanMember');
285 debug('');
282 286
283 debug(''); 287 debug('Test for passing invalid values as derived dictionary');
284 shouldThrow("dictionaryTest.setDerived({objectMember: 42})"); 288 shouldThrow("dictionaryTest.setDerived({objectMember: 42, requiredBooleanMem ber: false })");
289 shouldThrow("dictionaryTest.setDerived({})"); // Missing required member.
285 } 290 }
286 </script> 291 </script>
OLDNEW
« no previous file with comments | « no previous file | LayoutTests/fast/dom/idl-dictionary-unittest-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698