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

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

Issue 2675163003: Merge response-stream-construction.js to response.js (Closed)
Patch Set: Created 3 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 // 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 assert_equals(response.body, stream);
15 }, 'Response constructed with a stream');
16
17 promise_test(() => {
18 var controller;
19 var stream = new ReadableStream({start: c => controller = c});
20 controller.enqueue(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
21 controller.enqueue(new Uint8Array([0x77, 0x6f, 0x72, 0x6c, 0x64]));
22 controller.close();
23 assert_false(stream.locked);
24 var response = new Response(stream);
25 var p = response.text().then(t => {
26 assert_equals(t, 'helloworld');
27 });
28 assert_true(stream.locked);
29 return p;
30 }, 'Response constructed with a stream');
31
32 promise_test(() => {
33 var controller;
34 var stream = new ReadableStream({start: c => controller = c});
35 controller.enqueue(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
36 controller.enqueue(new Uint8Array([0x77, 0x6f, 0x72, 0x6c, 0x64]));
37 controller.close();
38
39 var response = new Response(stream);
40 return readableStreamToArray(response.body).then(chunks => {
41 var decoder = new TextDecoder('utf-8');
42 var r = '';
43 for (var chunk of chunks) {
44 r += decoder.decode(chunk, {stream: true});
45 }
46 r += decoder.decode();
47 assert_equals(r, 'helloworld');
48 });
49 }, 'Response constructed with a stream / Read from body stream');
50
51 promise_test(t => {
52 var controller;
53 var stream = new ReadableStream({start: c => controller = c});
54 setTimeout(() => {
55 controller.enqueue(new Uint8Array([0x68, 0x65, 0x6c, 0x6c, 0x6f]));
56 controller.enqueue(new Uint8Array([0x77, 0x6f, 0x72, 0x6c, 0x64]));
57 controller.error();
58 }, 1);
59 var response = new Response(stream);
60 return promise_rejects(t, TypeError(), response.text());
61 }, 'Response constructed with an errored stream');
62
63 promise_test(t => {
64 var controller;
65 var stream = new ReadableStream({start: c => controller = c});
66 stream.getReader();
67 var response = new Response(stream);
68 return promise_rejects(t, TypeError(), response.text());
69 }, 'Response constructed with a locked stream');
70
71 promise_test(t => {
72 var controller;
73 var stream = new ReadableStream({start: c => controller = c});
74 setTimeout(() => controller.enqueue(), 1);
75 var response = new Response(stream);
76 return promise_rejects(t, TypeError(), response.text());
77 }, 'Response constructed stream with an undefined chunk');
78
79 promise_test(t => {
80 var controller;
81 var stream = new ReadableStream({start: c => controller = c});
82 setTimeout(() => controller.enqueue(null), 1);
83 var response = new Response(stream);
84 return promise_rejects(t, TypeError(), response.text());
85 }, 'Response constructed stream with a null chunk');
86
87 promise_test(t => {
88 var controller;
89 var stream = new ReadableStream({start: c => controller = c});
90 setTimeout(() => controller.enqueue('hello'), 1);
91 var response = new Response(stream);
92 return promise_rejects(t, TypeError(), response.text());
93 }, 'Response constructed stream with a string chunk');
94
95 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698