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

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

Issue 2772293002: Update WritableStream to new standard version (Closed)
Patch Set: Changes from domenic@ review 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 new WritableStream({}, new CountQueuingStrategy({ highWaterMark: 4 }));
9 }, 'Can construct a writable stream with a valid CountQueuingStrategy');
10
11 promise_test(() => {
12 const dones = Object.create(null);
13
14 const ws = new WritableStream(
15 {
16 write(chunk) {
17 return new Promise(resolve => {
18 dones[chunk] = resolve;
19 });
20 }
21 },
22 new CountQueuingStrategy({ highWaterMark: 0 })
23 );
24
25 const writer = ws.getWriter();
26 let writePromiseB;
27 let writePromiseC;
28
29 return Promise.resolve().then(() => {
30 assert_equals(writer.desiredSize, 0, 'desiredSize should be initially 0');
31
32 const writePromiseA = writer.write('a');
33 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after 1st wr ite()');
34
35 writePromiseB = writer.write('b');
36 assert_equals(writer.desiredSize, -2, 'desiredSize should be -2 after 2nd wr ite()');
37
38 dones.a();
39 return writePromiseA;
40 }).then(() => {
41 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after comple ting 1st write()');
42
43 dones.b();
44 return writePromiseB;
45 }).then(() => {
46 assert_equals(writer.desiredSize, 0, 'desiredSize should be 0 after completi ng 2nd write()');
47
48 writePromiseC = writer.write('c');
49 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after 3rd wr ite()');
50
51 dones.c();
52 return writePromiseC;
53 }).then(() => {
54 assert_equals(writer.desiredSize, 0, 'desiredSize should be 0 after completi ng 3rd write()');
55 });
56 }, 'Correctly governs the value of a WritableStream\'s state property (HWM = 0)' );
57
58 promise_test(() => {
59 const dones = Object.create(null);
60
61 const ws = new WritableStream(
62 {
63 write(chunk) {
64 return new Promise(resolve => {
65 dones[chunk] = resolve;
66 });
67 }
68 },
69 new CountQueuingStrategy({ highWaterMark: 4 })
70 );
71
72 const writer = ws.getWriter();
73 let writePromiseB;
74 let writePromiseC;
75 let writePromiseD;
76
77 return Promise.resolve().then(() => {
78 assert_equals(writer.desiredSize, 4, 'desiredSize should be initially 4');
79
80 const writePromiseA = writer.write('a');
81 assert_equals(writer.desiredSize, 3, 'desiredSize should be 3 after 1st writ e()');
82
83 writePromiseB = writer.write('b');
84 assert_equals(writer.desiredSize, 2, 'desiredSize should be 2 after 2nd writ e()');
85
86 writePromiseC = writer.write('c');
87 assert_equals(writer.desiredSize, 1, 'desiredSize should be 1 after 3rd writ e()');
88
89 writePromiseD = writer.write('d');
90 assert_equals(writer.desiredSize, 0, 'desiredSize should be 0 after 4th writ e()');
91
92 writer.write('e');
93 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after 5th wr ite()');
94
95 writer.write('f');
96 assert_equals(writer.desiredSize, -2, 'desiredSize should be -2 after 6th wr ite()');
97
98 writer.write('g');
99 assert_equals(writer.desiredSize, -3, 'desiredSize should be -3 after 7th wr ite()');
100
101 dones.a();
102 return writePromiseA;
103 }).then(() => {
104 assert_equals(writer.desiredSize, -2, 'desiredSize should be -2 after comple ting 1st write()');
105
106 dones.b();
107 return writePromiseB;
108 }).then(() => {
109 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after comple ting 2nd write()');
110
111 dones.c();
112 return writePromiseC;
113 }).then(() => {
114 assert_equals(writer.desiredSize, 0, 'desiredSize should be 0 after completi ng 3rd write()');
115
116 writer.write('h');
117 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after 8th wr ite()');
118
119 dones.d();
120 return writePromiseD;
121 }).then(() => {
122 assert_equals(writer.desiredSize, 0, 'desiredSize should be 0 after completi ng 4th write()');
123
124 writer.write('i');
125 assert_equals(writer.desiredSize, -1, 'desiredSize should be -1 after 9th wr ite()');
126 });
127 }, 'Correctly governs the value of a WritableStream\'s state property (HWM = 4)' );
128
129 done();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698