blob: 3b3ea3e717e6068b70d5c218727a086a846187cd [file] [log] [blame]
<!DOCTYPE html>
<html>
<head>
<style>
canvas { padding: 3px; padding-bottom: 0px;}
</style>
<script>
var autoTest = false;
if (window.testRunner) {
window.testRunner.dumpAsTextWithPixelResults();
window.testRunner.waitUntilDone();
autoTest = true;
}
function logMessage(message)
{
document.getElementById('log').textContent += '\n' + message;
}
function logPixel(canvasContext, x, y)
{
var p = canvasContext.getImageData(x, y, 1, 1).data;
logMessage('rgba(' + [p[0], p[1], p[2], p[3]] + ')');
}
function appendNewCanvasElementTo(parentId, canvasId)
{
var canvas = document.createElement('canvas');
canvas.width = canvas.height = 64;
document.getElementById(parentId).appendChild(canvas);
canvas.id = canvasId;
return canvas;
}
function canvasTest(item, mimeType)
{
var previousCanvas = document.getElementById('c' + (item - 1));
var img = new Image();
img.onload = function() {
var canvas = appendNewCanvasElementTo('list', 'c' + item);
var context = canvas.getContext('2d');
context.drawImage(this, 0, 0);
if (!window.testRunner)
logPixel(context, 25, 25);
if (autoTest)
setTimeout(test, 0);
};
img.src = previousCanvas.toDataURL(mimeType);
}
function load()
{
var list = document.getElementById('list');
var log = document.getElementById('log');
list.innerHTML = log.innerHTML = '';
var select = document.getElementById('alpha');
var alpha = Number(select.value).toFixed(3);
select.onchange = function() { load(); };
var canvas = appendNewCanvasElementTo('list', 'c0');
var context = canvas.getContext('2d');
context.fillStyle = 'rgba(0, 64, 0, ' + alpha + ')';
context.fillRect(0, 0, 64, 64);
canvas.style.display = 'none';
if (window.testRunner) {
document.getElementById('instructions').style.display = 'none';
} else {
logMessage('alpha ' + alpha);
}
nextItem = 1;
if (autoTest)
test();
}
function test()
{
if (autoTest && nextItem > 70) {
if (window.testRunner)
window.testRunner.notifyDone();
return;
}
canvasTest(nextItem, 'image/png');
++nextItem;
}
</script>
</head>
<body onload='load()'>
<p id='instructions'>
Back-to-back canvas alpha image/png encode decode <button onclick='test()'>Test</button> alpha
<input id='alpha' type='text' value='0.5'>
</p>
<ul id='list'></ul>
<pre id='log'></pre>
</body>
</html>