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

Side by Side Diff: LayoutTests/fast/files/blob-close-read.html

Issue 157363003: Implement Blob.close(). (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased Created 6 years, 10 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
(Empty)
1 <!doctype html>
2 <script src="../../resources/js-test.js"></script>
3 <script src="resources/read-common.js"></script>
4 <script>
5 description("Test the Blob.close() method, reading.");
6
7 window.jsTestIsAsync = true;
8
9 var blobContents = ['0123456789abcdef'];
10
11 var blob;
12 var sliced;
13 var reader;
14 var reader2;
15 var result;
16
17 function testReadAfterClose()
18 {
19 debug("Testing that the reading of closed Blobs fail.");
20 blob = new Blob(blobContents);
21 shouldBe("blob.close(); blob.size", "0");
22 reader = new FileReader();
23 shouldThrow("reader.readAsArrayBuffer(blob)");
24 shouldThrow("reader.readAsBinaryString(blob)");
25 shouldThrow("reader.readAsText(blob)");
26 shouldThrow("reader.readAsDataURL(blob)");
27 runNextTest();
28 }
29
30 function testSlicedReadAfterClose()
31 {
32 debug("Testing that sliced reads aren't affected by close() on 'parent' Blob .");
33 blob = new Blob(blobContents);
34 sliced = blob.slice(2);
35 shouldBe("sliced.size", "14");
36 blob.close();
37 var reader = new FileReader();
38 reader.onload = function(event) {
39 result = event.target.result;
40 shouldBeEqualToString("result", blobContents[0].slice(2));
41 }
42 reader.onloadend = function() {
43 testPassed("readAsText() completed");
44 shouldBe("sliced.size", "14");
45 runNextTest();
46 }
47 reader.onerror = function(event) {
48 testFailed("Received error event: " + event.target.error.code);
49 };
50 reader.readAsText(sliced);
51 }
52
53 function testContinuedReadAfterClose()
54 {
55 debug("Testing that ongoing async reads aren't interrupted by close()");
56 blob = new Blob(blobContents);
57 var reader = new FileReader();
58 reader.onloadstart = function(event) {
59 // Close the Blob being read.
60 blob.close();
61 reader2 = new FileReader();
62 shouldThrow("reader2.readAsArrayBuffer(blob)");
63 shouldBe("blob.size", "0");
64 }
65 reader.onload = function(event) {
66 testPassed("FileReader loaded: " + event.target.result);
67 }
68 reader.onloadend = function() {
69 testPassed("readAsText() completed");
70 shouldBe("blob.size", "0");
71 runNextTest();
72 }
73 reader.onerror = function(event) {
74 testFailed("Received error event: " + event.target.error.code);
75 runNextTest();
76 };
77 reader.readAsText(blob);
78 }
79
80 var tests = [
81 testReadAfterClose,
82 testContinuedReadAfterClose,
83 testSlicedReadAfterClose ];
84
85 function runNextTest()
86 {
87 if (!tests.length) {
88 finishJSTest();
89 return;
90 }
91 tests.shift()();
92 }
93
94 runNextTest();
95 </script>
OLDNEW
« no previous file with comments | « LayoutTests/fast/files/blob-close-expected.txt ('k') | LayoutTests/fast/files/blob-close-read-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698