summaryrefslogtreecommitdiffstats
path: root/tests/webkitwidgets/hybridPixmap/test.html
diff options
context:
space:
mode:
Diffstat (limited to 'tests/webkitwidgets/hybridPixmap/test.html')
-rw-r--r--tests/webkitwidgets/hybridPixmap/test.html99
1 files changed, 99 insertions, 0 deletions
diff --git a/tests/webkitwidgets/hybridPixmap/test.html b/tests/webkitwidgets/hybridPixmap/test.html
new file mode 100644
index 000000000..a6cbed1fb
--- /dev/null
+++ b/tests/webkitwidgets/hybridPixmap/test.html
@@ -0,0 +1,99 @@
+<html>
+ <head>
+ <style>
+ img { display: block; border-style: groove}
+ </style>
+ <script>
+ function testImageData() {
+ var obj = myWidget.image;
+ var pxm = myWidget.pixmap;
+
+ function compareImageDataSize(o, imageData) {
+ myWidget.compare(imageData.height, o.height);
+ myWidget.compare(imageData.width, o.width);
+ }
+ compareImageDataSize(obj, obj.toImageData());
+ compareImageDataSize(pxm, pxm.toImageData());
+
+ function compareImageDataPixel(o, imageData) {
+ compareImageDataSize(o, imageData);
+ // Make sure pixels are 0xAABBCCFF
+ var data = imageData.data;
+ for (var i = 0; i < data.length; i += 4) {
+ myWidget.compare(data[i], 0xaa); // R
+ myWidget.compare(data[i+1], 0xbb); // G
+ myWidget.compare(data[i+2], 0xcc); // B
+ myWidget.compare(data[i+3], 0xff); // A
+ }
+ }
+ var objARGB32 = myWidget.abcImage(5);
+ compareImageDataPixel(objARGB32, objARGB32.toImageData());
+ var objRGB32 = myWidget.abcImage(4);
+ compareImageDataPixel(objRGB32, objRGB32.toImageData());
+ var objRGB888 = myWidget.abcImage(13);
+ compareImageDataPixel(objRGB888, objRGB888.toImageData());
+ var objRGB444 = myWidget.abcImage(14);
+ compareImageDataPixel(objRGB444, objRGB444.toImageData());
+ }
+
+ function startTest()
+ {
+ testImageData();
+
+ var obj = myWidget.image;
+ var pxm = myWidget.pixmap;
+
+ var img = new Image;
+ obj.assignToHTMLImageElement(img);
+ var img1 = document.getElementById("img1");
+ var img2 = document.getElementById("img2");
+ var img3 = document.getElementById("img3");
+ var img4 = document.getElementById("img4");
+ document.body.appendChild(img);
+ obj.assignToHTMLImageElement(img3);
+ pxm.assignToHTMLImageElement(img4);
+ myWidget.compare(pxm.width, img4.width);
+ myWidget.compare(obj.width, img3.width);
+ var signalsFired = 0;
+ myWidget.compare(obj.toString(),"[Qt Native Pixmap "+obj.width+","+obj.height+"]");
+ myWidget.compare(String(pxm),"[Qt Native Pixmap "+pxm.width+","+pxm.height+"]");
+
+ // this shouldn't work but shouldn't crash
+ myWidget.randomSlot("foobar");
+
+ myWidget.pixmapSignal.connect(function(imgFromSignal) {
+ myWidget.compare(imgFromSignal.height, img2.height);
+ if (++signalsFired == 2)
+ myWidget.completeTest();
+ });
+
+ myWidget.imageSignal.connect(function(imgFromSignal) {
+ myWidget.compare(pxm.height, img2.height);
+ if (++signalsFired == 2)
+ myWidget.completeTest();
+ });
+
+ function continueTestAfterImagesAreLoaded()
+ {
+ if (img1.complete && img2.complete) {
+ myWidget.compare(pxm.height, img2.height);
+ myWidget.pixmapSlot(img);
+ myWidget.imageSlot(pxm);
+ }
+ }
+ img1.onload = continueTestAfterImagesAreLoaded;
+ img2.onload = continueTestAfterImagesAreLoaded;
+ img1.src = obj.toDataUrl();
+ img2.src = myWidget.pixmap.toDataUrl();
+ myWidget.image = pxm;
+ myWidget.pixmap = img;
+ }
+ </script>
+ </head>
+ <body onload="startTest()">
+ <img id="img1" />
+ <img id="img2" />
+ <img id="img3" />
+ <img id="img4" />
+ </body>
+</html>