blob: 64686b32792f0a1e34875fcec5a659fe0a6f35cd [file] [log] [blame]
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<body>
<script>
var canvas = document.createElement("canvas");
var context = canvas.getContext('2d');
function hex(number)
{
var hexDigits = "0123456789abcdef";
return hexDigits[number >> 4] + hexDigits[number & 0xF];
}
function pixel()
{
var imageData = context.getImageData(0, 0, 1, 1);
return "#" + hex(imageData.data[0]) + hex(imageData.data[1]) + hex(imageData.data[2]);
}
var black="#000000";
var red = "#ff0000";
var green = "#008000";
test(function(t) {
// (save set restore)
context.fillStyle = "black";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.fillStyle = "red";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
// (save (save set restore) restore)
context.fillStyle = "black";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.save();
context.fillStyle = "red";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
// (save (save restore) set restore)
context.fillStyle = "black";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.restore();
context.save();
context.fillStyle = "red";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
// (save (save (save set restore) set (save set restore) restore) restore)
context.fillStyle = "black";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.fillStyle = "red";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.fillStyle = "green";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), green);
context.save();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), green);
context.fillStyle = "red";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), green);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
// (save (save set (save (save set restore) restore) set restore) restore)
context.fillStyle = "black";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.save();
context.fillStyle = "red";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.save();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.save();
context.fillStyle = "green";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), green);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), red);
context.fillStyle = "green";
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), green);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
context.restore();
context.fillRect(0, 0, 1, 1);
assert_equals(pixel(), black);
}, "Verfiy canvas save and restore correct behavior.");
</script>
</body>
</html>