35
35
import org .junit .After ;
36
36
import org .junit .Before ;
37
37
import org .junit .Test ;
38
+ import org .junit .runner .RunWith ;
38
39
import org .mockito .ArgumentCaptor ;
39
40
import org .mockito .Mock ;
40
41
import org .mockito .MockedStatic ;
41
42
import org .mockito .Mockito ;
42
43
import org .mockito .MockitoAnnotations ;
44
+ import org .robolectric .RobolectricTestRunner ;
45
+ import org .robolectric .annotation .Config ;
43
46
47
+ @ RunWith (RobolectricTestRunner .class )
44
48
public class ImagePickerDelegateTest {
45
49
private static final Double WIDTH = 10.0 ;
46
50
private static final Double HEIGHT = 10.0 ;
@@ -134,6 +138,8 @@ public void chooseMultiImageFromGallery_WhenPendingResultExists_FinishesWithAlre
134
138
verifyNoMoreInteractions (mockResult );
135
139
}
136
140
141
+ @ Test
142
+ @ Config (sdk = 30 )
137
143
public void
138
144
chooseImageFromGallery_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent () {
139
145
when (mockPermissionManager .isPermissionGranted (Manifest .permission .READ_EXTERNAL_STORAGE ))
@@ -147,6 +153,83 @@ public void chooseMultiImageFromGallery_WhenPendingResultExists_FinishesWithAlre
147
153
any (Intent .class ), eq (ImagePickerDelegate .REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY ));
148
154
}
149
155
156
+ @ Test
157
+ @ Config (minSdk = 33 )
158
+ public void
159
+ chooseImageFromGallery_WithPhotoPicker_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent () {
160
+ when (mockPermissionManager .isPermissionGranted (Manifest .permission .READ_EXTERNAL_STORAGE ))
161
+ .thenReturn (true );
162
+
163
+ ImagePickerDelegate delegate = createDelegate ();
164
+ delegate .chooseImageFromGallery (mockMethodCall , mockResult );
165
+
166
+ verify (mockActivity )
167
+ .startActivityForResult (
168
+ any (Intent .class ), eq (ImagePickerDelegate .REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY ));
169
+ }
170
+
171
+ @ Test
172
+ @ Config (sdk = 30 )
173
+ public void
174
+ chooseMultiImageFromGallery_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent () {
175
+ when (mockPermissionManager .isPermissionGranted (Manifest .permission .READ_EXTERNAL_STORAGE ))
176
+ .thenReturn (true );
177
+
178
+ ImagePickerDelegate delegate = createDelegate ();
179
+ delegate .chooseMultiImageFromGallery (mockMethodCall , mockResult );
180
+
181
+ verify (mockActivity )
182
+ .startActivityForResult (
183
+ any (Intent .class ),
184
+ eq (ImagePickerDelegate .REQUEST_CODE_CHOOSE_MULTI_IMAGE_FROM_GALLERY ));
185
+ }
186
+
187
+ @ Test
188
+ @ Config (minSdk = 33 )
189
+ public void
190
+ chooseMultiImageFromGallery_WithPhotoPicker_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent () {
191
+ when (mockPermissionManager .isPermissionGranted (Manifest .permission .READ_EXTERNAL_STORAGE ))
192
+ .thenReturn (true );
193
+
194
+ ImagePickerDelegate delegate = createDelegate ();
195
+ delegate .chooseMultiImageFromGallery (mockMethodCall , mockResult );
196
+
197
+ verify (mockActivity )
198
+ .startActivityForResult (
199
+ any (Intent .class ),
200
+ eq (ImagePickerDelegate .REQUEST_CODE_CHOOSE_MULTI_IMAGE_FROM_GALLERY ));
201
+ }
202
+
203
+ @ Test
204
+ @ Config (sdk = 30 )
205
+ public void
206
+ chooseVideoFromGallery_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent () {
207
+ when (mockPermissionManager .isPermissionGranted (Manifest .permission .READ_EXTERNAL_STORAGE ))
208
+ .thenReturn (true );
209
+
210
+ ImagePickerDelegate delegate = createDelegate ();
211
+ delegate .chooseVideoFromGallery (mockMethodCall , mockResult );
212
+
213
+ verify (mockActivity )
214
+ .startActivityForResult (
215
+ any (Intent .class ), eq (ImagePickerDelegate .REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY ));
216
+ }
217
+
218
+ @ Test
219
+ @ Config (minSdk = 33 )
220
+ public void
221
+ chooseVideoFromGallery_WithPhotoPicker_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent () {
222
+ when (mockPermissionManager .isPermissionGranted (Manifest .permission .READ_EXTERNAL_STORAGE ))
223
+ .thenReturn (true );
224
+
225
+ ImagePickerDelegate delegate = createDelegate ();
226
+ delegate .chooseVideoFromGallery (mockMethodCall , mockResult );
227
+
228
+ verify (mockActivity )
229
+ .startActivityForResult (
230
+ any (Intent .class ), eq (ImagePickerDelegate .REQUEST_CODE_CHOOSE_VIDEO_FROM_GALLERY ));
231
+ }
232
+
150
233
@ Test
151
234
public void takeImageWithCamera_WhenPendingResultExists_FinishesWithAlreadyActiveError () {
152
235
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall ();
@@ -350,6 +433,7 @@ public void onActivityResult_WhenTakeImageWithCameraCanceled_FinishesWithNull()
350
433
@ Test
351
434
public void onActivityResult_WhenImageTakenWithCamera_AndNoResizeNeeded_FinishesWithImagePath () {
352
435
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall ();
436
+ when (cache .retrievePendingCameraMediaUriPath ()).thenReturn ("testString" );
353
437
354
438
delegate .onActivityResult (
355
439
ImagePickerDelegate .REQUEST_CODE_TAKE_IMAGE_WITH_CAMERA , Activity .RESULT_OK , mockIntent );
@@ -362,6 +446,7 @@ public void onActivityResult_WhenImageTakenWithCamera_AndNoResizeNeeded_Finishes
362
446
public void
363
447
onActivityResult_WhenImageTakenWithCamera_AndResizeNeeded_FinishesWithScaledImagePath () {
364
448
when (mockMethodCall .argument ("maxWidth" )).thenReturn (WIDTH );
449
+ when (cache .retrievePendingCameraMediaUriPath ()).thenReturn ("testString" );
365
450
366
451
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall ();
367
452
delegate .onActivityResult (
@@ -375,6 +460,7 @@ public void onActivityResult_WhenImageTakenWithCamera_AndNoResizeNeeded_Finishes
375
460
public void
376
461
onActivityResult_WhenVideoTakenWithCamera_AndResizeParametersSupplied_FinishesWithFilePath () {
377
462
when (mockMethodCall .argument ("maxWidth" )).thenReturn (WIDTH );
463
+ when (cache .retrievePendingCameraMediaUriPath ()).thenReturn ("testString" );
378
464
379
465
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall ();
380
466
delegate .onActivityResult (
@@ -388,6 +474,7 @@ public void onActivityResult_WhenImageTakenWithCamera_AndNoResizeNeeded_Finishes
388
474
public void
389
475
onActivityResult_WhenVideoTakenWithCamera_AndMaxDurationParametersSupplied_FinishesWithFilePath () {
390
476
when (mockMethodCall .argument ("maxDuration" )).thenReturn (MAX_DURATION );
477
+ when (cache .retrievePendingCameraMediaUriPath ()).thenReturn ("testString" );
391
478
392
479
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall ();
393
480
delegate .onActivityResult (
0 commit comments