11import {
2- awaitPromise ,
32 closePages ,
43 kbFocusNext ,
54 loadAndWait ,
5+ scrollIntoView ,
6+ waitForPageRendered ,
67} from "./test_utils.mjs" ;
78
8- function waitForThumbnailVisible ( page , pageNum ) {
9- return page . waitForSelector (
10- `.thumbnailImage[data-l10n-args='{"page":${ pageNum } }']` ,
11- { visible : true }
12- ) ;
9+ function waitForThumbnailVisible ( page , pageNum , current = false ) {
10+ let selector = `.thumbnailImage[data-l10n-args='{"page":${ pageNum } }']` ;
11+ if ( current ) {
12+ selector += '[aria-current="page"]' ;
13+ }
14+ return page . waitForSelector ( selector , { visible : true } ) ;
1315}
1416
1517describe ( "PDF Thumbnail View" , ( ) => {
@@ -32,7 +34,7 @@ describe("PDF Thumbnail View", () => {
3234 const thumbSelector = "#thumbnailsView .thumbnailImage" ;
3335 await page . waitForSelector ( thumbSelector , { visible : true } ) ;
3436
35- await waitForThumbnailVisible ( page , 1 ) ;
37+ await waitForThumbnailVisible ( page , 1 , /* current = */ true ) ;
3638
3739 const src = await page . $eval ( thumbSelector , el => el . src ) ;
3840 expect ( src )
@@ -47,42 +49,32 @@ describe("PDF Thumbnail View", () => {
4749 let pages ;
4850
4951 beforeEach ( async ( ) => {
50- pages = await loadAndWait ( "tracemonkey.pdf" , "#viewsManagerToggleButton" ) ;
52+ pages = await loadAndWait (
53+ "tracemonkey.pdf" ,
54+ `.page[data-page-number = "1"] .endOfContent`
55+ ) ;
5156 } ) ;
5257
5358 afterEach ( async ( ) => {
5459 await closePages ( pages ) ;
5560 } ) ;
5661
57- async function goToPage ( page , number ) {
58- const handle = await page . evaluateHandle (
59- num => [
60- new Promise ( resolve => {
61- const container = document . getElementById ( "viewsManagerContent" ) ;
62- container . addEventListener ( "scrollend" , resolve , { once : true } ) ;
63- // eslint-disable-next-line no-undef
64- PDFViewerApplication . pdfLinkService . goToPage ( num ) ;
65- } ) ,
66- ] ,
67- number
68- ) ;
69- return awaitPromise ( handle ) ;
70- }
71-
7262 it ( "should scroll the view" , async ( ) => {
7363 await Promise . all (
7464 pages . map ( async ( [ browserName , page ] ) => {
7565 await page . click ( "#viewsManagerToggleButton" ) ;
7666
77- await waitForThumbnailVisible ( page , 1 ) ;
67+ await waitForThumbnailVisible ( page , 1 , /* current = */ true ) ;
7868
7969 for ( const pageNum of [ 14 , 1 , 13 , 2 ] ) {
80- await goToPage ( page , pageNum ) ;
70+ const pageSelector = `.page[data-page-number = "${ pageNum } "]` ;
71+ await page . waitForSelector ( pageSelector ) ;
72+ await scrollIntoView ( page , pageSelector ) ;
73+ await waitForPageRendered ( page , pageNum ) ;
74+
75+ await waitForThumbnailVisible ( page , pageNum , /* current = */ true ) ;
76+
8177 const thumbSelector = `.thumbnailImage[data-l10n-args='{"page":${ pageNum } }']` ;
82- await page . waitForSelector (
83- `.thumbnail ${ thumbSelector } [aria-current="page"]` ,
84- { visible : true }
85- ) ;
8678 const src = await page . $eval ( thumbSelector , el => el . src ) ;
8779 expect ( src )
8880 . withContext ( `In ${ browserName } ` )
@@ -115,7 +107,7 @@ describe("PDF Thumbnail View", () => {
115107 pages . map ( async ( [ browserName , page ] ) => {
116108 await page . click ( "#viewsManagerToggleButton" ) ;
117109
118- await waitForThumbnailVisible ( page , 1 ) ;
110+ await waitForThumbnailVisible ( page , 1 , /* current = */ true ) ;
119111 await waitForThumbnailVisible ( page , 2 ) ;
120112 await waitForThumbnailVisible ( page , 3 ) ;
121113
0 commit comments