68 lines
2.4 KiB
HTML
68 lines
2.4 KiB
HTML
<!DOCTYPE html>
|
|
<script src='../resources/testharness.js'></script>
|
|
<script src='../resources/testharnessreport.js'></script>
|
|
<script src='../resources/gc.js'></script>
|
|
<script>
|
|
// This is updated till https://github.com/whatwg/streams/commit/4ba861e6f60c248060811830e11271c84b439cc3
|
|
|
|
test(function() {
|
|
var input = {
|
|
readable: { },
|
|
writable: { }
|
|
};
|
|
var options = { };
|
|
assert_throws(new TypeError(), function() { ReadableStream.prototype.pipeThrough.call(undefined, input, options); });
|
|
assert_throws(new TypeError(), function() { ReadableStream.prototype.pipeThrough.call(null, input, options); });
|
|
assert_throws(new TypeError(), function() { ReadableStream.prototype.pipeThrough.call(1, input, options); });
|
|
assert_throws(new TypeError(), function() { ReadableStream.prototype.pipeThrough.call({ "pipeTo": "test" }, input, options); });
|
|
}, 'ReadableStream.prototype.pipeThrough should throw when "this" has no pipeTo method');
|
|
|
|
test(function() {
|
|
var options = { };
|
|
var thisValue = {
|
|
pipeTo: function() {
|
|
assert_unreached();
|
|
}
|
|
};
|
|
|
|
assert_throws(new TypeError(), function() { ReadableStream.prototype.pipeThrough.call(thisValue, null, options); });
|
|
assert_throws(new TypeError(), function() { ReadableStream.prototype.pipeThrough.call(thisValue, undefined, options); });
|
|
}, 'ReadableStream.prototype.pipeThrough should throw when passed argument is not an object');
|
|
|
|
test(function() {
|
|
var options = { };
|
|
var error = new TypeError("potato");
|
|
|
|
var thisWrongValue = {
|
|
get pipeTo() {
|
|
throw error;
|
|
}
|
|
};
|
|
assert_throws(error, function() { ReadableStream.prototype.pipeThrough.call(thisWrongValue, { readable: { }, writable: { } }, options); });
|
|
|
|
var thisValue = {
|
|
pipeTo: function() {
|
|
assert_unreached();
|
|
}
|
|
};
|
|
var wrongInput = {
|
|
readable: { },
|
|
get writable() {
|
|
throw error;
|
|
}
|
|
};
|
|
assert_throws(error, function() { ReadableStream.prototype.pipeThrough.call(thisValue, wrongInput, options); });
|
|
|
|
var wrongInput2 = {
|
|
get readable() {
|
|
throw error;
|
|
},
|
|
writable: { }
|
|
};
|
|
var thisValue2 = {
|
|
pipeTo: function() { }
|
|
};
|
|
assert_throws(error, function() { ReadableStream.prototype.pipeThrough.call(thisValue2, wrongInput2, options); });
|
|
}, 'ReadableStream.prototype.pipeThrough should throw when called getters are throwing');
|
|
</script>
|