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
41
42
43
44
|
description("Test for invalid input of setLineDash, getLineDash and lineDashOffset");
var canvas = document.createElement('canvas');
document.body.appendChild(canvas);
canvas.setAttribute('width', '700');
canvas.setAttribute('height', '700');
var ctx = canvas.getContext('2d');
var initialLineDash = [1.5, 2.5];
var initialLineDashOffset = 1.5;
function resetLineDash() {
ctx.setLineDash(initialLineDash);
ctx.lineDashOffset = initialLineDashOffset;
}
function trySettingLineDash(value) {
resetLineDash();
ctx.setLineDash(value);
return ctx.getLineDash();
}
function trySettingLineDashWithNoArgs() {
resetLineDash();
ctx.setLineDash();
return ctx.getLineDash();
}
function trySettingLineDashOffset(value) {
resetLineDash();
ctx.lineDashOffset = value;
return ctx.lineDashOffset;
}
shouldBe("trySettingLineDash([1, -1])", "initialLineDash");
shouldBe("trySettingLineDash([1, Infinity])", "initialLineDash");
shouldBe("trySettingLineDash([1, -Infinity])", "initialLineDash");
shouldBe("trySettingLineDash([1, NaN])", "initialLineDash");
shouldBe("trySettingLineDash([1, 'string'])", "initialLineDash");
shouldThrow("trySettingLineDashWithNoArgs()", '"TypeError: Failed to execute \'setLineDash\' on \'CanvasRenderingContext2D\': 1 argument required, but only 0 present."');
shouldBe("trySettingLineDashOffset(Infinity)", "initialLineDashOffset");
shouldBe("trySettingLineDashOffset(-Infinity)", "initialLineDashOffset");
shouldBe("trySettingLineDashOffset(NaN)", "initialLineDashOffset");
shouldBe("trySettingLineDashOffset('string')", "initialLineDashOffset");
|