55import 'dart:math' ;
66import 'dart:typed_data' ;
77
8+ import 'package:js/js.dart' ;
89import 'package:test/bootstrap/browser.dart' ;
910import 'package:test/test.dart' ;
1011
@@ -1834,6 +1835,49 @@ void _paragraphTests() {
18341835 expect (surface, isNotNull);
18351836 }, skip: isFirefox); // Intended: Headless firefox has no webgl support https://github.com/flutter/flutter/issues/109265
18361837
1838+ group ('getCanvasKitJsFileNames' , () {
1839+ late dynamic oldV8BreakIterator = v8BreakIterator;
1840+ setUp (() {
1841+ oldV8BreakIterator = v8BreakIterator;
1842+ });
1843+ tearDown (() {
1844+ v8BreakIterator = oldV8BreakIterator;
1845+ debugResetBrowserSupportsImageDecoder ();
1846+ });
1847+
1848+ test ('in Chromium-based browsers' , () {
1849+ v8BreakIterator = Object (); // Any non-null value.
1850+ browserSupportsImageDecoder = true ;
1851+
1852+ expect (getCanvasKitJsFileNames (CanvasKitVariant .full), < String > ['canvaskit.js' ]);
1853+ expect (getCanvasKitJsFileNames (CanvasKitVariant .chromium), < String > ['chromium/canvaskit.js' ]);
1854+ expect (getCanvasKitJsFileNames (CanvasKitVariant .auto), < String > [
1855+ 'chromium/canvaskit.js' ,
1856+ 'canvaskit.js' ,
1857+ ]);
1858+ });
1859+
1860+ test ('in other browsers' , () {
1861+ v8BreakIterator = null ;
1862+ browserSupportsImageDecoder = true ;
1863+ expect (getCanvasKitJsFileNames (CanvasKitVariant .full), < String > ['canvaskit.js' ]);
1864+ expect (getCanvasKitJsFileNames (CanvasKitVariant .chromium), < String > ['chromium/canvaskit.js' ]);
1865+ expect (getCanvasKitJsFileNames (CanvasKitVariant .auto), < String > ['canvaskit.js' ]);
1866+
1867+ v8BreakIterator = Object ();
1868+ browserSupportsImageDecoder = false ;
1869+ expect (getCanvasKitJsFileNames (CanvasKitVariant .full), < String > ['canvaskit.js' ]);
1870+ expect (getCanvasKitJsFileNames (CanvasKitVariant .chromium), < String > ['chromium/canvaskit.js' ]);
1871+ expect (getCanvasKitJsFileNames (CanvasKitVariant .auto), < String > ['canvaskit.js' ]);
1872+
1873+ v8BreakIterator = null ;
1874+ browserSupportsImageDecoder = false ;
1875+ expect (getCanvasKitJsFileNames (CanvasKitVariant .full), < String > ['canvaskit.js' ]);
1876+ expect (getCanvasKitJsFileNames (CanvasKitVariant .chromium), < String > ['chromium/canvaskit.js' ]);
1877+ expect (getCanvasKitJsFileNames (CanvasKitVariant .auto), < String > ['canvaskit.js' ]);
1878+ });
1879+ });
1880+
18371881 test ('respects actual location of canvaskit files' , () {
18381882 expect (
18391883 canvasKitWasmModuleUrl ('canvaskit.wasm' , 'https://example.com/' ),
@@ -1849,3 +1893,10 @@ void _paragraphTests() {
18491893 );
18501894 });
18511895}
1896+
1897+
1898+ @JS ('window.Intl.v8BreakIterator' )
1899+ external dynamic get v8BreakIterator;
1900+
1901+ @JS ('window.Intl.v8BreakIterator' )
1902+ external set v8BreakIterator (dynamic x);
0 commit comments