| OLD | NEW |
| (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(); |
| OLD | NEW |