summaryrefslogtreecommitdiffstats
path: root/third_party/WebKit/LayoutTests/fast/canvas/canvas-bezier-same-endpoint.html
blob: d64da818cd1f7a844599087393a9eaa29d7127ad (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
45
46
47
48
49
50
51
52
53
54
55
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test.js"></script>
</head>
<body>
<canvas id="canvas" width="100" height="100"></canvas>
<script>
description("Bug 105650: Test correct rendering of quadratic and bezier curves with coincident endpoints");
var ctx = document.getElementById('canvas').getContext('2d');
var data;

function shouldBeYellow(x,y)
{
	blue_value = ctx.getImageData(x, y, 1, 1).data[2];
	shouldBe("blue_value", "0");
}

function shouldBeBlue(x,y)
{
	blue_value = ctx.getImageData(x, y, 1, 1).data[2];
	shouldBe("blue_value", "255");
}

ctx.fillStyle = '#00f';
ctx.strokeStyle = '#ff0';
ctx.lineWidth = 30;

ctx.beginPath();
ctx.fillRect(0,0,100,100);
ctx.moveTo(0,0);

// bezier curve with coincident endpoints, horizontal line
ctx.bezierCurveTo(0,0,200,0,0,0);
shouldBeBlue(50,0);
ctx.stroke();
shouldBeYellow(50,0);
shouldBeBlue(0,50);
shouldBeBlue(70,70);

// bezier curve with coincident endpoints, vertical line
ctx.bezierCurveTo(0,200,0,0,0,0);
ctx.stroke();
shouldBeYellow(50,0);
shouldBeBlue(75,75);

// bezier curve with coincident endpoints
ctx.bezierCurveTo(200,0,0,200,0,0);
ctx.stroke();
shouldBeYellow(75,75);


</script>
</body>
</html>