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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/fetch/script-tests/response-stream-construction.js

Issue 1506023003: Response construction with a ReadableStream (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years 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 | third_party/WebKit/LayoutTests/http/tests/fetch/serviceworker/response-stream-construction.html » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // This file contains tests for Response construction with a readable stream.
2 // Move these tests to response.js once the feature gets stable.
3
4 if (self.importScripts) {
5 importScripts('../resources/fetch-test-helpers.js');
6 importScripts('/streams/resources/rs-utils.js');
7 }
8
9 test(() => {
10 var controller;
11 var stream = new ReadableStream({start: c => controller = c});
12
13 var response = new Response(stream);
14 // TODO(yhirano): This should be assert_equals.
15 assert_not_equals(response.body, stream);
16 }, 'Response constructed with a stream');
17
18 promise_test(() => {
19 var controller;
20 var stream = new ReadableStream({start: c => controller = c});
21 controller.enqueue(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
22 controller.enqueue(new Uint8Array([0x77, 0x6f, 0x72, 0x6c, 0x64]));
23 controller.close();
24 assert_false(stream.locked);
25 var response = new Response(stream);
26 var p = response.text().then(t => {
27 assert_equals(t, 'helloworld');
28 });
29 assert_true(stream.locked);
30 return p;
31 }, 'Response constructed with a stream');
32
33 promise_test(() => {
34 var controller;
35 var stream = new ReadableStream({start: c => controller = c});
36 controller.enqueue(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
37 controller.enqueue(new Uint8Array([0x77, 0x6f, 0x72, 0x6c, 0x64]));
38 controller.close();
39
40 var response = new Response(stream);
41 return readableStreamToArray(response.body).then(chunks => {
42 var decoder = new TextDecoder('utf-8');
43 var r = '';
44 for (var chunk of chunks) {
45 r += decoder.decode(chunk, {stream: true});
46 }
47 r += decoder.decode();
48 assert_equals(r, 'helloworld');
49 });
50 }, 'Response constructed with a stream / Read from body stream');
51
52 promise_test(t => {
53 var controller;
54 var stream = new ReadableStream({start: c => controller = c});
55 setTimeout(() => {
56 controller.enqueue(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
57 controller.enqueue(new Uint8Array([0x77, 0x6f, 0x72, 0x6c, 0x64]));
58 controller.error();
59 }, 1);
60 var response = new Response(stream);
61 return promise_rejects(t, TypeError(), response.text());
62 }, 'Response constructed with an errored stream');
63
64 promise_test(t => {
65 var controller;
66 var stream = new ReadableStream({start: c => controller = c});
67 stream.getReader();
68 var response = new Response(stream);
69 return promise_rejects(t, TypeError(), response.text());
70 }, 'Response constructed with a locked stream');
71
72 promise_test(t => {
73 var controller;
74 var stream = new ReadableStream({start: c => controller = c});
75 setTimeout(() => controller.enqueue(), 1);
76 var response = new Response(stream);
77 return promise_rejects(t, TypeError(), response.text());
78 }, 'Response constructed stream with an undefined chunk');
79
80 promise_test(t => {
81 var controller;
82 var stream = new ReadableStream({start: c => controller = c});
83 setTimeout(() => controller.enqueue(null), 1);
84 var response = new Response(stream);
85 return promise_rejects(t, TypeError(), response.text());
86 }, 'Response constructed stream with a null chunk');
87
88 promise_test(t => {
89 var controller;
90 var stream = new ReadableStream({start: c => controller = c});
91 setTimeout(() => controller.enqueue('hello'), 1);
92 var response = new Response(stream);
93 return promise_rejects(t, TypeError(), response.text());
94 }, 'Response constructed stream with a string chunk');
95
96 done();
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/LayoutTests/http/tests/fetch/serviceworker/response-stream-construction.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698