blob: 9ce02a7c079e2148c37aab238afe08978d22e900 [file] [log] [blame]
<!DOCTYPE html>
<script src="../../resources/js-test.js"></script>
<script>
description("Tests that the OffScreenCanvas can handle invalid arguments");
// Since blink uses signed int internally, this case tests how the constructor
// responds to the arguments that are larger than INT_MAX which would cause
// overflow. The current implementation is expected to clamp.
var setWidth = Math.pow(2, 31);
var setHeight = Math.pow(2, 31);
var obj = {Name: "John Doe", Age: 30};
var canvas1 = new OffScreenCanvas(setWidth, setHeight);
shouldBe("canvas1.width", "setWidth-1");
shouldBe("canvas1.height", "setHeight-1");
canvas1.width = null;
canvas1.height = null;
shouldBe("canvas1.width", "0");
shouldBe("canvas1.height", "0");
shouldThrow("new OffScreenCanvas(-1, -1)");
var canvas2 = new OffScreenCanvas(null, null);
shouldBe("canvas2.width", "0");
shouldBe("canvas2.height", "0");
canvas2.width = setWidth;
canvas2.height = setHeight;
shouldBe("canvas2.width", "setWidth-1");
shouldBe("canvas2.height", "setHeight-1");
shouldThrow("canvas2.width = -1");
shouldThrow("canvas2.height = -1");
shouldThrow("canvas2.width = obj");
shouldThrow("canvas2.height = obj");
shouldThrow("new OffScreenCanvas(obj, obj)");
</script>