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

Side by Side Diff: third_party/WebKit/LayoutTests/fast/files/file-constructor.html

Issue 2810843002: bindings: Make the sequence conversion code more complaint with WebIDL. (Closed)
Patch Set: Adjust even more tests Created 3 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
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 2
3 <script src="../../resources/js-test.js"></script> 3 <script src="../../resources/js-test.js"></script>
4 <script> 4 <script>
5 description("Test the File constructor."); 5 description("Test the File constructor.");
6 6
7 // Test the different ways you can construct a File. 7 // Test the different ways you can construct a File.
8 shouldBeTrue("(new File([], 'world.html')) instanceof window.File"); 8 shouldBeTrue("(new File([], 'world.html')) instanceof window.File");
9 shouldBeTrue("(new File(['hello'], 'world.html')) instanceof window.File"); 9 shouldBeTrue("(new File(['hello'], 'world.html')) instanceof window.File");
10 shouldBeTrue("(new File(['hello'], 'world.html', {})) instanceof window.File"); 10 shouldBeTrue("(new File(['hello'], 'world.html', {})) instanceof window.File");
11 shouldBeTrue("(new File(['hello'], 'world.html', {type:'text/html'})) instanceof window.File"); 11 shouldBeTrue("(new File(['hello'], 'world.html', {type:'text/html'})) instanceof window.File");
12 shouldBeTrue("(new File(['hello'], 'world.html', {type:'text/html', endings:'nat ive'})) instanceof window.File"); 12 shouldBeTrue("(new File(['hello'], 'world.html', {type:'text/html', endings:'nat ive'})) instanceof window.File");
13 shouldBeTrue("(new File(['hello'], 'world.html', {type:'text/html', endings:'tra nsparent'})) instanceof window.File"); 13 shouldBeTrue("(new File(['hello'], 'world.html', {type:'text/html', endings:'tra nsparent'})) instanceof window.File");
14 14
15 // Test that File inherits from File. 15 // Test that File inherits from File.
16 shouldBeTrue("(new File([], 'world.html')) instanceof window.File") 16 shouldBeTrue("(new File([], 'world.html')) instanceof window.File")
17 17
18 // Verify that the file name argument is required. 18 // Verify that the file name argument is required.
19 shouldThrow("(new File())", '"TypeError: Failed to construct \'File\': 2 argumen ts required, but only 0 present."'); 19 shouldThrow("(new File())", '"TypeError: Failed to construct \'File\': 2 argumen ts required, but only 0 present."');
20 shouldThrow("(new File([]))", '"TypeError: Failed to construct \'File\': 2 argum ents required, but only 1 present."'); 20 shouldThrow("(new File([]))", '"TypeError: Failed to construct \'File\': 2 argum ents required, but only 1 present."');
21 21
22 // Test valid file names. 22 // Test valid file names.
23 shouldBeTrue("(new File([], null)) instanceof window.File"); 23 shouldBeTrue("(new File([], null)) instanceof window.File");
24 shouldBeTrue("(new File([], 1)) instanceof window.File"); 24 shouldBeTrue("(new File([], 1)) instanceof window.File");
25 shouldBeTrue("(new File([], '')) instanceof window.File"); 25 shouldBeTrue("(new File([], '')) instanceof window.File");
26 shouldBeTrue("(new File([], document)) instanceof window.File"); 26 shouldBeTrue("(new File([], document)) instanceof window.File");
27 27
28 // Test invalid file parts. 28 // Test invalid file parts.
29 shouldThrow("new File('hello', 'world.html')", '"TypeError: Failed to construct \'File\': The 1st argument is neither an array, nor does it have indexed propert ies."'); 29 shouldThrow("new File('hello', 'world.html')", '"TypeError: Failed to construct \'File\': The provided value cannot be converted to a sequence."');
30 shouldThrow("new File(0, 'world.html')", '"TypeError: Failed to construct \'File \': The 1st argument is neither an array, nor does it have indexed properties."' ); 30 shouldThrow("new File(0, 'world.html')", '"TypeError: Failed to construct \'File \': The provided value cannot be converted to a sequence."');
31 shouldThrow("new File(null, 'world.html')", '"TypeError: Failed to construct \'F ile\': The 1st argument is neither an array, nor does it have indexed properties ."'); 31 shouldThrow("new File(null, 'world.html')", '"TypeError: Failed to construct \'F ile\': The provided value cannot be converted to a sequence."');
32 32
33 // Test valid file parts. 33 // Test valid file parts.
34 shouldBeTrue("(new File([], 'world.html')) instanceof window.File"); 34 shouldBeTrue("(new File([], 'world.html')) instanceof window.File");
35 shouldBeTrue("(new File(['stringPrimitive'], 'world.html')) instanceof window.Fi le"); 35 shouldBeTrue("(new File(['stringPrimitive'], 'world.html')) instanceof window.Fi le");
36 shouldBeTrue("(new File([String('stringObject')], 'world.html')) instanceof wind ow.File"); 36 shouldBeTrue("(new File([String('stringObject')], 'world.html')) instanceof wind ow.File");
37 shouldBeTrue("(new File([new Blob], 'world.html')) instanceof window.File"); 37 shouldBeTrue("(new File([new Blob], 'world.html')) instanceof window.File");
38 shouldBeTrue("(new File([new Blob([new Blob])], 'world.html')) instanceof window .File"); 38 shouldBeTrue("(new File([new Blob([new Blob])], 'world.html')) instanceof window .File");
39 39
40 // Test File instances used as blob parts. 40 // Test File instances used as blob parts.
41 shouldBeTrue("(new Blob([new File([], 'world.txt')])) instanceof window.Blob"); 41 shouldBeTrue("(new Blob([new File([], 'world.txt')])) instanceof window.Blob");
(...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after
144 shouldBe("new File([(new Float32Array(100)).buffer], 'world.html').size", "400") ; 144 shouldBe("new File([(new Float32Array(100)).buffer], 'world.html').size", "400") ;
145 shouldBe("new File([(new Float64Array(100)).buffer], 'world.html').size", "800") ; 145 shouldBe("new File([(new Float64Array(100)).buffer], 'world.html').size", "800") ;
146 shouldBe("new File([(new Float64Array(100)).buffer, (new Int32Array(100)).buffer , (new Uint8Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'w orld.html').size", "1400"); 146 shouldBe("new File([(new Float64Array(100)).buffer, (new Int32Array(100)).buffer , (new Uint8Array(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'w orld.html').size", "1400");
147 shouldBe("new File([new Blob([(new Int32Array(100)).buffer]), (new Uint8Array(10 0)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))) .buffer], 'world.html').size", "1000"); 147 shouldBe("new File([new Blob([(new Int32Array(100)).buffer]), (new Uint8Array(10 0)).buffer, (new Float32Array(100)).buffer, (new DataView(new ArrayBuffer(100))) .buffer], 'world.html').size", "1000");
148 shouldBe("new File([new Blob([(new Int32Array(100)).buffer]), new File([new Uint 16Array(100).buffer], 'world.txt'), (new Uint8Array(100)).buffer, (new Float32Ar ray(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'world.html').si ze", "1200"); 148 shouldBe("new File([new Blob([(new Int32Array(100)).buffer]), new File([new Uint 16Array(100).buffer], 'world.txt'), (new Uint8Array(100)).buffer, (new Float32Ar ray(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer], 'world.html').si ze", "1200");
149 149
150 // Test building Blobs with ArrayBuffer / ArrayBufferView parts enclosed in file s. 150 // Test building Blobs with ArrayBuffer / ArrayBufferView parts enclosed in file s.
151 shouldBe("new Blob([new Blob([new Int32Array(100)]), new File([new Uint16Array(1 00)], 'world.txt'), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))]).size", "1200"); 151 shouldBe("new Blob([new Blob([new Int32Array(100)]), new File([new Uint16Array(1 00)], 'world.txt'), new Uint8Array(100), new Float32Array(100), new DataView(new ArrayBuffer(100))]).size", "1200");
152 shouldBe("new Blob([new Blob([(new Int32Array(100)).buffer]), new File([new Uint 16Array(100).buffer], 'world.txt'), (new Uint8Array(100)).buffer, (new Float32Ar ray(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size", "1200"); 152 shouldBe("new Blob([new Blob([(new Int32Array(100)).buffer]), new File([new Uint 16Array(100).buffer], 'world.txt'), (new Uint8Array(100)).buffer, (new Float32Ar ray(100)).buffer, (new DataView(new ArrayBuffer(100))).buffer]).size", "1200");
153 153
154 // Test passing blob parts in objects with indexed properties. 154 // Custom iterators, converted via the bindings code to sequence<T>.
155 // (This depends on the bindings code handling of sequence<T>) 155 function createIterable(iterations) {
156 shouldBe("new File({length: 0}, 'world.txt').size", "0"); 156 return {
157 shouldBe("new File({length: 1, 0: 'string'}, 'world.txt').size", "6"); 157 [Symbol.iterator]() {
158 var i = 0;
159 return {next: () => iterations[i++]};
160 },
161 };
162 }
163 shouldBe("new File(createIterable([{done:true}]), 'world.txt').size", "0");
164 shouldBe("new File(createIterable([{done:false, value:'string'},{done:true}]), ' world.txt').size", "6");
158 </script> 165 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698