Chromium Code Reviews| Index: third_party/WebKit/LayoutTests/fast/canvas/OffScreenCanvas-invalid-args.html |
| diff --git a/third_party/WebKit/LayoutTests/fast/canvas/OffScreenCanvas-invalid-args.html b/third_party/WebKit/LayoutTests/fast/canvas/OffScreenCanvas-invalid-args.html |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..1a788dc171e2093ed0a94bcee1fa26080384507f |
| --- /dev/null |
| +++ b/third_party/WebKit/LayoutTests/fast/canvas/OffScreenCanvas-invalid-args.html |
| @@ -0,0 +1,68 @@ |
| +<!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"); |
| + |
| +var didThrow = false; |
| +try { |
| + var canvas2 = new OffScreenCanvas(-1, -1); |
| +} catch(e) { |
| + didThrow = true; |
| + testPassed("OffScreenCanvas(-1, -1) throws an exception as expected: " + e); |
| +} |
| +if (!didThrow) |
| + testFailed("OffScreenCanvas(-1, -1) should throw an exception but did not."); |
| + |
| +var canvas3 = new OffScreenCanvas(null, null); |
| +shouldBe("canvas3.width", "0"); |
| +shouldBe("canvas3.height", "0"); |
| + |
| +canvas3.width = setWidth; |
| +canvas3.height = setHeight; |
| +shouldBe("canvas3.width", "setWidth-1"); |
| +shouldBe("canvas3.height", "setHeight-1"); |
| + |
| +try { |
| + canvas3.width = -1; |
|
Justin Novosad
2015/12/04 04:37:41
Use the helper function "shouldThrow" instead of a
|
| +} catch(e) { |
| + didThrow = true; |
| + testPassed("Setting width to -1 throws an exception as expected: " + e); |
| +} |
| +if (!didThrow) |
| + testFailed("Setting width to -1 should throw an exception but did not."); |
| + |
| +try { |
| + canvas3.width = obj; |
| +} catch(e) { |
| + didThrow = true; |
| + testPassed("Setting width to an object throws an exception as expected: " + e); |
| +} |
| +if (!didThrow) |
| + testFailed("Setting width to an object should throw an exception but did not."); |
| + |
| +try { |
| + var canvas4 = new OffScreenCanvas(obj, obj); |
| +} catch(e) { |
| + didThrow = true; |
| + testPassed("OffScreenCanvas(object, object) throws an exception as expected: " + e); |
| +} |
| +if (!didThrow) |
| + testFailed("OffScreenCanvas(object, object) should throw an exception but did not"); |
| + |
| +</script> |