@@ -4,12 +4,20 @@ import * as fs from 'fs/promises'
4
4
import { existsSync } from 'node:fs' ;
5
5
import { test , expect } from '@playwright/test' ;
6
6
import { PrintPage } from "./pages/printpage" ;
7
- import { gotoMap , expectParametersToContain , getAuthStorageStatePath , expectToHaveLengthCompare , playwrightTestFile } from './globals' ;
7
+ import {
8
+ gotoMap ,
9
+ expectParametersToContain ,
10
+ getAuthStorageStatePath ,
11
+ expectToHaveLengthCompare ,
12
+ playwrightTestFile ,
13
+ qgisVersionFromProjectApi ,
14
+ } from './globals' ;
8
15
9
16
// To update OSM and GeoPF tiles in the mock directory
10
17
// IMPORTANT, this must not be set to `true` while committing, on GitHub. Set to `false`.
11
18
const UPDATE_MOCK_FILES = false ;
12
19
20
+
13
21
test . describe ( 'Print' , ( ) => {
14
22
15
23
test . beforeEach ( async ( { page } ) => {
@@ -51,7 +59,7 @@ test.describe('Print', () => {
51
59
expect ( await page . locator ( '.btn-print-dpis' ) . inputValue ( ) ) . toBe ( '200' ) ;
52
60
} ) ;
53
61
54
- test ( 'Print requests' , async ( { page } ) => {
62
+ test ( 'Print requests' , async ( { request , page } ) => {
55
63
// Required GetPrint parameters
56
64
const expectedParameters = {
57
65
'SERVICE' : 'WMS' ,
@@ -72,10 +80,6 @@ test.describe('Print', () => {
72
80
73
81
// Launch print
74
82
await page . locator ( '#print-launch' ) . click ( ) ;
75
- // check message
76
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
77
- // Close message
78
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
79
83
80
84
// check request
81
85
let getPrintRequest = await getPrintPromise ;
@@ -90,13 +94,14 @@ test.describe('Print', () => {
90
94
// Disabled because of the migration when project is saved with QGIS >= 3.32
91
95
// 'multiline_label': 'Multiline label',
92
96
} )
97
+ let expectedLength = 15 ;
98
+ if ( await qgisVersionFromProjectApi ( request , 'print' ) > 33200 ) {
99
+ expectedLength = 14 ;
100
+ }
93
101
let name = "Print requests" ;
94
102
let getPrintParams = await expectParametersToContain (
95
103
name , getPrintRequest . postData ( ) ?? '' , expectedParameters1 ) ;
96
- await expectToHaveLengthCompare ( name , Array . from ( getPrintParams . keys ( ) ) , 15 , Object . keys ( expectedParameters1 ) ) ;
97
-
98
- // Close message
99
- await page . locator ( '.btn-close' ) . click ( ) ;
104
+ await expectToHaveLengthCompare ( name , Array . from ( getPrintParams . keys ( ) ) , expectedLength , Object . keys ( expectedParameters1 ) ) ;
100
105
101
106
// Test `print_map` template
102
107
await page . locator ( '#print-template' ) . selectOption ( '1' ) ;
@@ -137,10 +142,6 @@ test.describe('Print', () => {
137
142
138
143
// Launch print
139
144
await page . locator ( '#print-launch' ) . click ( ) ;
140
- // check message
141
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
142
- // Close message
143
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
144
145
145
146
// check request
146
147
getPrintRequest = await getPrintPromise ;
@@ -191,10 +192,6 @@ test.describe('Print', () => {
191
192
192
193
// Launch print
193
194
await page . locator ( '#print-launch' ) . click ( ) ;
194
- // check message
195
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
196
- // Close message
197
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
198
195
199
196
// check request
200
197
getPrintRequest = await getPrintPromise ;
@@ -235,6 +232,10 @@ test.describe('Print', () => {
235
232
// 'multiline_label': 'Multiline label',
236
233
} )
237
234
/* eslint-enable no-useless-escape, @stylistic/js/max-len */
235
+ expectedLength = 17
236
+ if ( await qgisVersionFromProjectApi ( request , 'print' ) > 33200 ) {
237
+ expectedLength = 16 ;
238
+ }
238
239
name = 'Print requests 4' ;
239
240
getPrintParams = await expectParametersToContain (
240
241
name ,
@@ -243,12 +244,12 @@ test.describe('Print', () => {
243
244
await expectToHaveLengthCompare (
244
245
name ,
245
246
Array . from ( getPrintParams . keys ( ) ) ,
246
- 17 ,
247
+ expectedLength ,
247
248
Object . keys ( expectedParameters4 )
248
249
) ;
249
250
} ) ;
250
251
251
- test ( 'Print requests with selection' , async ( { page } ) => {
252
+ test ( 'Print requests with selection' , async ( { request , page } ) => {
252
253
// Select a feature
253
254
await page . locator ( '#button-attributeLayers' ) . click ( ) ;
254
255
await page . getByRole ( 'button' , { name : 'Detail' } ) . click ( ) ;
@@ -264,10 +265,6 @@ test.describe('Print', () => {
264
265
265
266
// Launch print
266
267
await page . locator ( '#print-launch' ) . click ( ) ;
267
- // check message
268
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
269
- // Close message
270
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
271
268
272
269
// check request
273
270
const getPrintRequest = await getPrintPromise ;
@@ -290,11 +287,15 @@ test.describe('Print', () => {
290
287
}
291
288
const name = "Print requests with selection" ;
292
289
const getPrintParams = await expectParametersToContain ( name , getPrintRequest . postData ( ) ?? '' , expectedParameters ) ;
293
- await expectToHaveLengthCompare ( name , Array . from ( getPrintParams . keys ( ) ) , 16 , Object . keys ( expectedParameters ) ) ;
290
+ let expectedLength = 16 ;
291
+ if ( await qgisVersionFromProjectApi ( request , 'print' ) > 33200 ) {
292
+ expectedLength = 15 ;
293
+ }
294
+ await expectToHaveLengthCompare ( name , Array . from ( getPrintParams . keys ( ) ) , expectedLength , Object . keys ( expectedParameters ) ) ;
294
295
295
296
} ) ;
296
297
297
- test ( 'Print requests with filter' , async ( { page } ) => {
298
+ test ( 'Print requests with filter' , async ( { request , page } ) => {
298
299
// Select a feature
299
300
await page . locator ( '#button-attributeLayers' ) . click ( ) ;
300
301
await page . getByRole ( 'button' , { name : 'Detail' } ) . click ( ) ;
@@ -315,10 +316,6 @@ test.describe('Print', () => {
315
316
316
317
// Launch print
317
318
await page . locator ( '#print-launch' ) . click ( ) ;
318
- // check message
319
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
320
- // Close message
321
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
322
319
323
320
// check request
324
321
const getPrintRequest = await getPrintPromise ;
@@ -339,9 +336,13 @@ test.describe('Print', () => {
339
336
'simple_label' : 'simple label' ,
340
337
'FILTERTOKEN' : / [ a - z \d ] + / ,
341
338
}
339
+ let expectedLength = 16 ;
340
+ if ( await qgisVersionFromProjectApi ( request , 'print' ) > 33200 ) {
341
+ expectedLength = 15 ;
342
+ }
342
343
const name = 'Print requests with filter' ;
343
344
const getPrintParams = await expectParametersToContain ( name , getPrintRequest . postData ( ) ?? '' , expectedParameters ) ;
344
- await expectToHaveLengthCompare ( name , Array . from ( getPrintParams . keys ( ) ) , 16 , Object . keys ( expectedParameters ) ) ;
345
+ await expectToHaveLengthCompare ( name , Array . from ( getPrintParams . keys ( ) ) , expectedLength , Object . keys ( expectedParameters ) ) ;
345
346
} ) ;
346
347
} ) ;
347
348
@@ -691,7 +692,7 @@ test.describe('Print 3857', () => {
691
692
expect ( await page . locator ( '.btn-print-dpis' ) . inputValue ( ) ) . toBe ( '200' ) ;
692
693
} ) ;
693
694
694
- test ( 'Print requests' , async ( { page } ) => {
695
+ test ( 'Print requests' , async ( { request , page } ) => {
695
696
// Required GetPrint parameters
696
697
const expectedParameters = {
697
698
'SERVICE' : 'WMS' ,
@@ -708,10 +709,6 @@ test.describe('Print 3857', () => {
708
709
709
710
// Launch print
710
711
await page . locator ( '#print-launch' ) . click ( ) ;
711
- // check message
712
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
713
- // Close message
714
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
715
712
716
713
// check request
717
714
let getPrintRequest = await getPrintPromise ;
@@ -732,10 +729,14 @@ test.describe('Print 3857', () => {
732
729
getPrintRequest . postData ( ) ?? '' ,
733
730
expectedParameters1
734
731
) ;
732
+ let expectedLength = 15 ;
733
+ if ( await qgisVersionFromProjectApi ( request , 'print' ) > 33200 ) {
734
+ expectedLength = 14 ;
735
+ }
735
736
await expectToHaveLengthCompare (
736
737
name ,
737
738
Array . from ( getPrintParams . keys ( ) ) ,
738
- 15 ,
739
+ expectedLength ,
739
740
Object . keys ( expectedParameters1 )
740
741
) ;
741
742
@@ -749,10 +750,6 @@ test.describe('Print 3857', () => {
749
750
750
751
// Launch print
751
752
await page . locator ( '#print-launch' ) . click ( ) ;
752
- // check message
753
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
754
- // Close message
755
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
756
753
757
754
// check request
758
755
getPrintRequest = await getPrintPromise ;
@@ -776,9 +773,6 @@ test.describe('Print 3857', () => {
776
773
Object . keys ( expectedParameters2 )
777
774
) ;
778
775
779
- // Close message
780
- await page . locator ( '.btn-close' ) . click ( ) ;
781
-
782
776
// Redlining with circle
783
777
await page . locator ( '#button-draw' ) . click ( ) ;
784
778
await page . getByRole ( 'button' , { name : 'Toggle Dropdown' } ) . click ( ) ;
@@ -807,10 +801,6 @@ test.describe('Print 3857', () => {
807
801
808
802
// Launch print
809
803
await page . locator ( '#print-launch' ) . click ( ) ;
810
- // check message
811
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
812
- // Close message
813
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
814
804
815
805
// check request
816
806
getPrintRequest = await getPrintPromise ;
@@ -856,10 +846,14 @@ test.describe('Print 3857', () => {
856
846
getPrintRequest . postData ( ) ?? ''
857
847
, expectedParameters3
858
848
) ;
849
+ expectedLength = 17 ;
850
+ if ( await qgisVersionFromProjectApi ( request , 'print' ) > 33200 ) {
851
+ expectedLength = 16 ;
852
+ }
859
853
await expectToHaveLengthCompare (
860
854
name ,
861
855
Array . from ( getPrintParams . keys ( ) ) ,
862
- 17 ,
856
+ expectedLength ,
863
857
Object . keys ( expectedParameters3 )
864
858
) ;
865
859
} ) ;
@@ -930,10 +924,6 @@ test.describe('Print base layers', () => {
930
924
931
925
// Launch print
932
926
await page . locator ( '#print-launch' ) . click ( ) ;
933
- // check message
934
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
935
- // Close message
936
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
937
927
938
928
// check request
939
929
let getPrintRequest = await getPrintRequestPromise ;
@@ -974,10 +964,6 @@ test.describe('Print base layers', () => {
974
964
975
965
// Launch print
976
966
await page . locator ( '#print-launch' ) . click ( ) ;
977
- // check message
978
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
979
- // Close message
980
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
981
967
982
968
// check request
983
969
getPrintRequest = await getPrintRequestPromise ;
@@ -1054,10 +1040,6 @@ test.describe('Print base layers', () => {
1054
1040
1055
1041
// Launch print
1056
1042
await page . locator ( '#print-launch' ) . click ( ) ;
1057
- // check message
1058
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
1059
- // Close message
1060
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
1061
1043
1062
1044
// check request
1063
1045
getPrintRequest = await getPrintRequestPromise ;
@@ -1097,10 +1079,6 @@ test.describe('Print base layers', () => {
1097
1079
1098
1080
// Launch print
1099
1081
await page . locator ( '#print-launch' ) . click ( ) ;
1100
- // check message
1101
- await expect ( page . locator ( 'div.alert' ) ) . toHaveCount ( 1 )
1102
- // Close message
1103
- await page . locator ( 'div.alert button.btn-close' ) . click ( ) ;
1104
1082
1105
1083
// check request
1106
1084
getPrintRequest = await getPrintRequestPromise ;
0 commit comments