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"); |