@@ -36,7 +36,7 @@ test.describe('Viewport devicePixelRatio 1', () => {
3636 // Check that the WMS Max Size has been well overwrite
3737 expect ( await page . evaluate ( ( ) => lizMap . mainLizmap . initialConfig . options . wmsMaxHeight ) ) . toBe ( 950 ) ;
3838 expect ( await page . evaluate ( ( ) => window . devicePixelRatio ) ) . toBe ( 1 ) ;
39- expect ( await page . evaluate ( ( ) => lizMap . mainLizmap . map . getSize ( ) ) ) . toStrictEqual ( [ 870 , 575 ] ) ;
39+ expect ( await page . evaluate ( ( ) => lizMap . mainLizmap . map . getSize ( ) ) ) . toStrictEqual ( [ 870 , 575 ] ) ;
4040 await page . unroute ( '**/service/getProjectConfig*' )
4141
4242 // Catch GetMaps request;
@@ -46,7 +46,7 @@ test.describe('Viewport devicePixelRatio 1', () => {
4646 if ( request . url ( ) . includes ( 'GetMap' ) ) {
4747 GetMaps . push ( request . url ( ) ) ;
4848 }
49- } , { times : 4 } ) ;
49+ } , { times : 4 } ) ;
5050
5151 // Activate world layer
5252 await page . getByLabel ( 'world' ) . check ( ) ;
@@ -56,7 +56,7 @@ test.describe('Viewport devicePixelRatio 1', () => {
5656
5757 // Check GetMap requests
5858 expect ( GetMaps ) . toHaveLength ( 4 ) ;
59- for ( const GetMap of GetMaps ) {
59+ for ( const GetMap of GetMaps ) {
6060 expect ( GetMap ) . toContain ( '&WIDTH=790&' )
6161 expect ( GetMap ) . toContain ( '&HEIGHT=575&' )
6262 expect ( GetMap ) . toContain ( '&DPI=96&' )
@@ -105,7 +105,7 @@ test.describe('Viewport devicePixelRatio 2', () => {
105105 // Check that the WMS Max Size has been well overwrite
106106 expect ( await page . evaluate ( ( ) => lizMap . mainLizmap . initialConfig . options . wmsMaxHeight ) ) . toBe ( 1900 ) ;
107107 expect ( await page . evaluate ( ( ) => window . devicePixelRatio ) ) . toBe ( 2 ) ;
108- expect ( await page . evaluate ( ( ) => lizMap . mainLizmap . map . getSize ( ) ) ) . toStrictEqual ( [ 870 , 620 ] ) ;
108+ expect ( await page . evaluate ( ( ) => lizMap . mainLizmap . map . getSize ( ) ) ) . toStrictEqual ( [ 870 , 620 ] ) ;
109109 await page . unroute ( '**/service/getProjectConfig*' )
110110
111111 // Catch GetMaps request;
@@ -115,7 +115,7 @@ test.describe('Viewport devicePixelRatio 2', () => {
115115 if ( request . url ( ) . includes ( 'GetMap' ) ) {
116116 GetMaps . push ( request . url ( ) ) ;
117117 }
118- } , { times : 4 } ) ;
118+ } , { times : 4 } ) ;
119119
120120 // Activate world layer
121121 await page . getByLabel ( 'world' ) . check ( ) ;
@@ -125,11 +125,63 @@ test.describe('Viewport devicePixelRatio 2', () => {
125125
126126 // Check GetMap requests
127127 expect ( GetMaps ) . toHaveLength ( 4 ) ;
128- for ( const GetMap of GetMaps ) {
128+ for ( const GetMap of GetMaps ) {
129129 expect ( GetMap ) . toContain ( '&WIDTH=870&' )
130130 expect ( GetMap ) . toContain ( '&HEIGHT=620&' )
131131 expect ( GetMap ) . toContain ( '&DPI=180&' )
132132 }
133133 await page . unroute ( '**/service*' )
134134 } )
135135} )
136+
137+ test . describe ( 'Viewport mobile' , ( ) => {
138+ test . use ( {
139+ hasTouch : true ,
140+ isMobile : true ,
141+ } ) ;
142+ test ( 'Display docks' , async ( { page } ) => {
143+ // atlas project
144+ const url = '/index.php/view/map/?repository=testsrepository&project=atlas'
145+ // Go to the map
146+ await page . goto ( url , { waitUntil : 'networkidle' } ) ;
147+
148+ // Check menu and menu toggle button
149+ await expect ( await page . locator ( '#mapmenu' ) ) . not . toBeInViewport ( ) ;
150+ await expect ( await page . locator ( '#menuToggle' ) ) . toBeVisible ( ) ;
151+ await expect ( await page . locator ( '#menuToggle' ) ) . not . toHaveClass ( 'opened' ) ;
152+ await page . locator ( '#menuToggle' ) . click ( ) ;
153+
154+ // Open menu
155+ await expect ( await page . locator ( '#menuToggle' ) ) . toHaveClass ( 'opened' ) ;
156+ await expect ( await page . locator ( '#mapmenu' ) ) . toBeInViewport ( ) ;
157+ await expect ( await page . getByRole ( 'link' , { name : 'atlas' } ) ) . toBeVisible ( ) ;
158+
159+ // Open atlas
160+ await page . getByRole ( 'link' , { name : 'atlas' , exact : true } ) . click ( ) ;
161+ await expect ( await page . locator ( '#menuToggle' ) ) . not . toHaveClass ( 'opened' ) ;
162+ await expect ( await page . locator ( '#mapmenu' ) ) . not . toBeInViewport ( ) ;
163+ await expect ( await page . locator ( '#right-dock' ) ) . toBeVisible ( ) ;
164+ await expect ( await page . locator ( '#right-dock' ) ) . toBeInViewport ( ) ;
165+
166+ // Choose a feature and check getFeatureInfo
167+ let getFeatureInfoRequestPromise = page . waitForRequest ( request => request . method ( ) === 'POST' && request ?. postData ( ) . includes ( 'GetFeatureInfo' ) ) ;
168+ await page . locator ( '#liz-atlas-select' ) . selectOption ( '2' ) ;
169+ let getFeatureInfoRequest = await getFeatureInfoRequestPromise ;
170+ let getFeatureInfoResponse = await getFeatureInfoRequest . response ( ) ;
171+ await expect ( await getFeatureInfoResponse . headerValue ( 'content-type' ) ) . toContain ( 'text/html' ) ;
172+ await expect ( await page . locator ( '#liz-atlas-item-detail .lizmapPopupContent' ) ) . toBeInViewport ( ) ;
173+ await expect ( await page . locator ( '#liz-atlas-item-detail .lizmapPopupContent' ) ) . toContainText ( 'MOSSON' ) ;
174+ // Close atlas
175+ await page . locator ( '#right-dock-close' ) . click ( ) ;
176+ await expect ( await page . locator ( '#right-dock' ) ) . not . toBeInViewport ( ) ;
177+ await expect ( await page . locator ( '#right-dock' ) ) . not . toBeVisible ( ) ;
178+
179+ // Test permalink (mini-dock)
180+ await expect ( await page . locator ( '#permalink' ) ) . not . toBeVisible ( ) ;
181+ await page . locator ( '#menuToggle' ) . click ( ) ;
182+ await page . getByRole ( 'link' , { name : 'Permalink' } ) . click ( ) ;
183+ await expect ( await page . locator ( '#permalink' ) ) . toBeVisible ( ) ;
184+ await expect ( await page . locator ( '#permalink' ) ) . toBeInViewport ( ) ;
185+ await expect ( await page . locator ( '#tab-share-permalink' ) ) . toBeVisible ( ) ;
186+ } )
187+ } )
0 commit comments