Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 1cef0e3

Browse files
nyalldawsongithub-actions[bot]
authored andcommittedMar 30, 2023
Make test handle differences in platform DPI
1 parent 77c6d93 commit 1cef0e3

File tree

1 file changed

+43
-37
lines changed

1 file changed

+43
-37
lines changed
 

‎tests/src/app/testqgsmapcanvasdockwidget.cpp

Lines changed: 43 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,8 @@ void TestQgsMapCanvasDockWidget::testNoSync()
8181
mainCanvas.setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
8282
mainCanvas.show();
8383

84-
QGSCOMPARENEAR( mainCanvas.scale(), 44823779, 10000 );
84+
double testScalingFactor = 44823779 / mainCanvas.scale();
85+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 44823779, 10000 );
8586

8687
QgsMapCanvasDockWidget dock( QStringLiteral( "dock" ) );
8788
dock.setMainCanvas( &mainCanvas );
@@ -91,7 +92,7 @@ void TestQgsMapCanvasDockWidget::testNoSync()
9192
dock.mapCanvas()->setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
9293
dock.show();
9394

94-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 44823779, 1000000 );
95+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 44823779, 1000000 );
9596

9697
dock.setViewCenterSynchronized( false );
9798
dock.setViewScaleSynchronized( false );
@@ -102,12 +103,13 @@ void TestQgsMapCanvasDockWidget::testNoSync()
102103
mainCanvas.zoomScale( 89647558 );
103104

104105
// dock should not inherit scale
105-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 44823779, 1000000 );
106+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 44823779, 1000000 );
106107

107108
// change scale in dock and check it is not synced to main canvas
108109
dock.mapCanvas()->zoomScale( 1500000 );
109-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1500000, 1000 );
110-
QGSCOMPARENEAR( mainCanvas.scale(), 89647558, 1000 );
110+
testScalingFactor = 1500000 / dock.mapCanvas()->scale();
111+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1500000, 1000 );
112+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 89647558, 1000 );
111113

112114
// extent should NOT be synced
113115
dock.mapCanvas()->setCenter( QgsPointXY( -22329833, 3515327 ) );
@@ -132,7 +134,8 @@ void TestQgsMapCanvasDockWidget::testScaleSync()
132134
mainCanvas.setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
133135
mainCanvas.show();
134136

135-
QGSCOMPARENEAR( mainCanvas.scale(), 44823779, 10000 );
137+
double testScalingFactor = 44823779 / mainCanvas.scale();
138+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 44823779, 10000 );
136139

137140
QgsMapCanvasDockWidget dock( QStringLiteral( "dock" ) );
138141
dock.setMainCanvas( &mainCanvas );
@@ -142,7 +145,7 @@ void TestQgsMapCanvasDockWidget::testScaleSync()
142145
dock.mapCanvas()->setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
143146
dock.show();
144147

145-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 44823779, 1000000 );
148+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 44823779, 1000000 );
146149

147150
dock.setViewCenterSynchronized( false );
148151
dock.setViewScaleSynchronized( true );
@@ -152,43 +155,44 @@ void TestQgsMapCanvasDockWidget::testScaleSync()
152155
resizeTimerSpy.wait();
153156

154157
mainCanvas.zoomScale( 89647558 );
158+
testScalingFactor = 89647558 / mainCanvas.scale();
155159

156160
// dock should inherit scale
157-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 89647558, 1000000 );
161+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 89647558, 1000000 );
158162

159163
// ensure scale is multiplied by factor
160164
dock.setScaleFactor( 2.5 );
161165
mainCanvas.zoomScale( 44823779 );
162166

163-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 17929511, 1000000 );
167+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 17929511, 1000000 );
164168

165169
// change scale in dock and check it is respected by main canvas
166170
dock.setScaleFactor( 1.0 );
167171
dock.mapCanvas()->zoomScale( 1500000 );
168-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1500000, 1000 );
169-
QGSCOMPARENEAR( mainCanvas.scale(), 1500000, 1000 );
172+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1500000, 1000 );
173+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 1500000, 1000 );
170174

171175
dock.setScaleFactor( 2.0 );
172176
dock.mapCanvas()->zoomScale( 1000000 );
173-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1000000, 1000 );
174-
QGSCOMPARENEAR( mainCanvas.scale(), 2000000, 1000 );
177+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1000000, 1000 );
178+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 2000000, 1000 );
175179

176180
// extent should NOT be synced, and scale should not change when extent changes
177181
dock.mapCanvas()->setCenter( QgsPointXY( -22329833, 3515327 ) );
178182
QGSCOMPARENEAR( dock.mapCanvas()->center().x(), -22329833, 1000 );
179183
QGSCOMPARENEAR( dock.mapCanvas()->center().y(), 3515327, 1000 );
180184
QGSCOMPARENEAR( mainCanvas.center().x(), -11281815, 1000 );
181185
QGSCOMPARENEAR( mainCanvas.center().y(), 4287781, 1000 );
182-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1000000, 1000 );
186+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1000000, 1000 );
183187
QGSCOMPARENEAR( mainCanvas.scale(), 2000000, 1000 );
184188

185189
mainCanvas.setCenter( QgsPointXY( -4467497, -227904 ) );
186190
QGSCOMPARENEAR( dock.mapCanvas()->center().x(), -22329833, 1000 );
187191
QGSCOMPARENEAR( dock.mapCanvas()->center().y(), 3515327, 1000 );
188192
QGSCOMPARENEAR( mainCanvas.center().x(), -4467497, 1000 );
189193
QGSCOMPARENEAR( mainCanvas.center().y(), -227904, 1000 );
190-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1000000, 1000 );
191-
QGSCOMPARENEAR( mainCanvas.scale(), 2000000, 1000 );
194+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1000000, 1000 );
195+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 2000000, 1000 );
192196

193197
dock.resize( 1200, 1200 );
194198
resizeTimerSpy.wait();
@@ -197,8 +201,8 @@ void TestQgsMapCanvasDockWidget::testScaleSync()
197201
QGSCOMPARENEAR( dock.mapCanvas()->center().y(), 3515327, 1000 );
198202
QGSCOMPARENEAR( mainCanvas.center().x(), -4467497, 1000 );
199203
QGSCOMPARENEAR( mainCanvas.center().y(), -227904, 1000 );
200-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 500000, 10000 );
201-
QGSCOMPARENEAR( mainCanvas.scale(), 1000000, 100000 );
204+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 500000, 10000 );
205+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 1000000, 100000 );
202206
}
203207

204208
void TestQgsMapCanvasDockWidget::testCenterSync()
@@ -211,7 +215,8 @@ void TestQgsMapCanvasDockWidget::testCenterSync()
211215
mainCanvas.setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
212216
mainCanvas.show();
213217

214-
QGSCOMPARENEAR( mainCanvas.scale(), 44823779, 10000 );
218+
double testScalingFactor = 44823779 / mainCanvas.scale();
219+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 44823779, 10000 );
215220

216221
QgsMapCanvasDockWidget dock( QStringLiteral( "dock" ) );
217222
dock.setMainCanvas( &mainCanvas );
@@ -221,7 +226,7 @@ void TestQgsMapCanvasDockWidget::testCenterSync()
221226
dock.mapCanvas()->setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
222227
dock.show();
223228

224-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 44823779, 1000000 );
229+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 44823779, 1000000 );
225230

226231
dock.setViewCenterSynchronized( true );
227232
dock.setViewScaleSynchronized( false );
@@ -232,12 +237,13 @@ void TestQgsMapCanvasDockWidget::testCenterSync()
232237
mainCanvas.zoomScale( 89647558 );
233238

234239
// dock should not inherit scale
235-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 44823779, 1000000 );
240+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 44823779, 1000000 );
236241

237242
// change scale in dock and check it is not synced to main canvas
238243
dock.mapCanvas()->zoomScale( 1500000 );
239-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1500000, 1000 );
240-
QGSCOMPARENEAR( mainCanvas.scale(), 89647558, 1000 );
244+
testScalingFactor = 1500000 / dock.mapCanvas()->scale();
245+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1500000, 1000 );
246+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 89647558, 1000 );
241247

242248
// center SHOULD be synced
243249
dock.mapCanvas()->setCenter( QgsPointXY( -22329833, 3515327 ) );
@@ -259,8 +265,8 @@ void TestQgsMapCanvasDockWidget::testCenterSync()
259265
QGSCOMPARENEAR( dock.mapCanvas()->center().y(), -227904, 1000 );
260266
QGSCOMPARENEAR( mainCanvas.center().x(), -4467497, 1000 );
261267
QGSCOMPARENEAR( mainCanvas.center().y(), -227904, 1000 );
262-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 744966, 10000 );
263-
QGSCOMPARENEAR( mainCanvas.scale(), 89647558, 1000 );
268+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 744966, 10000 );
269+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 89647558, 1000 );
264270
}
265271

266272
void TestQgsMapCanvasDockWidget::testScaleAndCenterSync()
@@ -273,7 +279,8 @@ void TestQgsMapCanvasDockWidget::testScaleAndCenterSync()
273279
mainCanvas.setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
274280
mainCanvas.show();
275281

276-
QGSCOMPARENEAR( mainCanvas.scale(), 44823779, 10000 );
282+
double testScalingFactor = 44823779 / mainCanvas.scale();
283+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 44823779, 10000 );
277284

278285
QgsMapCanvasDockWidget dock( QStringLiteral( "dock" ) );
279286
dock.setMainCanvas( &mainCanvas );
@@ -283,7 +290,7 @@ void TestQgsMapCanvasDockWidget::testScaleAndCenterSync()
283290
dock.mapCanvas()->setExtent( QgsRectangle( -14839703, 2282029, -7723928, 6293534 ) );
284291
dock.show();
285292

286-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 44823779, 1000000 );
293+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 44823779, 1000000 );
287294

288295
dock.setViewCenterSynchronized( true );
289296
dock.setViewScaleSynchronized( true );
@@ -292,26 +299,27 @@ void TestQgsMapCanvasDockWidget::testScaleAndCenterSync()
292299
resizeTimerSpy.wait();
293300

294301
mainCanvas.zoomScale( 89647558 );
302+
testScalingFactor = 89647558 / mainCanvas.scale();
295303

296304
// dock should inherit scale
297-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 89647558, 1000000 );
305+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 89647558, 1000000 );
298306

299307
// ensure scale is multiplied by factor
300308
dock.setScaleFactor( 2.5 );
301309
mainCanvas.zoomScale( 44823779 );
302310

303-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 17929511, 1000000 );
311+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 17929511, 1000000 );
304312

305313
// change scale in dock and check it is respected by main canvas
306314
dock.setScaleFactor( 1.0 );
307315
dock.mapCanvas()->zoomScale( 1500000 );
308-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1500000, 1000 );
309-
QGSCOMPARENEAR( mainCanvas.scale(), 1500000, 1000 );
316+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1500000, 1000 );
317+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 1500000, 1000 );
310318

311319
dock.setScaleFactor( 2.0 );
312320
dock.mapCanvas()->zoomScale( 1000000 );
313-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 1000000, 1000 );
314-
QGSCOMPARENEAR( mainCanvas.scale(), 2000000, 1000 );
321+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 1000000, 1000 );
322+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 2000000, 1000 );
315323

316324
// center SHOULD be synced
317325
dock.mapCanvas()->setCenter( QgsPointXY( -22329833, 3515327 ) );
@@ -333,11 +341,9 @@ void TestQgsMapCanvasDockWidget::testScaleAndCenterSync()
333341
QGSCOMPARENEAR( dock.mapCanvas()->center().y(), -227904, 1000 );
334342
QGSCOMPARENEAR( mainCanvas.center().x(), -4467497, 1000 );
335343
QGSCOMPARENEAR( mainCanvas.center().y(), -227904, 1000 );
336-
QGSCOMPARENEAR( dock.mapCanvas()->scale(), 500000, 10000 );
337-
QGSCOMPARENEAR( mainCanvas.scale(), 1000000, 100000 );
344+
QGSCOMPARENEAR( dock.mapCanvas()->scale() * testScalingFactor, 500000, 10000 );
345+
QGSCOMPARENEAR( mainCanvas.scale() * testScalingFactor, 1000000, 100000 );
338346
}
339347

340-
341-
342348
QGSTEST_MAIN( TestQgsMapCanvasDockWidget )
343349
#include "testqgsmapcanvasdockwidget.moc"

0 commit comments

Comments
 (0)
Please sign in to comment.