aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml
diff options
context:
space:
mode:
authorCharles Yin <charles.yin@nokia.com>2012-05-03 15:21:08 +1000
committerQt by Nokia <qt-info@nokia.com>2012-05-04 02:39:23 +0200
commit6318560eca7e3247a63620ce24d2d7e291dd5d84 (patch)
treea4f09da7a81577994d1d34fd9926257dfb136e64 /tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml
parent9cc306916bf8bd70e79aa67458759985e9a26c0d (diff)
Refactor canvas item unit tests
Change-Id: I99ba84889ce360d2def27834f15af43c2bdf29bc Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml')
-rw-r--r--tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml472
1 files changed, 211 insertions, 261 deletions
diff --git a/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml b/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml
index a70c798594..7c17499f68 100644
--- a/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml
+++ b/tests/auto/quick/qquickcanvasitem/data/tst_canvas.qml
@@ -1,281 +1,231 @@
import QtQuick 2.0
-import QtTest 1.0
-
-Rectangle {
- id:container
- width:100
- height:100
- Component {
- id:canvas
- Canvas {
- id:c
- width:100;height:100
- onPaint: {
- var context = getContext("2d");
- context.fillStyle = "red";
- context.fillRect(0, 0, 100, 100);
- }
- renderTarget:Canvas.Image
- renderStrategy:Canvas.Threaded
- property int paintCount:spyPaint.count
- property int paintedCount:spyPainted.count
- property int canvasSizeChangedCount:spyCanvasSizeChanged.count
- property int tileSizeChangedCount:spyTileSizeChanged.count
- property int renderStrategyChangedCount:spyRenderStrategyChanged.count
- property int canvasWindowChangedCount:spyCanvasWindowChanged.count
- property int renderTargetChangedCount:spyRenderTargetChanged.count
- property int imageLoadedCount:spyImageLoaded.count
- property int availableChangedCount:spyAvailableChanged.count
-
- SignalSpy {id: spyPaint;target:c;signalName: "paint"}
- SignalSpy {id: spyPainted;target:c;signalName: "painted"}
- SignalSpy {id: spyCanvasSizeChanged;target:c;signalName: "canvasSizeChanged"}
- SignalSpy {id: spyTileSizeChanged;target:c;signalName: "tileSizeChanged"}
- SignalSpy {id: spyRenderStrategyChanged;target:c;signalName: "renderStrategyChanged"}
- SignalSpy {id: spyCanvasWindowChanged;target:c;signalName: "canvasWindowChanged"}
- SignalSpy {id: spyRenderTargetChanged;target:c;signalName: "renderTargetChanged"}
- SignalSpy {id: spyImageLoaded;target:c;signalName: "imageLoaded"}
- SignalSpy {id: spyAvailableChanged;target:c;signalName: "availableChanged"}
- }
- }
-
- TestCase {
- name: "Canvas"; when: windowShown
- function test_canvasSize() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- //by default canvasSize is same with canvas' actual size
- // when canvas size changes, canvasSize should be changed as well.
- compare(c.canvasSize.width, c.width);
- compare(c.canvasSize.height, c.height);
- c.width = 20;
- compare(c.canvasSize.width, 20);
- compare(c.canvasSizeChangedCount, 1);
- c.height = 5;
- compare(c.canvasSizeChangedCount, 2);
- compare(c.canvasSize.height, 5);
-
- //change canvasSize manually, then canvasSize detaches from canvas
- //actual size.
- c.canvasSize.width = 100;
- compare(c.canvasSizeChangedCount, 3);
- compare(c.canvasSize.width, 100);
- compare(c.width, 20);
- c.canvasSize.height = 50;
- compare(c.canvasSizeChangedCount, 4);
- compare(c.canvasSize.height, 50);
- compare(c.height, 5);
-
- c.width = 10;
- compare(c.canvasSizeChangedCount, 4);
- compare(c.canvasSize.width, 100);
- compare(c.canvasSize.height, 50);
-
- c.height = 10;
- compare(c.canvasSizeChangedCount, 4);
- compare(c.canvasSize.width, 100);
- compare(c.canvasSize.height, 50);
- c.destroy();
- }
- function test_tileSize() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- compare(c.tileSize.width, c.width);
- compare(c.tileSize.height, c.height);
- c.width = 20;
- compare(c.tileSize.width, 20);
- compare(c.tileSizeChangedCount, 1);
- c.height = 5;
- compare(c.tileSizeChangedCount, 2);
- compare(c.tileSize.height, 5);
-
- c.tileSize.width = 100;
- compare(c.tileSizeChangedCount, 3);
- compare(c.tileSize.width, 100);
- compare(c.width, 20);
- c.tileSize.height = 50;
- compare(c.tileSizeChangedCount, 4);
- compare(c.tileSize.height, 50);
- compare(c.height, 5);
-
- c.width = 10;
- compare(c.tileSizeChangedCount, 4);
- compare(c.tileSize.width, 100);
- compare(c.tileSize.height, 50);
-
- c.height = 10;
- compare(c.tileSizeChangedCount, 4);
- compare(c.tileSize.width, 100);
- compare(c.tileSize.height, 50);
- c.destroy();
- }
+CanvasTestCase {
+ id:testCase
+ name: "canvas"
+ function init_data() { return testData("2d"); }
+
+ function test_canvasSize(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ verify(ctx);
+
+ tryCompare(c, "availableChangedCount", 1, 100);
+ //by default canvasSize is same with canvas' actual size
+ // when canvas size changes, canvasSize should be changed as well.
+ compare(c.canvasSize.width, c.width);
+ compare(c.canvasSize.height, c.height);
+ c.width = 20;
+ compare(c.canvasSize.width, 20);
+ compare(c.canvasSizeChangedCount, 1);
+ c.height = 5;
+ compare(c.canvasSizeChangedCount, 2);
+ compare(c.canvasSize.height, 5);
+
+ //change canvasSize manually, then canvasSize detaches from canvas
+ //actual size.
+ c.canvasSize.width = 100;
+ compare(c.canvasSizeChangedCount, 3);
+ compare(c.canvasSize.width, 100);
+ compare(c.width, 20);
+ c.canvasSize.height = 50;
+ compare(c.canvasSizeChangedCount, 4);
+ compare(c.canvasSize.height, 50);
+ compare(c.height, 5);
+
+ c.width = 10;
+ compare(c.canvasSizeChangedCount, 4);
+ compare(c.canvasSize.width, 100);
+ compare(c.canvasSize.height, 50);
+
+ c.height = 10;
+
+ compare(c.canvasSizeChangedCount, 4);
+ compare(c.canvasSize.width, 100);
+ compare(c.canvasSize.height, 50);
+ c.destroy();
+ }
+ function test_tileSize(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ verify(ctx);
+ tryCompare(c, "availableChangedCount", 1, 100);
+
+ compare(c.tileSize.width, c.width);
+ compare(c.tileSize.height, c.height);
+ c.width = 20;
+ compare(c.tileSize.width, 20);
+ compare(c.tileSizeChangedCount, 1);
+ c.height = 5;
+ compare(c.tileSizeChangedCount, 2);
+ compare(c.tileSize.height, 5);
+
+ c.tileSize.width = 100;
+ compare(c.tileSizeChangedCount, 3);
+ compare(c.tileSize.width, 100);
+ compare(c.width, 20);
+ c.tileSize.height = 50;
+ compare(c.tileSizeChangedCount, 4);
+ compare(c.tileSize.height, 50);
+ compare(c.height, 5);
+
+ c.width = 10;
+ compare(c.tileSizeChangedCount, 4);
+ compare(c.tileSize.width, 100);
+ compare(c.tileSize.height, 50);
+
+ c.height = 10;
+ compare(c.tileSizeChangedCount, 4);
+ compare(c.tileSize.width, 100);
+ compare(c.tileSize.height, 50);
+ c.destroy();
+
+ }
- function test_canvasWindow() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
- compare(c.canvasWindow.x, 0);
- compare(c.canvasWindow.y, 0);
- compare(c.canvasWindow.width, c.width);
- compare(c.canvasWindow.height, c.height);
-
- c.width = 20;
- compare(c.canvasWindow.width, 20);
- compare(c.canvasWindowChangedCount, 1);
- c.height = 5;
- compare(c.canvasWindowChangedCount, 2);
- compare(c.canvasWindow.height, 5);
-
- c.canvasWindow.x = 5;
- c.canvasWindow.y = 6;
- c.canvasWindow.width = 10;
- c.canvasWindow.height =20;
- compare(c.canvasWindowChangedCount, 6);
- compare(c.canvasWindow.width, 10);
- compare(c.canvasWindow.height, 20);
- compare(c.canvasWindow.x, 5);
- compare(c.canvasWindow.y, 6);
- c.destroy();
-
- }
- function test_renderTargetAndStrategy() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- compare(c.renderTarget, Canvas.Image);
- compare(c.renderStrategy, Canvas.Threaded);
- c.destroy();
-
- }
- function test_save() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- c.renderTarget = Canvas.Image;
- c.requestPaint();
- wait(100);
- verify(c.save("c.png"));
- c.loadImage("c.png");
- wait(200);
- compare(c.imageLoadedCount, 1);
- verify(c.isImageLoaded("c.png"));
- verify(!c.isImageLoading("c.png"));
- verify(!c.isImageError("c.png"));
- c.destroy();
-
- }
- function test_toDataURL_data() {
- return [{mimeType:"image/png"},
+ function test_canvasWindow(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ verify(ctx);
+
+ tryCompare(c, "availableChangedCount", 1, 100);
+ compare(c.canvasWindow.x, 0);
+ compare(c.canvasWindow.y, 0);
+ compare(c.canvasWindow.width, c.width);
+ compare(c.canvasWindow.height, c.height);
+
+ c.width = 20;
+ compare(c.canvasWindow.width, 20);
+ compare(c.canvasWindowChangedCount, 1);
+ c.height = 5;
+ compare(c.canvasWindowChangedCount, 2);
+ compare(c.canvasWindow.height, 5);
+
+ c.canvasWindow.x = 5;
+ c.canvasWindow.y = 6;
+ c.canvasWindow.width = 10;
+ c.canvasWindow.height =20;
+ compare(c.canvasWindowChangedCount, 6);
+ compare(c.canvasWindow.width, 10);
+ compare(c.canvasWindow.height, 20);
+ compare(c.canvasWindow.x, 5);
+ compare(c.canvasWindow.y, 6);
+ c.destroy();
+
+ }
+
+ function test_save(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+
+ tryCompare(c, "availableChangedCount", 1, 100);
+
+ c.requestPaint();
+ verify(c.save("c.png"));
+ c.loadImage("c.png");
+ wait(200);
+ verify(c.isImageLoaded("c.png"));
+ verify(!c.isImageLoading("c.png"));
+ verify(!c.isImageError("c.png"));
+ c.destroy();
+ }
+
+ function test_toDataURL(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ verify(ctx);
+
+ tryCompare(c, "availableChangedCount", 1, 100);
+
+ var imageTypes = [
+ {mimeType:"image/png"},
{mimeType:"image/bmp"},
{mimeType:"image/jpeg"},
{mimeType:"image/x-portable-pixmap"},
//{mimeType:"image/tiff"}, QTBUG-23980
{mimeType:"image/xpm"},
- ];
- }
-
- function test_toDataURL(data) {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- var ctx = c.getContext("2d");
+ ];
+ for (var i = 0; i < imageTypes.length; i++) {
ctx.fillStyle = "red";
ctx.fillRect(0, 0, c.width, c.height);
- wait(100);
var dataUrl = c.toDataURL();
- verify(dataUrl != "data:,");
+ verify(dataUrl !== "data:,");
dataUrl = c.toDataURL("image/invalid");
- verify(dataUrl == "data:,");
+ verify(dataUrl === "data:,");
- dataUrl = c.toDataURL(data.mimeType);
- verify(dataUrl != "data:,");
+ dataUrl = c.toDataURL(imageTypes[i].mimeType);
+ verify(dataUrl !== "data:,");
ctx.save();
ctx.fillStyle = "blue";
ctx.fillRect(0, 0, c.width, c.height);
ctx.restore();
- wait(100);
-
- var dataUrl2 = c.toDataURL(data.mimeType);
- verify (dataUrl2 != "data:,");
- verify (dataUrl2 != dataUrl);
- c.destroy();
-
- }
- function test_paint() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- c.renderTarget = Canvas.Image;
- c.renderStrategy = Canvas.Immediate;
- var ctx = c.getContext("2d");
- ctx.fillRect(0, 0, c.width, c.height);
- c.toDataURL();
- wait(100);
-
- compare(c.paintedCount, 2);
- compare(c.paintCount, 1);
- c.destroy();
-
- }
- function test_loadImage() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- c.loadImage("red.png");
- wait(200);
- compare(c.imageLoadedCount, 1);
- verify(c.isImageLoaded("red.png"));
- verify(!c.isImageLoading("red.png"));
- verify(!c.isImageError("red.png"));
-
- c.unloadImage("red.png");
- verify(!c.isImageLoaded("red.png"));
- verify(!c.isImageLoading("red.png"));
- verify(!c.isImageError("red.png"));
- c.destroy();
-
- }
-
- function test_getContext() {
- var c = canvas.createObject(container);
- verify(c);
- wait(100);
- verify(c.availableChangedCount, 1);
-
- var ctx = c.getContext("2d");
- verify(ctx);
- compare(ctx.canvas, c);
- ctx = c.getContext('2d');
- verify(ctx);
- compare(ctx.canvas, c);
- ctx = c.getContext('2D');
- verify(ctx);
- compare(ctx.canvas, c);
- ignoreWarning(Qt.resolvedUrl("tst_canvas.qml") + ":10:9: QML Canvas: Canvas already initialized with a different context type");
- ctx = c.getContext('invalid');
- verify(!ctx);
- c.destroy();
-
- }
- }
+
+ var dataUrl2 = c.toDataURL(imageTypes[i].mimeType);
+ verify (dataUrl2 !== "data:,");
+ verify (dataUrl2 !== dataUrl);
+ }
+ c.destroy();
+
+ }
+ function test_paint(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ tryCompare(c, "availableChangedCount", 1, 100);
+
+ ctx.fillRect(0, 0, c.width, c.height);
+ c.toDataURL();
+ tryCompare(c, "paintedCount", 2, 200);
+ tryCompare(c, "paintCount", 1, 200);
+ c.destroy();
+ }
+ function test_loadImage(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ verify(ctx);
+
+ tryCompare(c, "availableChangedCount", 1, 100);
+
+ verify(!c.isImageLoaded("red.png"));
+ c.loadImage("red.png");
+ wait(200);
+ verify(c.isImageLoaded("red.png"));
+ verify(!c.isImageLoading("red.png"));
+ verify(!c.isImageError("red.png"));
+
+ c.unloadImage("red.png");
+ verify(!c.isImageLoaded("red.png"));
+ verify(!c.isImageLoading("red.png"));
+ verify(!c.isImageError("red.png"));
+ c.destroy();
+
+ }
+
+ function test_getContext(row) {
+ var c = createCanvasObject(row);
+ verify(c);
+ var ctx = c.getContext("2d");
+ verify(ctx);
+ tryCompare(c, "availableChangedCount", 1, 100);
+
+ compare(ctx.canvas, c);
+ ctx = c.getContext('2d');
+ verify(ctx);
+ compare(ctx.canvas, c);
+ ctx = c.getContext('2D');
+ verify(ctx);
+ compare(ctx.canvas, c);
+ ignoreWarning(Qt.resolvedUrl("CanvasComponent.qml") + ":6:9: QML Canvas: Canvas already initialized with a different context type");
+ ctx = c.getContext('invalid');
+ verify(!ctx);
+ c.destroy();
+
+ }
}