summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/canvas/OffscreenCanvas-invalid-args.html
blob: a0171befeb0f1c8f8c43ba37f5fef4d520e79f71 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<!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>