@@ -53,6 +53,7 @@ class TestQgsMapSettings: public QObject
53
53
void mapUnitsPerPixel ();
54
54
void testDevicePixelRatio ();
55
55
void visiblePolygon ();
56
+ void visiblePolygonWithBuffer ();
56
57
void testIsLayerVisible ();
57
58
void testMapLayerListUtils ();
58
59
void testXmlReadWrite ();
@@ -254,6 +255,31 @@ void TestQgsMapSettings::visiblePolygon()
254
255
QString ( " 32.32 28.03,103.03 -42.67,67.67 -78.03,-3.03 -7.32" ) );
255
256
}
256
257
258
+ void TestQgsMapSettings::visiblePolygonWithBuffer ()
259
+ {
260
+ QgsMapSettings ms;
261
+
262
+ ms.setExtent ( QgsRectangle ( 0 , 0 , 100 , 100 ) );
263
+ ms.setOutputSize ( QSize ( 100 , 50 ) );
264
+ QCOMPARE ( toString ( ms.visiblePolygonWithBuffer () ),
265
+ QString ( " -50 100,150 100,150 0,-50 0" ) );
266
+
267
+ ms.setExtentBuffer ( 10 );
268
+ QCOMPARE ( toString ( ms.visiblePolygonWithBuffer () ),
269
+ QString ( " -70 120,170 120,170 -20,-70 -20" ) );
270
+
271
+ ms.setExtent ( QgsRectangle ( 0 , -50 , 100 , 0 ) );
272
+ ms.setOutputSize ( QSize ( 100 , 50 ) );
273
+ ms.setRotation ( 90 );
274
+ ms.setExtentBuffer ( 0 );
275
+ QCOMPARE ( toString ( ms.visiblePolygonWithBuffer () ),
276
+ QString ( " 25 -75,25 25,75 25,75 -75" ) );
277
+
278
+ ms.setExtentBuffer ( 10 );
279
+ QCOMPARE ( toString ( ms.visiblePolygonWithBuffer () ),
280
+ QString ( " 15 -85,15 35,85 35,85 -85" ) );
281
+ }
282
+
257
283
void TestQgsMapSettings::testIsLayerVisible ()
258
284
{
259
285
QgsVectorLayer *vlA = new QgsVectorLayer ( QStringLiteral ( " Point" ), QStringLiteral ( " a" ), QStringLiteral ( " memory" ) );
0 commit comments