<!DOCTYPE html> <html> <head> <script src="../../resources/js-test.js"></script> </head> <body> <script> description("Test the handling of non-integer source coordinates in getImageData()."); ctx = document.createElement('canvas').getContext('2d'); function dimensionsShouldBe(sx, sy, sw, sh, width, height) { imageData = ctx.getImageData(sx, sy, sw, sh); debug('getImageData(' + sx + ', ' + sy + ', ' + sw + ', ' + sh + ')'); shouldBe('imageData.width', width + ''); shouldBe('imageData.height', height + ''); } // Basic integer values dimensionsShouldBe( 0, 0, 20, 10, 20, 10); // Source point is not an integer dimensionsShouldBe( .1, .2, 20, 10, 21, 11); dimensionsShouldBe( .9, .8, 20, 10, 21, 11); // Size is not an integer dimensionsShouldBe( 0, 0, 19.9, 9.9, 20, 10); dimensionsShouldBe( 0, 0, 19.1, 9.1, 20, 10); // Width straddles a pixel boundary dimensionsShouldBe( .9, 0, .2, 10, 2, 10); // Basic integer negative values dimensionsShouldBe( -1, -1, 20, 10, 20, 10); // Non-integer negative values dimensionsShouldBe(-1.1, 0, 20, 10, 21, 10); dimensionsShouldBe(-1.9, 0, 20, 10, 21, 10); </script> </body> </html>