@@ -3053,4 +3053,61 @@ describe("FreeText Editor", () => {
3053
3053
) ;
3054
3054
} ) ;
3055
3055
} ) ;
3056
+
3057
+ describe ( "Delete a freetext in using the bin button" , ( ) => {
3058
+ let pages ;
3059
+
3060
+ beforeAll ( async ( ) => {
3061
+ pages = await loadAndWait ( "empty.pdf" , ".annotationEditorLayer" ) ;
3062
+ } ) ;
3063
+
3064
+ afterAll ( async ( ) => {
3065
+ await closePages ( pages ) ;
3066
+ } ) ;
3067
+
3068
+ it ( "must check that a freetext is deleted" , async ( ) => {
3069
+ await Promise . all (
3070
+ pages . map ( async ( [ browserName , page ] ) => {
3071
+ await switchToFreeText ( page ) ;
3072
+
3073
+ const rect = await page . $eval ( ".annotationEditorLayer" , el => {
3074
+ // With Chrome something is wrong when serializing a DomRect,
3075
+ // hence we extract the values and just return them.
3076
+ const { x, y } = el . getBoundingClientRect ( ) ;
3077
+ return { x, y } ;
3078
+ } ) ;
3079
+
3080
+ const data = "Hello PDF.js World !!" ;
3081
+ await page . mouse . click ( rect . x + 100 , rect . y + 100 ) ;
3082
+ await page . waitForSelector ( getEditorSelector ( 0 ) , {
3083
+ visible : true ,
3084
+ } ) ;
3085
+ await page . type ( `${ getEditorSelector ( 0 ) } .internal` , data ) ;
3086
+
3087
+ // Commit.
3088
+ await page . keyboard . press ( "Escape" ) ;
3089
+ await page . waitForSelector (
3090
+ `${ getEditorSelector ( 0 ) } .overlay.enabled`
3091
+ ) ;
3092
+
3093
+ // Delete it in using the button.
3094
+ await page . click ( `${ getEditorSelector ( 0 ) } .editToolbar` ) ;
3095
+ await page . waitForFunction (
3096
+ sel => ! document . querySelector ( sel ) ,
3097
+ { } ,
3098
+ getEditorSelector ( 0 )
3099
+ ) ;
3100
+ await waitForStorageEntries ( page , 0 ) ;
3101
+
3102
+ // Undo.
3103
+ await kbUndo ( page ) ;
3104
+ await waitForSerialized ( page , 1 ) ;
3105
+
3106
+ await page . waitForSelector ( getEditorSelector ( 0 ) , {
3107
+ visible : true ,
3108
+ } ) ;
3109
+ } )
3110
+ ) ;
3111
+ } ) ;
3112
+ } ) ;
3056
3113
} ) ;
0 commit comments