98 lines
3.8 KiB
HTML
98 lines
3.8 KiB
HTML
<!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>
|