| <!DOCTYPE html> |
| <script src='../resources/testharness.js'></script> |
| <script src='../resources/testharnessreport.js'></script> |
| <script> |
| // This is updated till https://github.com/whatwg/streams/commit/4ba861e6f60c248060811830e11271c84b439cc3 |
| |
| var test1 = async_test('Erroring a ReadableStream after checking closed should reject ReadableStreamDefaultReader closed promise'); |
| test1.step(function() { |
| var controller; |
| var rs = new ReadableStream({ |
| start: function(c) { |
| controller = c; |
| } |
| }); |
| |
| rs.getReader().closed.then(test1.step_func(function() { |
| assert_unreached("closed promise should not be resolved when stream is errored"); |
| }), test1.step_func(function(err) { |
| assert_equals(rsError, err); |
| test1.done(); |
| })); |
| |
| var rsError = "my error"; |
| controller.error(rsError); |
| }); |
| |
| var test2 = async_test('Erroring a ReadableStream before checking closed should reject ReadableStreamDefaultReader closed promise'); |
| test2.step(function() { |
| var controller; |
| var rs = new ReadableStream({ |
| start: function(c) { |
| controller = c; |
| } |
| }); |
| |
| var rsError = "my error"; |
| controller.error(rsError); |
| |
| // Let's call getReader twice to ensure that stream is not locked to a reader. |
| rs.getReader().releaseLock(); |
| rs.getReader().closed.then(test2.step_func(function() { |
| assert_unreached("closed promise should not be resolved when stream is errored"); |
| }), test2.step_func(function(err) { |
| assert_equals(rsError, err); |
| test2.done(); |
| })); |
| }); |
| </script> |