chromium/third_party/blink/web_tests/fast/canvas/canvas-drawImage-video-imageSmoothingEnabled.html

<!DOCTYPE HTML>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<script>
function createNewCanvas(width, height)
{
    var canvas = document.createElement("canvas");
    canvas.width = width;
    canvas.height = height;
    var ctx = canvas.getContext("2d");
    ctx.clearRect(0, 0, width, height);
    return ctx;
}

function compareTwoCanvases(ctx1, ctx2, width, height)
{
    var data1 = ctx1.getImageData(0, 0, width, height).data;
    var data2 = ctx2.getImageData(0, 0, width, height).data;
    var dataMatched = true;
    for (var i = 0; i < data1.length; i++) {
        if (data1[i] != data2[i]) {
            dataMatched = false;
            break;
        }
    }
    assert_false(dataMatched);
}

async_test(function(t) {
    var video = document.createElement("video");
    video.oncanplaythrough = t.step_func_done(function() {
        video.pause();
        var width = 100;
        var height = 100;
        var ctx1 = createNewCanvas(width, height);
        var ctx2 = createNewCanvas(width, height);
        ctx1.imageSmoothingEnabled = false;
        ctx2.imageSmoothingEnabled = true;
        ctx2.imageSmoothingQuality = 'high';
        ctx1.drawImage(video, 0, 0, video.videoWidth, video.videoHeight, 0, 0, width, height);
        ctx2.drawImage(video, 0, 0, video.videoWidth, video.videoHeight, 0, 0, width, height);
        compareTwoCanvases(ctx1, ctx2, width, height);
    });
    video.preload = "auto";
    video.src = "../../compositing/resources/video.ogv";
}, 'drawImage from a video should look differently with imageSmoothing enabled');
</script>