1515
1616import {
1717 awaitPromise ,
18- clearInput ,
1918 closePages ,
2019 createPromise ,
2120 createPromiseWithArgs ,
@@ -404,14 +403,6 @@ describe("Reorganize Pages View", () => {
404403 ] ) ;
405404
406405 await movePages ( page , [ 11 , 2 ] , 3 ) ;
407- await page . waitForFunction (
408- ( ) => document . querySelectorAll ( "span.highlight" ) . length === 0
409- ) ;
410-
411- await clearInput ( page , "#findInput" , true ) ;
412- await page . type ( "#findInput" , "1" ) ;
413- await page . keyboard . press ( "Enter" ) ;
414-
415406 await page . waitForFunction (
416407 ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
417408 ) ;
@@ -433,13 +424,6 @@ describe("Reorganize Pages View", () => {
433424 ] ) ;
434425
435426 await movePages ( page , [ 13 ] , 0 ) ;
436- await page . waitForFunction (
437- ( ) => document . querySelectorAll ( "span.highlight" ) . length === 0
438- ) ;
439-
440- await clearInput ( page , "#findInput" , true ) ;
441- await page . type ( "#findInput" , "1" ) ;
442- await page . keyboard . press ( "Enter" ) ;
443427
444428 await page . waitForFunction (
445429 ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
@@ -463,6 +447,115 @@ describe("Reorganize Pages View", () => {
463447 } )
464448 ) ;
465449 } ) ;
450+
451+ it ( "should check if the search is working after copy and paste (bug 2023150)" , async ( ) => {
452+ await Promise . all (
453+ pages . map ( async ( [ browserName , page ] ) => {
454+ await waitForThumbnailVisible ( page , 1 ) ;
455+ await page . waitForSelector ( "#viewsManagerStatusActionButton" , {
456+ visible : true ,
457+ } ) ;
458+
459+ await waitAndClick ( page , "#viewFindButton" ) ;
460+ await waitAndClick ( page , ":has(> #findHighlightAll)" ) ;
461+
462+ await page . waitForSelector ( "#findInput" , { visible : true } ) ;
463+ await page . type ( "#findInput" , "1" ) ;
464+ await page . keyboard . press ( "Enter" ) ;
465+
466+ await page . waitForFunction (
467+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
468+ ) ;
469+
470+ // Select page 1 and copy it.
471+ await waitAndClick (
472+ page ,
473+ `.thumbnail:has(${ getThumbnailSelector ( 1 ) } ) input`
474+ ) ;
475+ let handlePagesEdited = await waitForPagesEdited ( page , "copy" ) ;
476+ await waitAndClick ( page , "#viewsManagerStatusActionButton" ) ;
477+ await waitAndClick ( page , "#viewsManagerStatusActionCopy" ) ;
478+ await awaitPromise ( handlePagesEdited ) ;
479+
480+ // Paste after page 3.
481+ handlePagesEdited = await waitForPagesEdited ( page ) ;
482+ await waitAndClick ( page , `${ getThumbnailSelector ( 3 ) } +button` ) ;
483+ await awaitPromise ( handlePagesEdited ) ;
484+
485+ await page . waitForFunction (
486+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 11
487+ ) ;
488+
489+ const results = await getSearchResults ( page ) ;
490+ expect ( results )
491+ . withContext ( `In ${ browserName } ` )
492+ . toEqual ( [
493+ // Page number, [matches]; copy of page 1 inserted at position 4
494+ [ 1 , [ "1" ] ] ,
495+ [ 4 , [ "1" ] ] ,
496+ [ 11 , [ "1" ] ] ,
497+ [ 12 , [ "1" , "1" ] ] ,
498+ [ 13 , [ "1" ] ] ,
499+ [ 14 , [ "1" ] ] ,
500+ [ 15 , [ "1" ] ] ,
501+ [ 16 , [ "1" ] ] ,
502+ [ 17 , [ "1" ] ] ,
503+ [ 18 , [ "1" ] ] ,
504+ ] ) ;
505+ } )
506+ ) ;
507+ } ) ;
508+
509+ it ( "should check if the search is working after deleting pages (bug 2023150)" , async ( ) => {
510+ await Promise . all (
511+ pages . map ( async ( [ browserName , page ] ) => {
512+ await waitForThumbnailVisible ( page , 1 ) ;
513+ await page . waitForSelector ( "#viewsManagerStatusActionButton" , {
514+ visible : true ,
515+ } ) ;
516+
517+ await waitAndClick ( page , "#viewFindButton" ) ;
518+ await waitAndClick ( page , ":has(> #findHighlightAll)" ) ;
519+
520+ await page . waitForSelector ( "#findInput" , { visible : true } ) ;
521+ await page . type ( "#findInput" , "1" ) ;
522+ await page . keyboard . press ( "Enter" ) ;
523+
524+ await page . waitForFunction (
525+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
526+ ) ;
527+
528+ // Select page 1 and delete it.
529+ await waitAndClick (
530+ page ,
531+ `.thumbnail:has(${ getThumbnailSelector ( 1 ) } ) input`
532+ ) ;
533+ const handlePagesEdited = await waitForPagesEdited ( page ) ;
534+ await waitAndClick ( page , "#viewsManagerStatusActionButton" ) ;
535+ await waitAndClick ( page , "#viewsManagerStatusActionDelete" ) ;
536+ await awaitPromise ( handlePagesEdited ) ;
537+
538+ await page . waitForFunction (
539+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 9
540+ ) ;
541+
542+ const results = await getSearchResults ( page ) ;
543+ expect ( results )
544+ . withContext ( `In ${ browserName } ` )
545+ . toEqual ( [
546+ // Page number, [matches]; page 1 removed, all positions shifted
547+ [ 9 , [ "1" ] ] ,
548+ [ 10 , [ "1" , "1" ] ] ,
549+ [ 11 , [ "1" ] ] ,
550+ [ 12 , [ "1" ] ] ,
551+ [ 13 , [ "1" ] ] ,
552+ [ 14 , [ "1" ] ] ,
553+ [ 15 , [ "1" ] ] ,
554+ [ 16 , [ "1" ] ] ,
555+ ] ) ;
556+ } )
557+ ) ;
558+ } ) ;
466559 } ) ;
467560
468561 describe ( "Links and outlines" , ( ) => {
0 commit comments