<!DOCTYPE html>
<title>Canvas test: 2d.line.width.basic</title>
<script src="../tests.js"></script>
<link rel="stylesheet" href="../tests.css">
<link rel="prev" href="2d.line.defaults.html" title="2d.line.defaults">
<link rel="next" href="2d.line.width.transformed.html" title="2d.line.width.transformed">
<body class="show_output">
<p>
 <a href="2d.line.defaults.html" accesskey="p" title="[p] 2d.line.defaults">&lt;</a>
 <a href="index.html">[index]</a>
 <a href="2d.line.width.transformed.html" accesskey="n" title="[n] 2d.line.width.transformed">&gt;</a>
<h1><a href="index.2d.html">2d</a>.<a href="index.2d.line.html">line</a>.<a href="index.2d.line.width.html">width</a>.basic</h1>
<p class="desc">lineWidth determines the width of line strokes</p>
<div class="refs">References:
<ul>
<li><a href="spec.html#testrefs.2d.lineWidth">2d.lineWidth</a>

</ul>
</div>

<p class="output">Actual output:</p>
<canvas id="c" class="output" width="100" height="50"><p class="fallback">FAIL (fallback content)</p></canvas>
<p class="output expectedtext">Expected output:<p><img src="green-100x50.png" class="output expected" id="expected" alt="">
<ul id="d"></ul>
<script>
_addTest(function(canvas, ctx) {

ctx.fillStyle = '#0f0';
ctx.fillRect(0, 0, 100, 50);

ctx.lineWidth = 20;
// Draw a green line over a red box, to check the line is not too small
ctx.fillStyle = '#f00';
ctx.strokeStyle = '#0f0';
ctx.fillRect(15, 15, 20, 20);
ctx.beginPath();
ctx.moveTo(25, 15);
ctx.lineTo(25, 35);
ctx.stroke();

// Draw a green box over a red line, to check the line is not too large
ctx.fillStyle = '#0f0';
ctx.strokeStyle = '#f00';
ctx.beginPath();
ctx.moveTo(75, 15);
ctx.lineTo(75, 35);
ctx.stroke();
ctx.fillRect(65, 15, 20, 20);

_assertPixel(canvas, 14,25, 0,255,0,255, "14,25", "0,255,0,255");
_assertPixel(canvas, 15,25, 0,255,0,255, "15,25", "0,255,0,255");
_assertPixel(canvas, 16,25, 0,255,0,255, "16,25", "0,255,0,255");
_assertPixel(canvas, 25,25, 0,255,0,255, "25,25", "0,255,0,255");
_assertPixel(canvas, 34,25, 0,255,0,255, "34,25", "0,255,0,255");
_assertPixel(canvas, 35,25, 0,255,0,255, "35,25", "0,255,0,255");
_assertPixel(canvas, 36,25, 0,255,0,255, "36,25", "0,255,0,255");

_assertPixel(canvas, 64,25, 0,255,0,255, "64,25", "0,255,0,255");
_assertPixel(canvas, 65,25, 0,255,0,255, "65,25", "0,255,0,255");
_assertPixel(canvas, 66,25, 0,255,0,255, "66,25", "0,255,0,255");
_assertPixel(canvas, 75,25, 0,255,0,255, "75,25", "0,255,0,255");
_assertPixel(canvas, 84,25, 0,255,0,255, "84,25", "0,255,0,255");
_assertPixel(canvas, 85,25, 0,255,0,255, "85,25", "0,255,0,255");
_assertPixel(canvas, 86,25, 0,255,0,255, "86,25", "0,255,0,255");


});
</script>

