@@ -98,20 +98,23 @@ Rectangle {
9898 // move mouse to center
9999 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
100100
101− // zoom in
102− for (var i=0; i<10; i++) {
103− mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
104− tryCompare(image, "scale", 1.0 + (i + 1) * 0.1);
105− compare(flickable.contentWidth, lazyImage.width * image.scale);
106− compare(flickable.contentHeight, lazyImage.height * image.scale);
107− }
108−
109− // zoom out
110− for (var i=0; i<10; i++) {
111− mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, -10);
112− tryCompare(image, "scale", 2.0 - (i + 1) * 0.1);
113− compare(flickable.contentWidth, lazyImage.width * image.scale);
114− compare(flickable.contentHeight, lazyImage.height * image.scale);
101+ // Test Zoom-in Zoom-out twice.
102+ for (var c=0; c<2; c++) {
103+ // zoom in
104+ for (var i=0; i<10; i++) {
105+ mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, 10);
106+ tryCompare(image, "scale", 1.0 + (i + 1) * 0.1);
107+ compare(flickable.contentWidth, lazyImage.width * image.scale);
108+ compare(flickable.contentHeight, lazyImage.height * image.scale);
109+ }
110+
111+ // zoom out
112+ for (var i=0; i<10; i++) {
113+ mouseWheel(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2, 0, -10);
114+ tryCompare(image, "scale", 2.0 - (i + 1) * 0.1);
115+ compare(flickable.contentWidth, lazyImage.width * image.scale);
116+ compare(flickable.contentHeight, lazyImage.height * image.scale);
117+ }
115118 }
116119 }
117120
@@ -129,7 +132,7 @@ Rectangle {
129132 answer2: true,
130133 answer3: false,
131134 answer4: 1.7740461882048026,
132− answer5: 0.5405058029189072 }
135+ answer5: 1.0 }
133136 ]
134137 }
135138
@@ -164,25 +167,26 @@ Rectangle {
164167 // move mouse to center
165168 mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
166169
167− // pinch
168− touchPinch(zoomableImage, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
169−
170− tryCompare(image, "scale", data.answer4);
171− var newScale = image.scale;
172− compare(newScale == oldScale, data.answer1, "scale factor not equal: "+ oldScale + "=?" + newScale);
173− compare(newScale > oldScale, data.answer2, "scale factor didn't changed");
174− compare(signalSpy.count == 0, data.answer3, "scale signal count error");
175− compare(newScale, data.answer4, "scale factor error");
176− compare(flickable.contentWidth, lazyImage.width * image.scale);
177− compare(flickable.contentHeight, lazyImage.height * image.scale);
178−
179− // move mouse to center
180− mouseMove(zoomableImage, zoomableImage.width / 2, zoomableImage.height / 2);
181− wait(3000); // have to delay between two pinch event.
170+ // Test Zoom-in Zoom-out twice.
171+ for (var c=0; c<2; c++) {
172+ wait(3000); // have to delay between two consequent pinch event.
173+ // pinch zoom-in
174+ touchPinch(zoomableImage, x1Start, y1Start, x1End, y1End, x2Start, y2Start, x2End, y2End);
175+
176+ tryCompare(image, "scale", data.answer4);
177+ var newScale = image.scale;
178+ compare(newScale == oldScale, data.answer1, "scale factor not equal: "+ oldScale + "=?" + newScale);
179+ compare(newScale > oldScale, data.answer2, "scale factor didn't changed");
180+ compare(signalSpy.count == 0, data.answer3, "scale signal count error");
181+ compare(newScale, data.answer4, "scale factor error");
182+ compare(flickable.contentWidth, lazyImage.width * image.scale);
183+ compare(flickable.contentHeight, lazyImage.height * image.scale);
182184
183− // pinch
184− touchPinch(zoomableImage, x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
185− tryCompare(image, "scale", data.answer5);
185+ wait(3000); // have to delay between two consequent pinch event.
186+ // pinch zoom-out
187+ touchPinch(zoomableImage, x1End, y1End, x1Start, y1Start, x2End, y2End, x2Start, y2Start);
188+ tryCompare(image, "scale", data.answer5);
189+ }
186190 }
187191 }
188192}