44import static org .junit .Assert .assertNotNull ;
55import static org .junit .Assert .assertTrue ;
66import static org .mockito .Mockito .any ;
7+ import static org .mockito .Mockito .anyInt ;
78import static org .mockito .Mockito .atLeast ;
89import static org .mockito .Mockito .mock ;
910import static org .mockito .Mockito .times ;
1011import static org .mockito .Mockito .verify ;
1112import static org .mockito .Mockito .when ;
1213
1314import android .content .Context ;
15+ import android .content .pm .PackageManager .NameNotFoundException ;
1416import io .flutter .FlutterInjector ;
1517import io .flutter .embedding .engine .FlutterEngine ;
1618import io .flutter .embedding .engine .FlutterJNI ;
@@ -127,8 +129,11 @@ public void itNotifiesPlatformViewsControllerAboutJNILifecycle() {
127129 }
128130
129131 @ Test
130- public void itUsesApplicationContext () {
132+ public void itUsesApplicationContext () throws NameNotFoundException {
131133 Context context = mock (Context .class );
134+ Context packageContext = mock (Context .class );
135+
136+ when (context .createPackageContext (any (), anyInt ())).thenReturn (packageContext );
132137
133138 new FlutterEngine (
134139 context ,
@@ -141,12 +146,32 @@ public void itUsesApplicationContext() {
141146 }
142147
143148 @ Test
144- public void itCanUseFlutterLoaderInjectionViaFlutterInjector () {
149+ public void itUsesPackageContextForAssetManager () throws NameNotFoundException {
150+ Context context = mock (Context .class );
151+ Context packageContext = mock (Context .class );
152+ when (context .createPackageContext (any (), anyInt ())).thenReturn (packageContext );
153+
154+ new FlutterEngine (
155+ context ,
156+ mock (FlutterLoader .class ),
157+ flutterJNI ,
158+ /*dartVmArgs=*/ new String [] {},
159+ /*automaticallyRegisterPlugins=*/ false );
160+
161+ verify (packageContext , atLeast (1 )).getAssets ();
162+ verify (context , times (0 )).getAssets ();
163+ }
164+
165+ @ Test
166+ public void itCanUseFlutterLoaderInjectionViaFlutterInjector () throws NameNotFoundException {
145167 FlutterInjector .reset ();
146168 FlutterLoader mockFlutterLoader = mock (FlutterLoader .class );
147169 FlutterInjector .setInstance (
148170 new FlutterInjector .Builder ().setFlutterLoader (mockFlutterLoader ).build ());
149171 Context mockContext = mock (Context .class );
172+ Context packageContext = mock (Context .class );
173+
174+ when (mockContext .createPackageContext (any (), anyInt ())).thenReturn (packageContext );
150175
151176 new FlutterEngine (mockContext , null , flutterJNI );
152177
0 commit comments