1515
1616import {
1717 awaitPromise ,
18- clearInput ,
1918 closePages ,
2019 createPromise ,
2120 createPromiseWithArgs ,
@@ -400,14 +399,6 @@ describe("Reorganize Pages View", () => {
400399 ] ) ;
401400
402401 await movePages ( page , [ 11 , 2 ] , 3 ) ;
403- await page . waitForFunction (
404- ( ) => document . querySelectorAll ( "span.highlight" ) . length === 0
405- ) ;
406-
407- await clearInput ( page , "#findInput" , true ) ;
408- await page . type ( "#findInput" , "1" ) ;
409- await page . keyboard . press ( "Enter" ) ;
410-
411402 await page . waitForFunction (
412403 ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
413404 ) ;
@@ -429,13 +420,6 @@ describe("Reorganize Pages View", () => {
429420 ] ) ;
430421
431422 await movePages ( page , [ 13 ] , 0 ) ;
432- await page . waitForFunction (
433- ( ) => document . querySelectorAll ( "span.highlight" ) . length === 0
434- ) ;
435-
436- await clearInput ( page , "#findInput" , true ) ;
437- await page . type ( "#findInput" , "1" ) ;
438- await page . keyboard . press ( "Enter" ) ;
439423
440424 await page . waitForFunction (
441425 ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
@@ -459,6 +443,115 @@ describe("Reorganize Pages View", () => {
459443 } )
460444 ) ;
461445 } ) ;
446+
447+ it ( "should check if the search is working after copy and paste (bug 2023150)" , async ( ) => {
448+ await Promise . all (
449+ pages . map ( async ( [ browserName , page ] ) => {
450+ await waitForThumbnailVisible ( page , 1 ) ;
451+ await page . waitForSelector ( "#viewsManagerStatusActionButton" , {
452+ visible : true ,
453+ } ) ;
454+
455+ await waitAndClick ( page , "#viewFindButton" ) ;
456+ await waitAndClick ( page , ":has(> #findHighlightAll)" ) ;
457+
458+ await page . waitForSelector ( "#findInput" , { visible : true } ) ;
459+ await page . type ( "#findInput" , "1" ) ;
460+ await page . keyboard . press ( "Enter" ) ;
461+
462+ await page . waitForFunction (
463+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
464+ ) ;
465+
466+ // Select page 1 and copy it.
467+ await waitAndClick (
468+ page ,
469+ `.thumbnail:has(${ getThumbnailSelector ( 1 ) } ) input`
470+ ) ;
471+ let handlePagesEdited = await waitForPagesEdited ( page , "copy" ) ;
472+ await waitAndClick ( page , "#viewsManagerStatusActionButton" ) ;
473+ await waitAndClick ( page , "#viewsManagerStatusActionCopy" ) ;
474+ await awaitPromise ( handlePagesEdited ) ;
475+
476+ // Paste after page 3.
477+ handlePagesEdited = await waitForPagesEdited ( page ) ;
478+ await waitAndClick ( page , `${ getThumbnailSelector ( 3 ) } +button` ) ;
479+ await awaitPromise ( handlePagesEdited ) ;
480+
481+ await page . waitForFunction (
482+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 11
483+ ) ;
484+
485+ const results = await getSearchResults ( page ) ;
486+ expect ( results )
487+ . withContext ( `In ${ browserName } ` )
488+ . toEqual ( [
489+ // Page number, [matches]; copy of page 1 inserted at position 4
490+ [ 1 , [ "1" ] ] ,
491+ [ 4 , [ "1" ] ] ,
492+ [ 11 , [ "1" ] ] ,
493+ [ 12 , [ "1" , "1" ] ] ,
494+ [ 13 , [ "1" ] ] ,
495+ [ 14 , [ "1" ] ] ,
496+ [ 15 , [ "1" ] ] ,
497+ [ 16 , [ "1" ] ] ,
498+ [ 17 , [ "1" ] ] ,
499+ [ 18 , [ "1" ] ] ,
500+ ] ) ;
501+ } )
502+ ) ;
503+ } ) ;
504+
505+ it ( "should check if the search is working after deleting pages (bug 2023150)" , async ( ) => {
506+ await Promise . all (
507+ pages . map ( async ( [ browserName , page ] ) => {
508+ await waitForThumbnailVisible ( page , 1 ) ;
509+ await page . waitForSelector ( "#viewsManagerStatusActionButton" , {
510+ visible : true ,
511+ } ) ;
512+
513+ await waitAndClick ( page , "#viewFindButton" ) ;
514+ await waitAndClick ( page , ":has(> #findHighlightAll)" ) ;
515+
516+ await page . waitForSelector ( "#findInput" , { visible : true } ) ;
517+ await page . type ( "#findInput" , "1" ) ;
518+ await page . keyboard . press ( "Enter" ) ;
519+
520+ await page . waitForFunction (
521+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 10
522+ ) ;
523+
524+ // Select page 1 and delete it.
525+ await waitAndClick (
526+ page ,
527+ `.thumbnail:has(${ getThumbnailSelector ( 1 ) } ) input`
528+ ) ;
529+ const handlePagesEdited = await waitForPagesEdited ( page ) ;
530+ await waitAndClick ( page , "#viewsManagerStatusActionButton" ) ;
531+ await waitAndClick ( page , "#viewsManagerStatusActionDelete" ) ;
532+ await awaitPromise ( handlePagesEdited ) ;
533+
534+ await page . waitForFunction (
535+ ( ) => document . querySelectorAll ( "span.highlight" ) . length === 9
536+ ) ;
537+
538+ const results = await getSearchResults ( page ) ;
539+ expect ( results )
540+ . withContext ( `In ${ browserName } ` )
541+ . toEqual ( [
542+ // Page number, [matches]; page 1 removed, all positions shifted
543+ [ 9 , [ "1" ] ] ,
544+ [ 10 , [ "1" , "1" ] ] ,
545+ [ 11 , [ "1" ] ] ,
546+ [ 12 , [ "1" ] ] ,
547+ [ 13 , [ "1" ] ] ,
548+ [ 14 , [ "1" ] ] ,
549+ [ 15 , [ "1" ] ] ,
550+ [ 16 , [ "1" ] ] ,
551+ ] ) ;
552+ } )
553+ ) ;
554+ } ) ;
462555 } ) ;
463556
464557 describe ( "Links and outlines" , ( ) => {
0 commit comments