blob: 6e5066771cf8bb8f4be259449614c77584b62899 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<body>
<script>
description("Test that we can render a CMYK JPEG without color corruption.");
// This is an async test because it has to wait for WebKit to load an image.
jsTestIsAsync = true;
// The colors used for verifying the test results.
var red = 0, green = 0, blue = 0, alpha = 0;
// Create a canvas element. This element is used for pasting a CMYK JPEG and
// reading its pixels.
var canvas = document.createElement("canvas");
canvas.width = 64;
canvas.height = 64;
// Create an image object and load a CMYK JPEG.
var image = new Image();
image.onload = function() {
// Paste the loaded JPEG ('resources/cmyk-jpeg.jpg') to the canvas.
var context = canvas.getContext("2d");
context.drawImage(image, 0, 0);
// Read the pixels in the canvas and calculate their avarage values.
// (DumpRenderTree always allows to read them.)
var data = context.getImageData(0, 0, canvas.width, canvas.height);
var pixels = canvas.width * canvas.height;
for (var i = 0; i < pixels * 4; i += 4) {
red += data.data[i + 0];
green += data.data[i + 1];
blue += data.data[i + 2];
alpha += data.data[i + 3];
}
red /= pixels;
green /= pixels;
blue /= pixels;
alpha /= pixels;
// Even though the output colors depend on color-profiles (i.e. they depend
// on devices), green must be the most prominent color because the source
// image only consists of green. So, we test it.
shouldBeTrue("green > red");
shouldBeTrue("green > blue");
// Notify this test has been finished.
finishJSTest();
}
image.src = "resources/cmyk-jpeg.jpg";
</script>
<script src="../../resources/js-test-post.js"></script>
</body>
</html>