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

Side by Side Diff: third_party/WebKit/LayoutTests/http/tests/streams/readable-streams/count-queuing-strategy-integration.js

Issue 2808853003: Remove Blink copies of readable-streams layout tests (Closed)
Patch Set: Restore rs-utils.js as it is used by fetch 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
(Empty)
1 'use strict';
2
3 if (self.importScripts) {
4 self.importScripts('/resources/testharness.js');
5 }
6
7 test(() => {
8
9 new ReadableStream({}, new CountQueuingStrategy({ highWaterMark: 4 }));
10
11 }, 'Can construct a readable stream with a valid CountQueuingStrategy');
12
13 promise_test(() => {
14
15 let controller;
16 const rs = new ReadableStream(
17 {
18 start(c) {
19 controller = c;
20 }
21 },
22 new CountQueuingStrategy({ highWaterMark: 0 })
23 );
24 const reader = rs.getReader();
25
26 assert_equals(controller.desiredSize, 0, '0 reads, 0 enqueues: desiredSize sho uld be 0');
27 controller.enqueue('a');
28 assert_equals(controller.desiredSize, -1, '0 reads, 1 enqueue: desiredSize sho uld be -1');
29 controller.enqueue('b');
30 assert_equals(controller.desiredSize, -2, '0 reads, 2 enqueues: desiredSize sh ould be -2');
31 controller.enqueue('c');
32 assert_equals(controller.desiredSize, -3, '0 reads, 3 enqueues: desiredSize sh ould be -3');
33 controller.enqueue('d');
34 assert_equals(controller.desiredSize, -4, '0 reads, 4 enqueues: desiredSize sh ould be -4');
35
36 return reader.read()
37 .then(result => {
38 assert_object_equals(result, { value: 'a', done: false },
39 '1st read gives back the 1st chunk enqueued (queue no w contains 3 chunks)');
40 return reader.read();
41 })
42 .then(result => {
43 assert_object_equals(result, { value: 'b', done: false },
44 '2nd read gives back the 2nd chunk enqueued (queue no w contains 2 chunks)');
45 return reader.read();
46 })
47 .then(result => {
48 assert_object_equals(result, { value: 'c', done: false },
49 '3rd read gives back the 3rd chunk enqueued (queue no w contains 1 chunk)');
50
51 assert_equals(controller.desiredSize, -1, '3 reads, 4 enqueues: desiredSiz e should be -1');
52 controller.enqueue('e');
53 assert_equals(controller.desiredSize, -2, '3 reads, 5 enqueues: desiredSiz e should be -2');
54
55 return reader.read();
56 })
57 .then(result => {
58 assert_object_equals(result, { value: 'd', done: false },
59 '4th read gives back the 4th chunk enqueued (queue no w contains 1 chunks)');
60 return reader.read();
61
62 }).then(result => {
63 assert_object_equals(result, { value: 'e', done: false },
64 '5th read gives back the 5th chunk enqueued (queue no w contains 0 chunks)');
65
66 assert_equals(controller.desiredSize, 0, '5 reads, 5 enqueues: desiredSize should be 0');
67 controller.enqueue('f');
68 assert_equals(controller.desiredSize, -1, '5 reads, 6 enqueues: desiredSiz e should be -1');
69 controller.enqueue('g');
70 assert_equals(controller.desiredSize, -2, '5 reads, 7 enqueues: desiredSiz e should be -2');
71 });
72
73 }, 'Correctly governs a ReadableStreamController\'s desiredSize property (HWM = 0)');
74
75 promise_test(() => {
76
77 let controller;
78 const rs = new ReadableStream(
79 {
80 start(c) {
81 controller = c;
82 }
83 },
84 new CountQueuingStrategy({ highWaterMark: 1 })
85 );
86 const reader = rs.getReader();
87
88 assert_equals(controller.desiredSize, 1, '0 reads, 0 enqueues: desiredSize sho uld be 1');
89 controller.enqueue('a');
90 assert_equals(controller.desiredSize, 0, '0 reads, 1 enqueue: desiredSize shou ld be 0');
91 controller.enqueue('b');
92 assert_equals(controller.desiredSize, -1, '0 reads, 2 enqueues: desiredSize sh ould be -1');
93 controller.enqueue('c');
94 assert_equals(controller.desiredSize, -2, '0 reads, 3 enqueues: desiredSize sh ould be -2');
95 controller.enqueue('d');
96 assert_equals(controller.desiredSize, -3, '0 reads, 4 enqueues: desiredSize sh ould be -3');
97
98 return reader.read()
99 .then(result => {
100 assert_object_equals(result, { value: 'a', done: false },
101 '1st read gives back the 1st chunk enqueued (queue no w contains 3 chunks)');
102 return reader.read();
103 })
104 .then(result => {
105 assert_object_equals(result, { value: 'b', done: false },
106 '2nd read gives back the 2nd chunk enqueued (queue no w contains 2 chunks)');
107 return reader.read();
108 })
109 .then(result => {
110 assert_object_equals(result, { value: 'c', done: false },
111 '3rd read gives back the 3rd chunk enqueued (queue no w contains 1 chunk)');
112
113 assert_equals(controller.desiredSize, 0, '3 reads, 4 enqueues: desiredSize should be 0');
114 controller.enqueue('e');
115 assert_equals(controller.desiredSize, -1, '3 reads, 5 enqueues: desiredSiz e should be -1');
116
117 return reader.read();
118 })
119 .then(result => {
120 assert_object_equals(result, { value: 'd', done: false },
121 '4th read gives back the 4th chunk enqueued (queue no w contains 1 chunks)');
122 return reader.read();
123 })
124 .then(result => {
125 assert_object_equals(result, { value: 'e', done: false },
126 '5th read gives back the 5th chunk enqueued (queue no w contains 0 chunks)');
127
128 assert_equals(controller.desiredSize, 1, '5 reads, 5 enqueues: desiredSize should be 1');
129 controller.enqueue('f');
130 assert_equals(controller.desiredSize, 0, '5 reads, 6 enqueues: desiredSize should be 0');
131 controller.enqueue('g');
132 assert_equals(controller.desiredSize, -1, '5 reads, 7 enqueues: desiredSiz e should be -1');
133 });
134
135 }, 'Correctly governs a ReadableStreamController\'s desiredSize property (HWM = 1)');
136
137 promise_test(() => {
138
139 let controller;
140 const rs = new ReadableStream(
141 {
142 start(c) {
143 controller = c;
144 }
145 },
146 new CountQueuingStrategy({ highWaterMark: 4 })
147 );
148 const reader = rs.getReader();
149
150 assert_equals(controller.desiredSize, 4, '0 reads, 0 enqueues: desiredSize sho uld be 4');
151 controller.enqueue('a');
152 assert_equals(controller.desiredSize, 3, '0 reads, 1 enqueue: desiredSize shou ld be 3');
153 controller.enqueue('b');
154 assert_equals(controller.desiredSize, 2, '0 reads, 2 enqueues: desiredSize sho uld be 2');
155 controller.enqueue('c');
156 assert_equals(controller.desiredSize, 1, '0 reads, 3 enqueues: desiredSize sho uld be 1');
157 controller.enqueue('d');
158 assert_equals(controller.desiredSize, 0, '0 reads, 4 enqueues: desiredSize sho uld be 0');
159 controller.enqueue('e');
160 assert_equals(controller.desiredSize, -1, '0 reads, 5 enqueues: desiredSize sh ould be -1');
161 controller.enqueue('f');
162 assert_equals(controller.desiredSize, -2, '0 reads, 6 enqueues: desiredSize sh ould be -2');
163
164
165 reader.read()
166 .then(result => {
167 assert_object_equals(result, { value: 'a', done: false },
168 '1st read gives back the 1st chunk enqueued (queue no w contains 5 chunks)');
169 return reader.read();
170 })
171 .then(result => {
172 assert_object_equals(result, { value: 'b', done: false },
173 '2nd read gives back the 2nd chunk enqueued (queue no w contains 4 chunks)');
174
175 assert_equals(controller.desiredSize, 0, '2 reads, 6 enqueues: desiredSize should be 0');
176 controller.enqueue('g');
177 assert_equals(controller.desiredSize, -1, '2 reads, 7 enqueues: desiredSiz e should be -1');
178
179 return reader.read();
180 })
181 .then(result => {
182 assert_object_equals(result, { value: 'c', done: false },
183 '3rd read gives back the 3rd chunk enqueued (queue no w contains 4 chunks)');
184 return reader.read();
185 })
186 .then(result => {
187 assert_object_equals(result, { value: 'd', done: false },
188 '4th read gives back the 4th chunk enqueued (queue no w contains 3 chunks)');
189 return reader.read();
190 })
191 .then(result => {
192 assert_object_equals(result, { value: 'e', done: false },
193 '5th read gives back the 5th chunk enqueued (queue no w contains 2 chunks)');
194 return reader.read();
195 })
196 .then(result => {
197 assert_object_equals(result, { value: 'f', done: false },
198 '6th read gives back the 6th chunk enqueued (queue no w contains 0 chunks)');
199
200 assert_equals(controller.desiredSize, 3, '6 reads, 7 enqueues: desiredSize should be 3');
201 controller.enqueue('h');
202 assert_equals(controller.desiredSize, 2, '6 reads, 8 enqueues: desiredSize should be 2');
203 controller.enqueue('i');
204 assert_equals(controller.desiredSize, 1, '6 reads, 9 enqueues: desiredSize should be 1');
205 controller.enqueue('j');
206 assert_equals(controller.desiredSize, 0, '6 reads, 10 enqueues: desiredSiz e should be 0');
207 controller.enqueue('k');
208 assert_equals(controller.desiredSize, -1, '6 reads, 11 enqueues: desiredSi ze should be -1');
209 });
210
211 }, 'Correctly governs a ReadableStreamController\'s desiredSize property (HWM = 4)');
212
213 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698