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

Side by Side Diff: LayoutTests/http/tests/fetch/script-tests/fetch-body-mixin.js

Issue 1267263003: Rename fetch layout tests. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 4 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
(Empty)
1 if (self.importScripts) {
2 importScripts('../resources/fetch-test-helpers.js');
3 }
4
5 function readStream(reader, values) {
6 reader.read().then(function(r) {
7 if (!r.done) {
8 values.push(r.value);
9 readStream(reader, values);
10 }
11 });
12 return reader.closed;
13 }
14
15 sequential_promise_test(function(test) {
16 return fetch('/fetch/resources/doctype.html')
17 .then(function(response) {
18 // Accessing the body property makes the stream start working.
19 var stream = response.body;
20 return response.text();
21 })
22 .then(function(text) {
23 assert_equals(text, '<!DOCTYPE html>\n');
24 })
25 }, 'FetchTextAfterAccessingStreamTest');
26
27 sequential_promise_test(function(test) {
28 var chunks = [];
29 var actual = '';
30 return fetch('/fetch/resources/doctype.html')
31 .then(function(response) {
32 r = response;
33 return readStream(response.body.getReader(), chunks);
34 })
35 .then(function() {
36 var decoder = new TextDecoder();
37 for (var chunk of chunks) {
38 actual += decoder.decode(chunk, {stream: true});
39 }
40 // Put an empty buffer without the stream option to end decoding.
41 actual += decoder.decode(new Uint8Array(0));
42 assert_equals(actual, '<!DOCTYPE html>\n');
43 })
44 }, 'FetchStreamTest');
45
46 sequential_promise_test(function(test) {
47 return fetch('/fetch/resources/progressive.php')
48 .then(function(response) {
49 var p1 = response.text();
50 // Because progressive.php takes some time to load, we expect
51 // response.text() is not yet completed here.
52 var p2 = response.text().then(function() {
53 return Promise.reject(new Error('resolved unexpectedly'));
54 }, function(e) {
55 return e;
56 });
57 return Promise.all([p1, p2]);
58 })
59 .then(function(results) {
60 assert_equals(results[0].length, 190);
61 assert_equals(results[1].name, 'TypeError');
62 })
63 }, 'FetchTwiceTest');
64
65 sequential_promise_test(function(test) {
66 return fetch('/fetch/resources/doctype.html')
67 .then(function(response) {
68 return response.arrayBuffer();
69 })
70 .then(function(b) {
71 assert_equals(b.byteLength, 16);
72 })
73 }, 'ArrayBufferTest');
74
75 sequential_promise_test(function(test) {
76 return fetch('/fetch/resources/doctype.html')
77 .then(function(response) {
78 return response.blob();
79 })
80 .then(function(blob) {
81 assert_equals(blob.size, 16);
82 assert_equals(blob.type, 'text/html');
83 })
84 }, 'BlobTest');
85
86 sequential_promise_test(function(test) {
87 return fetch('/fetch/resources/doctype.html')
88 .then(function(response) {
89 return response.json();
90 })
91 .then(
92 test.unreached_func('json() must fail'),
93 function(e) {
94 assert_equals(e.name, 'SyntaxError', 'expected JSON error');
95 })
96 }, 'JSONFailedTest');
97
98 sequential_promise_test(function(test) {
99 return fetch('/fetch/resources/simple.json')
100 .then(function(response) {
101 return response.json();
102 })
103 .then(function(json) {
104 assert_equals(json['a'], 1);
105 assert_equals(json['b'], 2);
106 })
107 }, 'JSONTest');
108
109 sequential_promise_test(function(test) {
110 return fetch('/fetch/resources/doctype.html')
111 .then(function(response) {
112 return response.text();
113 })
114 .then(function(text) {
115 assert_equals(text, '<!DOCTYPE html>\n');
116 })
117 }, 'TextTest');
118
119 sequential_promise_test(function(test) {
120 return fetch('/fetch/resources/non-ascii.txt')
121 .then(function(response) {
122 return response.text();
123 })
124 .then(function(text) {
125 assert_equals(text, '\u4e2d\u6587 Gem\u00fcse\n');
126 })
127 }, 'NonAsciiTextTest');
128
129 sequential_promise_test(function(test) {
130 var expected = '';
131 for (var i = 0; i < 100; ++i)
132 expected += i;
133
134 var decoder = new TextDecoder();
135 var actual = '';
136 var response;
137 var reader;
138 return fetch('/fetch/resources/progressive.php')
139 .then(function(res) {
140 response = res;
141 reader = response.body.getReader();
142 return reader.read();
143 })
144 .then(function(r) {
145 assert_false(r.done);
146 actual += decoder.decode(r.value, {stream: true});
147 })
148 .then(function() {
149 return response.text().then(unreached_fulfillment(test), function() {
150 // response.text() should fail because we have a reader.
151 });
152 })
153 .then(function() {
154 reader.releaseLock();
155 return response.arrayBuffer();
156 })
157 .then(function(buffer) {
158 actual += decoder.decode(buffer);
159 assert_equals(actual, expected);
160 })
161 }, 'PartiallyReadFromStreamAndReadArrayBufferTest');
162
163 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698