| <!DOCTYPE html> |
| <script src='../../resources/testharness.js'></script> |
| <script src='../../resources/testharnessreport.js'></script> |
| <script src='resources/streams-utils.js'></script> |
| <script> |
| const IsReadableStreamDisturbed = internals.isReadableStreamDisturbed.bind(internals); |
| |
| // This is updated till https://github.com/whatwg/streams/commit/4ba861e6f60c248060811830e11271c84b439cc3 |
| |
| test(function() { |
| var rs = new ReadableStream(); |
| |
| assert_false(IsReadableStreamDisturbed(rs), 'rs should not be disturbed on construction'); |
| |
| var reader = rs.getReader(); |
| assert_false(IsReadableStreamDisturbed(rs), 'getReader() call has no effect on whether a stream is disturbed or not'); |
| |
| reader.read(); |
| assert_true(IsReadableStreamDisturbed(rs), 'rs should be disturbed after read() call'); |
| }, 'IsReadableStreamDisturbed returns true for an empty non-closed stream on which read() has been called'); |
| |
| test(function() { |
| var rs = new ReadableStream(); |
| |
| assert_false(IsReadableStreamDisturbed(rs), 'rs should not be disturbed on construction'); |
| |
| var reader = rs.getReader(); |
| assert_false(IsReadableStreamDisturbed(rs), 'getReader() call has no effect on whether a stream is disturbed or not'); |
| |
| reader.cancel(); |
| assert_true(IsReadableStreamDisturbed(rs), 'rs should be disturbed after cancel() call'); |
| }, 'IsReadableStreamDisturbed returns true for an empty non-closed stream on which cancel() has been called'); |
| |
| test(function() { |
| var rs = new ReadableStream({ |
| start: function(c) { |
| c.close(); |
| } |
| }); |
| |
| assert_false(IsReadableStreamDisturbed(rs), 'rs should not be disturbed on construction'); |
| |
| var reader = rs.getReader(); |
| assert_false(IsReadableStreamDisturbed(rs), 'getReader() call has no effect on whether a stream is disturbed or not'); |
| |
| reader.read(); |
| assert_true(IsReadableStreamDisturbed(rs), 'rs should be disturbed after read() call'); |
| }, 'IsReadableStreamDisturbed returns true for a closed stream on which read() has been called'); |
| |
| test(function() { |
| var rs = new ReadableStream({ |
| start: function(c) { |
| c.close(); |
| } |
| }); |
| |
| assert_false(IsReadableStreamDisturbed(rs), 'rs should not be disturbed on construction'); |
| |
| var reader = rs.getReader(); |
| assert_false(IsReadableStreamDisturbed(rs), 'getReader() call has no effect on whether a stream is disturbed or not'); |
| |
| reader.cancel(); |
| assert_true(IsReadableStreamDisturbed(rs), 'rs should be disturbed after cancel() call'); |
| }, 'IsReadableStreamDisturbed returns true for a closed stream on which cancel() has been called'); |
| |
| test(function() { |
| var rs = new ReadableStream({ |
| start: function(c) { |
| c.error(new Error('waffles')); |
| } |
| }); |
| |
| assert_false(IsReadableStreamDisturbed(rs), 'rs should not be disturbed on construction'); |
| |
| var reader = rs.getReader(); |
| assert_false(IsReadableStreamDisturbed(rs), 'getReader() call has no effect on whether a stream is disturbed or not'); |
| |
| reader.read(); |
| assert_true(IsReadableStreamDisturbed(rs), 'rs should be disturbed after read() call'); |
| }, 'IsReadableStreamDisturbed returns true for an errored stream on which read() has been called'); |
| |
| test(function() { |
| var rs = new ReadableStream({ |
| start: function(c) { |
| c.error(new Error('waffles')); |
| } |
| }); |
| |
| assert_false(IsReadableStreamDisturbed(rs), 'rs should not be disturbed on construction'); |
| |
| var reader = rs.getReader(); |
| assert_false(IsReadableStreamDisturbed(rs), 'getReader() call has no effect on whether a stream is disturbed or not'); |
| |
| reader.cancel(); |
| assert_true(IsReadableStreamDisturbed(rs), 'rs should be disturbed after cancel() call'); |
| }, 'IsReadableStreamDisturbed returns true for an errored stream on which cancel() has been called'); |
| </script> |