Chromium Code Reviews| Index: LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html |
| diff --git a/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html b/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html |
| index 2e2744859061dcae407659a1983cb912ca5ec2e4..8b26f994049846133c6ea71e77c2633527a6d63c 100644 |
| --- a/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html |
| +++ b/LayoutTests/fast/canvas/canvas-createImageBitmap-drawImage.html |
| @@ -4,8 +4,8 @@ |
| <script src="../js/resources/js-test-pre.js"></script> |
| </head> |
| <body> |
| +<input type="file" name="file" id="file" onchange="onInputFileChange()"> |
| <script> |
| - |
| description("Ensure correct behavior of drawImage with ImageBitmaps."); |
| window.jsTestIsAsync = true; |
| @@ -87,6 +87,7 @@ var bitmap; |
| var image; |
| var testBitmap; // this is an ImageBitmap that is uncropped. We use this to test createImageBitmap(testBitmap) |
| var d; // image.imageData |
| +var blob; |
| var checks; |
| var elements; |
| @@ -111,6 +112,7 @@ image.src = aCanvas.toDataURL(); // set a data URI of the base64 enconded image |
| var imageLoaded = false; |
| var imageBitmapLoaded = false; |
| +var blobLoaded = false; |
| function imageLoaded() { |
| createImageBitmap(image, imageBitmapLoadedCallback); |
| @@ -135,13 +137,40 @@ function imageBitmapLoadedCallback(imageBitmap) { |
| loaded(); |
| } |
| +if (window.eventSender) { |
| + window.onload = function() { |
| + eventSender.beginDragWithFiles(['resources/pattern.png']); |
| + moveMouseToCenterOfElement(document.getElementById('file')); |
| + eventSender.mouseUp(); |
|
Justin Novosad
2013/07/26 18:15:58
This is a weird indirect way to get a blob. Since
|
| + }; |
| +} |
| + |
| +function onInputFileChange() |
| +{ |
| + var file = document.getElementById("file").files[0]; |
| + var reader = new FileReader(); |
| + reader.onload = function(event) { |
| + blob = new Blob([event.target.result]); |
| + blobLoaded = true; |
| + loaded(); |
| + } |
| + reader.readAsArrayBuffer(file); |
| +} |
| + |
| +function moveMouseToCenterOfElement(element) |
| +{ |
| + var centerX = element.offsetLeft + element.offsetWidth / 2; |
| + var centerY = element.offsetTop + element.offsetHeight / 2; |
| + eventSender.mouseMoveTo(centerX, centerY); |
| +} |
| + |
| function loaded() { |
| - if (imageLoaded && imageBitmapLoaded) { |
| + if (imageLoaded && imageBitmapLoaded && blobLoaded) { |
| // check all of these elements |
| - elements = [image, aCanvas, d, aCtx, testBitmap]; |
| + elements = [image, aCanvas, d, aCtx, blob, testBitmap]; |
| // with all of these checks |
| - checks = [checkNoCrop, checkCrop, checkCropRight, checkOverCrop, checkOverCropRight, checkNegativeCrop, checkEmpty, checkEmpty2, checkImmutable]; |
| + checks = [checkNoCrop, checkCrop, checkCropRight, checkOverCrop, checkOverCropRight, checkNegativeCrop, checkEmpty, checkEmpty2]; |
| // wait for callback to finish before each check to ensure synchronous behavior |
| nextCheck(); |
| @@ -202,11 +231,6 @@ function checkEmpty2(element) { |
| createImageBitmap(element, callbackEmpty, 40, 30, 30, 30); |
| } |
| -function checkImmutable(element) { |
| - debug("checkImmutable with ".concat(jsWrapperClass(element))); |
| - createImageBitmap(element, callbackImmutable); |
| -} |
| - |
| function callbackNoCrop(imageBitmap) { |
| bitmap = imageBitmap; |
| shouldBe("bitmap.width", "imageWidth"); |
| @@ -425,34 +449,6 @@ function callbackEmpty(imageBitmap) { |
| commonCallback(imageBitmap); |
| } |
| -function callbackImmutable(imageBitmap) { |
| - // change the underlying element to ensure that it does not change the imageBitmap |
| - switch(i) { |
| - case 0: // image |
| - image = new Image(); |
| - break; |
| - case 1: // canvas |
| - clearContext(aCtx); |
| - break; |
| - case 2: // data |
| - d = 0; |
| - break; |
| - case 3: // context |
| - clearContext(aCtx); |
| - break; |
| - case 4: // bitmap |
| - testBitmap = 0; |
| - break; |
| - default: |
| - testFailed("Default should not be called."); |
| - } |
| - // should be drawn to (0, 0), (20, 20) |
| - callbackNoCrop(imageBitmap); |
| - |
| - // we potentially cleared our auxillary context, so redraw the image |
| - drawPattern(aCtx); |
| -} |
| - |
| function commonCallback(imageBitmap) { |
| bitmap = imageBitmap; |
| shouldBeType("bitmap", "ImageBitmap"); |