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

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

Issue 1047993002: bindings: Add validation for enum Sequence or Array (Closed) Base URL: svn://svn.chromium.org/blink/trunk
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 | Annotate | Revision Log
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 10 matching lines...) Expand all
21 shouldBeUndefined('dict.unrestrictedDoubleMember'); 21 shouldBeUndefined('dict.unrestrictedDoubleMember');
22 shouldBeUndefined('dict.stringMember'); 22 shouldBeUndefined('dict.stringMember');
23 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue'); 23 shouldBeEqualToString('dict.stringMemberWithDefault', 'defaultStringValue');
24 shouldBeUndefined('dict.byteStringMember'); 24 shouldBeUndefined('dict.byteStringMember');
25 shouldBeUndefined('dict.usvStringMember'); 25 shouldBeUndefined('dict.usvStringMember');
26 shouldBeUndefined('dict.stringSequenceMember'); 26 shouldBeUndefined('dict.stringSequenceMember');
27 shouldBeUndefined('dict.stringSequenceOrNullMember'); 27 shouldBeUndefined('dict.stringSequenceOrNullMember');
28 shouldBeUndefined('dict.elementMember'); 28 shouldBeUndefined('dict.elementMember');
29 shouldBeUndefined('dict.elementOrNullMember'); 29 shouldBeUndefined('dict.elementOrNullMember');
30 shouldBeUndefined('dict.enumMember'); 30 shouldBeUndefined('dict.enumMember');
31 shouldBeUndefined('dict.enumArrayMember');
31 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo'); 32 shouldBeEqualToString('dict.enumMemberWithDefault', 'foo');
32 shouldBeUndefined('dict.enumOrNullMember'); 33 shouldBeUndefined('dict.enumOrNullMember');
33 shouldBeUndefined('dict.objectMember'); 34 shouldBeUndefined('dict.objectMember');
34 shouldBeNull('dict.objectOrNullMemberWithDefault'); 35 shouldBeNull('dict.objectOrNullMemberWithDefault');
35 shouldBeUndefined('dict.doubleOrStringMember'); 36 shouldBeUndefined('dict.doubleOrStringMember');
36 shouldBeNull('dict.eventTargetOrNullMember'); 37 shouldBeNull('dict.eventTargetOrNullMember');
37 debug(''); 38 debug('');
38 39
39 debug('Test for setting undefined'); 40 debug('Test for setting undefined');
40 dictionaryTest.set(undefined); 41 dictionaryTest.set(undefined);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 booleanMember: true, 75 booleanMember: true,
75 doubleMember: 3.14, 76 doubleMember: 3.14,
76 unrestrictedDoubleMember: NaN, 77 unrestrictedDoubleMember: NaN,
77 stringSequenceMember: ['foo', 'bar', 'baz'], 78 stringSequenceMember: ['foo', 'bar', 'baz'],
78 stringSequenceOrNullMember: [], 79 stringSequenceOrNullMember: [],
79 elementMember: element1, 80 elementMember: element1,
80 elementOrNullMember: null, 81 elementOrNullMember: null,
81 enumMember: 'foo', 82 enumMember: 'foo',
82 enumMemberWithDefault: 'bar', 83 enumMemberWithDefault: 'bar',
83 enumOrNullMember: 'baz', 84 enumOrNullMember: 'baz',
85 enumArrayMember: ['foo', 'bar', 'baz'],
84 objectMember: testObject1, 86 objectMember: testObject1,
85 objectOrNullMemberWithDefault: testObject2, 87 objectOrNullMemberWithDefault: testObject2,
86 doubleOrStringMember: 3.14, 88 doubleOrStringMember: 3.14,
87 eventTargetOrNullMember: element1 89 eventTargetOrNullMember: element1
88 }); 90 });
89 dict = dictionaryTest.get(); 91 dict = dictionaryTest.get();
90 shouldBe('dict.longMember', '1'); 92 shouldBe('dict.longMember', '1');
91 shouldBe('dict.longMemberWithDefault', '2'); 93 shouldBe('dict.longMemberWithDefault', '2');
92 shouldBe('dict.longOrNullMember', '3'); 94 shouldBe('dict.longOrNullMember', '3');
93 shouldBe('dict.longOrNullMemberWithDefault', '4'); 95 shouldBe('dict.longOrNullMemberWithDefault', '4');
94 shouldBeEqualToString('dict.stringMember', 'modifiedString1'); 96 shouldBeEqualToString('dict.stringMember', 'modifiedString1');
95 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2'); 97 shouldBeEqualToString('dict.stringMemberWithDefault', 'modifiedString2');
96 shouldBeEqualToString('dict.byteStringMember', '\x00\x01\xFE\xFF'); 98 shouldBeEqualToString('dict.byteStringMember', '\x00\x01\xFE\xFF');
97 shouldBeEqualToString('dict.usvStringMember', '!@#123ABCabc\xA0\uD800\uDC00' ); 99 shouldBeEqualToString('dict.usvStringMember', '!@#123ABCabc\xA0\uD800\uDC00' );
98 shouldBeTrue('dict.booleanMember'); 100 shouldBeTrue('dict.booleanMember');
99 shouldBe('dict.doubleMember', '3.14'); 101 shouldBe('dict.doubleMember', '3.14');
100 shouldBe('dict.unrestrictedDoubleMember', 'NaN'); 102 shouldBe('dict.unrestrictedDoubleMember', 'NaN');
101 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]'); 103 shouldBe('dict.stringSequenceMember', '["foo", "bar", "baz"]');
102 shouldBe('dict.stringSequenceOrNullMember', '[]'); 104 shouldBe('dict.stringSequenceOrNullMember', '[]');
103 shouldBe('dict.elementMember', 'element1'); 105 shouldBe('dict.elementMember', 'element1');
104 // This will be undefined as the spec says 106 // This will be undefined as the spec says
105 shouldBeUndefined('dict.elementOrNullMember'); 107 shouldBeUndefined('dict.elementOrNullMember');
106 shouldBeEqualToString('dict.enumMember', 'foo'); 108 shouldBeEqualToString('dict.enumMember', 'foo');
107 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar'); 109 shouldBeEqualToString('dict.enumMemberWithDefault', 'bar');
108 shouldBeEqualToString('dict.enumOrNullMember', 'baz'); 110 shouldBeEqualToString('dict.enumOrNullMember', 'baz');
111 shouldBe('dict.enumArrayMember', '["foo", "bar", "baz"]');
109 shouldBe('dict.objectMember', 'testObject1'); 112 shouldBe('dict.objectMember', 'testObject1');
110 shouldBe('dict.objectOrNullMemberWithDefault', 'testObject2'); 113 shouldBe('dict.objectOrNullMemberWithDefault', 'testObject2');
111 shouldBe('dict.doubleOrStringMember', '3.14'); 114 shouldBe('dict.doubleOrStringMember', '3.14');
112 shouldBe('dict.eventTargetOrNullMember', 'element1'); 115 shouldBe('dict.eventTargetOrNullMember', 'element1');
113 debug(''); 116 debug('');
114 117
115 debug('Additional test for union type members'); 118 debug('Additional test for union type members');
116 dictionaryTest.set({ 119 dictionaryTest.set({
117 doubleOrStringMember: "foo", 120 doubleOrStringMember: "foo",
118 }); 121 });
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 shouldThrow("dictionaryTest.set({byteStringMember: '\u0100'})"); 178 shouldThrow("dictionaryTest.set({byteStringMember: '\u0100'})");
176 debug(''); 179 debug('');
177 180
178 debug('Test for setting invalid USVString value'); 181 debug('Test for setting invalid USVString value');
179 dictionaryTest.set({usvStringMember: '_\uDC00_\uD800_\uDC00\uD800_'}); 182 dictionaryTest.set({usvStringMember: '_\uDC00_\uD800_\uDC00\uD800_'});
180 dict = dictionaryTest.get(); 183 dict = dictionaryTest.get();
181 shouldBeEqualToString('dict.usvStringMember', '_\uFFFD_\uFFFD_\uFFFD\uFFFD_' ); 184 shouldBeEqualToString('dict.usvStringMember', '_\uFFFD_\uFFFD_\uFFFD\uFFFD_' );
182 185
183 debug('Test for setting invalid enum value'); 186 debug('Test for setting invalid enum value');
184 shouldThrow("dictionaryTest.set({enumMember: 'invalid'})"); 187 shouldThrow("dictionaryTest.set({enumMember: 'invalid'})");
188 shouldThrow("dictionaryTest.set({enumArrayMember: ['foo', 'invalid', 'baz']} )");
185 debug(''); 189 debug('');
186 190
187 debug('Test for setting invalid object value'); 191 debug('Test for setting invalid object value');
188 shouldThrow("dictionaryTest.set({objectMember: 42})"); 192 shouldThrow("dictionaryTest.set({objectMember: 42})");
189 shouldThrow("dictionaryTest.set({objectMember: 'invalid'})"); 193 shouldThrow("dictionaryTest.set({objectMember: 'invalid'})");
190 debug(''); 194 debug('');
191 195
192 debug('Test for setting invalid Element value'); 196 debug('Test for setting invalid Element value');
193 shouldThrow("dictionaryTest.set({elementMember: 42})"); 197 shouldThrow("dictionaryTest.set({elementMember: 42})");
194 shouldThrow("dictionaryTest.set({elementMember: testObject1})"); 198 shouldThrow("dictionaryTest.set({elementMember: testObject1})");
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
277 shouldBe('derived.longMember', '1'); 281 shouldBe('derived.longMember', '1');
278 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString'); 282 shouldBeEqualToString('derived.stringMemberWithDefault', 'modifiedString');
279 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2'); 283 shouldBeEqualToString('derived.derivedStringMember', 'modifiedString2');
280 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr ing3'); 284 shouldBeEqualToString('derived.derivedStringMemberWithDefault', 'modifiedStr ing3');
281 shouldBeUndefined('derived.invalidMember'); 285 shouldBeUndefined('derived.invalidMember');
282 286
283 debug(''); 287 debug('');
284 shouldThrow("dictionaryTest.setDerived({objectMember: 42})"); 288 shouldThrow("dictionaryTest.setDerived({objectMember: 42})");
285 } 289 }
286 </script> 290 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698