@@ -66,6 +66,61 @@ describe("Image Bitmap", () => {
6666 expect ( result . width ) . toBe ( expected . width ) ;
6767 expect ( result . height ) . toBe ( expected . height ) ;
6868 } ) ;
69+ itSkipsOnWeb ( "ImageBitmap.close() zeroes width and height" , async ( ) => {
70+ const pngBytes = Array . from (
71+ fs . readFileSync ( path . join ( __dirname , "./assets/Di-3d.png" ) ) ,
72+ ) ;
73+ const expected = decodeImage ( path . join ( __dirname , "./assets/Di-3d.png" ) ) ;
74+ const result = await client . eval (
75+ ( { pngData } ) => {
76+ const bytes = new Uint8Array ( pngData ) ;
77+ return createImageBitmap ( bytes . buffer ) . then ( ( bmp ) => {
78+ const before = { width : bmp . width , height : bmp . height } ;
79+ bmp . close ( ) ;
80+ const after = { width : bmp . width , height : bmp . height } ;
81+ return { before, after } ;
82+ } ) ;
83+ } ,
84+ { pngData : pngBytes } ,
85+ ) ;
86+ expect ( result . before . width ) . toBe ( expected . width ) ;
87+ expect ( result . before . height ) . toBe ( expected . height ) ;
88+ expect ( result . after . width ) . toBe ( 0 ) ;
89+ expect ( result . after . height ) . toBe ( 0 ) ;
90+ } ) ;
91+ itSkipsOnWeb ( "ImageBitmap.close() is idempotent" , async ( ) => {
92+ const pngBytes = Array . from (
93+ fs . readFileSync ( path . join ( __dirname , "./assets/Di-3d.png" ) ) ,
94+ ) ;
95+ const result = await client . eval (
96+ ( { pngData } ) => {
97+ const bytes = new Uint8Array ( pngData ) ;
98+ return createImageBitmap ( bytes . buffer ) . then ( ( bmp ) => {
99+ bmp . close ( ) ;
100+ bmp . close ( ) ;
101+ return { width : bmp . width , height : bmp . height } ;
102+ } ) ;
103+ } ,
104+ { pngData : pngBytes } ,
105+ ) ;
106+ expect ( result . width ) . toBe ( 0 ) ;
107+ expect ( result . height ) . toBe ( 0 ) ;
108+ } ) ;
109+ itSkipsOnWeb ( "ImageBitmap exposes close as a function" , async ( ) => {
110+ const pngBytes = Array . from (
111+ fs . readFileSync ( path . join ( __dirname , "./assets/Di-3d.png" ) ) ,
112+ ) ;
113+ const result = await client . eval (
114+ ( { pngData } ) => {
115+ const bytes = new Uint8Array ( pngData ) ;
116+ return createImageBitmap ( bytes . buffer ) . then ( ( bmp ) => {
117+ return typeof bmp . close ;
118+ } ) ;
119+ } ,
120+ { pngData : pngBytes } ,
121+ ) ;
122+ expect ( result ) . toBe ( "function" ) ;
123+ } ) ;
69124 itSkipsOnWeb (
70125 "createImageBitmap from Uint8Array subarray (byteOffset/byteLength)" ,
71126 async ( ) => {
0 commit comments