OLD | NEW |
1 'use strict'; | 1 'use strict'; |
2 | 2 |
3 if (self.importScripts) { | 3 if (self.importScripts) { |
4 self.importScripts('/resources/testharness.js'); | 4 self.importScripts('/resources/testharness.js'); |
5 } | 5 } |
6 | 6 |
| 7 const error1 = new Error('error1'); |
| 8 error1.name = 'error1'; |
| 9 |
7 promise_test(() => { | 10 promise_test(() => { |
8 let controller; | 11 let controller; |
9 const ws = new WritableStream({ | 12 const ws = new WritableStream({ |
10 start(c) { | 13 start(c) { |
11 controller = c; | 14 controller = c; |
12 } | 15 } |
13 }); | 16 }); |
14 | 17 |
15 // Now error the stream after its construction. | 18 // Now error the stream after its construction. |
16 const passedError = new Error('horrible things'); | 19 controller.error(error1); |
17 controller.error(passedError); | |
18 | 20 |
19 const writer = ws.getWriter(); | 21 const writer = ws.getWriter(); |
20 | 22 |
21 assert_equals(writer.desiredSize, null, 'desiredSize should be null'); | 23 assert_equals(writer.desiredSize, null, 'desiredSize should be null'); |
22 return writer.closed.catch(r => { | 24 return writer.closed.catch(r => { |
23 assert_equals(r, passedError, 'ws should be errored by passedError'); | 25 assert_equals(r, error1, 'ws should be errored by the passed error'); |
24 }); | 26 }); |
25 }, 'controller argument should be passed to start method'); | 27 }, 'controller argument should be passed to start method'); |
26 | 28 |
27 promise_test(t => { | 29 promise_test(t => { |
28 const ws = new WritableStream({ | 30 const ws = new WritableStream({ |
29 write(chunk, controller) { | 31 write(chunk, controller) { |
30 controller.error(new Error()); | 32 controller.error(error1); |
31 } | 33 } |
32 }); | 34 }); |
33 | 35 |
34 const writer = ws.getWriter(); | 36 const writer = ws.getWriter(); |
35 writer.write('a'); | |
36 | 37 |
37 return promise_rejects(t, new Error(), writer.closed, 'controller.error() in w
rite() should errored the stream'); | 38 return Promise.all([ |
| 39 writer.write('a'), |
| 40 promise_rejects(t, error1, writer.closed, 'controller.error() in write() sho
uld errored the stream') |
| 41 ]); |
38 }, 'controller argument should be passed to write method'); | 42 }, 'controller argument should be passed to write method'); |
39 | 43 |
40 promise_test(t => { | 44 promise_test(t => { |
41 const ws = new WritableStream({ | 45 const ws = new WritableStream({ |
42 close(controller) { | 46 close(controller) { |
43 controller.error(new Error()); | 47 controller.error(error1); |
44 } | 48 } |
45 }); | 49 }); |
46 | 50 |
47 const writer = ws.getWriter(); | 51 const writer = ws.getWriter(); |
48 writer.close(); | |
49 | 52 |
50 return promise_rejects(t, new Error(), writer.closed, 'controller.error() in c
lose() should error the stream'); | 53 return Promise.all([ |
| 54 writer.close(), |
| 55 promise_rejects(t, error1, writer.closed, 'controller.error() in close() sho
uld error the stream') |
| 56 ]); |
51 }, 'controller argument should be passed to close method'); | 57 }, 'controller argument should be passed to close method'); |
52 | 58 |
53 promise_test(() => { | 59 promise_test(() => { |
54 const ws = new WritableStream({}, { | 60 const ws = new WritableStream({}, { |
55 highWaterMark: 1000, | 61 highWaterMark: 1000, |
56 size() { return 1; } | 62 size() { return 1; } |
57 }); | 63 }); |
58 | 64 |
59 const writer = ws.getWriter(); | 65 const writer = ws.getWriter(); |
60 | 66 |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
119 test(() => { | 125 test(() => { |
120 let WritableStreamDefaultController; | 126 let WritableStreamDefaultController; |
121 const stream = new WritableStream({ | 127 const stream = new WritableStream({ |
122 start(c) { | 128 start(c) { |
123 WritableStreamDefaultController = c.constructor; | 129 WritableStreamDefaultController = c.constructor; |
124 } | 130 } |
125 }); | 131 }); |
126 | 132 |
127 assert_throws(new TypeError(), () => new WritableStreamDefaultController(strea
m), | 133 assert_throws(new TypeError(), () => new WritableStreamDefaultController(strea
m), |
128 'constructor should throw a TypeError exception'); | 134 'constructor should throw a TypeError exception'); |
129 }, 'WritableStreamDefaultController constructor should throw when passed an init
alised WritableStream'); | 135 }, 'WritableStreamDefaultController constructor should throw when passed an init
ialised WritableStream'); |
130 | 136 |
131 test(() => { | 137 test(() => { |
132 const stream = new WritableStream(); | 138 const stream = new WritableStream(); |
133 const writer = stream.getWriter(); | 139 const writer = stream.getWriter(); |
134 const WritableStreamDefaultWriter = writer.constructor; | 140 const WritableStreamDefaultWriter = writer.constructor; |
135 writer.releaseLock(); | 141 writer.releaseLock(); |
136 assert_throws(new TypeError(), () => new WritableStreamDefaultWriter({}), | 142 assert_throws(new TypeError(), () => new WritableStreamDefaultWriter({}), |
137 'constructor should throw a TypeError exception'); | 143 'constructor should throw a TypeError exception'); |
138 }, 'WritableStreamDefaultWriter should throw unless passed a WritableStream'); | 144 }, 'WritableStreamDefaultWriter should throw unless passed a WritableStream'); |
139 | 145 |
140 test(() => { | 146 test(() => { |
141 const stream = new WritableStream(); | 147 const stream = new WritableStream(); |
142 const writer = stream.getWriter(); | 148 const writer = stream.getWriter(); |
143 const WritableStreamDefaultWriter = writer.constructor; | 149 const WritableStreamDefaultWriter = writer.constructor; |
144 assert_throws(new TypeError(), () => new WritableStreamDefaultWriter(stream), | 150 assert_throws(new TypeError(), () => new WritableStreamDefaultWriter(stream), |
145 'constructor should throw a TypeError exception'); | 151 'constructor should throw a TypeError exception'); |
146 }, 'WritableStreamDefaultWriter constructor should throw when stream argument is
locked'); | 152 }, 'WritableStreamDefaultWriter constructor should throw when stream argument is
locked'); |
147 | 153 |
148 done(); | 154 done(); |
OLD | NEW |