@@ -29,6 +29,23 @@ async function waitForMenu(page, buttonSelector, visible = true) {
2929 ) ;
3030}
3131
32+ async function showViewsManager ( page ) {
33+ const hasAnimations = await page . evaluate (
34+ ( ) => ! window . matchMedia ( "(prefers-reduced-motion: reduce)" ) . matches
35+ ) ;
36+ await page . click ( "#viewsManagerToggleButton" ) ;
37+ if ( hasAnimations ) {
38+ await page . waitForSelector ( "#outerContainer.viewsManagerMoving" , {
39+ visible : true ,
40+ } ) ;
41+ }
42+ await page . waitForSelector ( "#viewsManager" , { visible : true } ) ;
43+ await page . waitForSelector (
44+ "#outerContainer:not(.viewsManagerMoving).viewsManagerOpen" ,
45+ { visible : true }
46+ ) ;
47+ }
48+
3249describe ( "PDF Thumbnail View" , ( ) => {
3350 describe ( "Works without errors" , ( ) => {
3451 let pages ;
@@ -44,7 +61,7 @@ describe("PDF Thumbnail View", () => {
4461 it ( "should render thumbnails without errors" , async ( ) => {
4562 await Promise . all (
4663 pages . map ( async ( [ browserName , page ] ) => {
47- await page . click ( "#viewsManagerToggleButton" ) ;
64+ await showViewsManager ( page ) ;
4865
4966 const thumbSelector =
5067 "#thumbnailsView .thumbnailImageContainer > img" ;
@@ -62,7 +79,7 @@ describe("PDF Thumbnail View", () => {
6279 it ( "should have accessible label on resizer" , async ( ) => {
6380 await Promise . all (
6481 pages . map ( async ( [ browserName , page ] ) => {
65- await page . click ( "#viewsManagerToggleButton" ) ;
82+ await showViewsManager ( page ) ;
6683
6784 const ariaLabel = await page . $eval ( "#viewsManagerResizer" , el =>
6885 el . getAttribute ( "aria-label" )
@@ -104,8 +121,7 @@ describe("PDF Thumbnail View", () => {
104121 it ( "should scroll the view" , async ( ) => {
105122 await Promise . all (
106123 pages . map ( async ( [ browserName , page ] ) => {
107- await page . click ( "#viewsManagerToggleButton" ) ;
108-
124+ await showViewsManager ( page ) ;
109125 await waitForThumbnailVisible ( page , 1 ) ;
110126
111127 for ( const pageNum of [ 14 , 1 , 13 , 2 ] ) {
@@ -141,8 +157,7 @@ describe("PDF Thumbnail View", () => {
141157 it ( "should navigate with the keyboard" , async ( ) => {
142158 await Promise . all (
143159 pages . map ( async ( [ browserName , page ] ) => {
144- await page . click ( "#viewsManagerToggleButton" ) ;
145-
160+ await showViewsManager ( page ) ;
146161 await waitForThumbnailVisible ( page , 1 ) ;
147162 await waitForThumbnailVisible ( page , 2 ) ;
148163 await waitForThumbnailVisible ( page , 3 ) ;
@@ -235,7 +250,7 @@ describe("PDF Thumbnail View", () => {
235250 it ( "should open with Enter key and remain open" , async ( ) => {
236251 await Promise . all (
237252 pages . map ( async ( [ browserName , page ] ) => {
238- await page . click ( "#viewsManagerToggleButton" ) ;
253+ await showViewsManager ( page ) ;
239254 await waitForThumbnailVisible ( page , 1 ) ;
240255
241256 await enableMenuItems ( page ) ;
@@ -267,7 +282,7 @@ describe("PDF Thumbnail View", () => {
267282 it ( "should open with Space key and remain open" , async ( ) => {
268283 await Promise . all (
269284 pages . map ( async ( [ browserName , page ] ) => {
270- await page . click ( "#viewsManagerToggleButton" ) ;
285+ await showViewsManager ( page ) ;
271286 await waitForThumbnailVisible ( page , 1 ) ;
272287
273288 await enableMenuItems ( page ) ;
@@ -326,8 +341,7 @@ describe("PDF Thumbnail View", () => {
326341 it ( "should have accessible label on checkbox" , async ( ) => {
327342 await Promise . all (
328343 pages . map ( async ( [ browserName , page ] ) => {
329- await page . click ( "#viewsManagerToggleButton" ) ;
330-
344+ await showViewsManager ( page ) ;
331345 await waitForThumbnailVisible ( page , 1 ) ;
332346
333347 const ariaLabel = await page . $eval (
@@ -362,7 +376,7 @@ describe("PDF Thumbnail View", () => {
362376 it ( "must navigate menus with ArrowDown and Tab keys" , async ( ) => {
363377 await Promise . all (
364378 pages . map ( async ( [ browserName , page ] ) => {
365- await page . click ( "#viewsManagerToggleButton" ) ;
379+ await showViewsManager ( page ) ;
366380 await waitForThumbnailVisible ( page , 1 ) ;
367381
368382 // Focus the views manager selector button
@@ -431,7 +445,7 @@ describe("PDF Thumbnail View", () => {
431445 it ( "should show the manage button in thumbnail view and hide it in outline view" , async ( ) => {
432446 await Promise . all (
433447 pages . map ( async ( [ browserName , page ] ) => {
434- await page . click ( "#viewsManagerToggleButton" ) ;
448+ await showViewsManager ( page ) ;
435449 await waitForThumbnailVisible ( page , 1 ) ;
436450
437451 // The status bar (Select pages + Manage button) must be visible in
@@ -471,8 +485,7 @@ describe("PDF Thumbnail View", () => {
471485 it ( "should focus checkboxes with Tab key" , async ( ) => {
472486 await Promise . all (
473487 pages . map ( async ( [ browserName , page ] ) => {
474- await page . click ( "#viewsManagerToggleButton" ) ;
475-
488+ await showViewsManager ( page ) ;
476489 await waitForThumbnailVisible ( page , 1 ) ;
477490
478491 // Focus the first thumbnail button
@@ -499,8 +512,7 @@ describe("PDF Thumbnail View", () => {
499512 it ( "should navigate checkboxes with arrow keys" , async ( ) => {
500513 await Promise . all (
501514 pages . map ( async ( [ browserName , page ] ) => {
502- await page . click ( "#viewsManagerToggleButton" ) ;
503-
515+ await showViewsManager ( page ) ;
504516 await waitForThumbnailVisible ( page , 1 ) ;
505517 await waitForThumbnailVisible ( page , 2 ) ;
506518
0 commit comments