summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/canvas/script-tests/canvas-lineDash-invalid.js
blob: 35f73df6fd14e2150422c31bd55f7362f610df6f (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
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");