Skip to content
This repository was archived by the owner on Feb 22, 2023. It is now read-only.

Commit 7b934b0

Browse files
committed
Added some Android unit tests
1 parent 41af3db commit 7b934b0

File tree

2 files changed

+70
-1
lines changed

2 files changed

+70
-1
lines changed

packages/image_picker/image_picker/example/android/app/src/test/java/io/flutter/plugins/imagepicker/ImagePickerDelegateTest.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@
1010
import static org.mockito.Mockito.when;
1111

1212
import android.Manifest;
13+
import android.annotation.TargetApi;
1314
import android.app.Activity;
1415
import android.content.Context;
1516
import android.content.Intent;
1617
import android.content.pm.PackageManager;
1718
import android.net.Uri;
19+
import android.os.Build;
20+
1821
import io.flutter.plugin.common.MethodCall;
1922
import io.flutter.plugin.common.MethodChannel;
2023
import java.io.File;
@@ -96,6 +99,17 @@ public void chooseImageFromGallery_WhenPendingResultExists_FinishesWithAlreadyAc
9699
verifyNoMoreInteractions(mockResult);
97100
}
98101

102+
@Test
103+
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
104+
public void chooseMultiImageFromGallery_WhenPendingResultExists_FinishesWithAlreadyActiveError() {
105+
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();
106+
107+
delegate.chooseMultiImageFromGallery(mockMethodCall, mockResult);
108+
109+
verifyFinishedWithAlreadyActiveError();
110+
verifyNoMoreInteractions(mockResult);
111+
}
112+
99113
@Test
100114
public void chooseImageFromGallery_WhenHasNoExternalStoragePermission_RequestsForPermission() {
101115
when(mockPermissionManager.isPermissionGranted(Manifest.permission.READ_EXTERNAL_STORAGE))
@@ -110,6 +124,21 @@ public void chooseImageFromGallery_WhenHasNoExternalStoragePermission_RequestsFo
110124
ImagePickerDelegate.REQUEST_EXTERNAL_IMAGE_STORAGE_PERMISSION);
111125
}
112126

127+
@Test
128+
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
129+
public void chooseMultiImageFromGallery_WhenHasNoExternalStoragePermission_RequestsForPermission() {
130+
when(mockPermissionManager.isPermissionGranted(Manifest.permission.READ_EXTERNAL_STORAGE))
131+
.thenReturn(false);
132+
133+
ImagePickerDelegate delegate = createDelegate();
134+
delegate.chooseMultiImageFromGallery(mockMethodCall, mockResult);
135+
136+
verify(mockPermissionManager)
137+
.askForPermission(
138+
Manifest.permission.READ_EXTERNAL_STORAGE,
139+
ImagePickerDelegate.REQUEST_EXTERNAL_MULTI_IMAGE_STORAGE_PERMISSION);
140+
}
141+
113142
@Test
114143
public void
115144
chooseImageFromGallery_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent() {
@@ -124,6 +153,21 @@ public void chooseImageFromGallery_WhenHasNoExternalStoragePermission_RequestsFo
124153
any(Intent.class), eq(ImagePickerDelegate.REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY));
125154
}
126155

156+
@Test
157+
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
158+
public void
159+
chooseMultiImageFromGallery_WhenHasExternalStoragePermission_LaunchesChooseFromGalleryIntent() {
160+
when(mockPermissionManager.isPermissionGranted(Manifest.permission.READ_EXTERNAL_STORAGE))
161+
.thenReturn(true);
162+
163+
ImagePickerDelegate delegate = createDelegate();
164+
delegate.chooseMultiImageFromGallery(mockMethodCall, mockResult);
165+
166+
verify(mockActivity)
167+
.startActivityForResult(
168+
any(Intent.class), eq(ImagePickerDelegate.REQUEST_CODE_CHOOSE_MULTI_IMAGE_FROM_GALLERY));
169+
}
170+
127171
@Test
128172
public void takeImageWithCamera_WhenPendingResultExists_FinishesWithAlreadyActiveError() {
129173
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();
@@ -217,6 +261,22 @@ public void takeImageWithCamera_WhenCameraPermissionNotPresent_RequestsForPermis
217261
any(Intent.class), eq(ImagePickerDelegate.REQUEST_CODE_CHOOSE_IMAGE_FROM_GALLERY));
218262
}
219263

264+
@Test
265+
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
266+
public void
267+
onRequestChooseMultiImagePermissionsResult_WhenReadExternalStorageGranted_LaunchesChooseMultiImageFromGalleryIntent() {
268+
ImagePickerDelegate delegate = createDelegateWithPendingResultAndMethodCall();
269+
270+
delegate.onRequestPermissionsResult(
271+
ImagePickerDelegate.REQUEST_EXTERNAL_MULTI_IMAGE_STORAGE_PERMISSION,
272+
new String[] {Manifest.permission.READ_EXTERNAL_STORAGE},
273+
new int[] {PackageManager.PERMISSION_GRANTED});
274+
275+
verify(mockActivity)
276+
.startActivityForResult(
277+
any(Intent.class), eq(ImagePickerDelegate.REQUEST_CODE_CHOOSE_MULTI_IMAGE_FROM_GALLERY));
278+
}
279+
220280
@Test
221281
public void
222282
onRequestChooseVideoPermissionsResult_WhenReadExternalStorageGranted_LaunchesChooseVideoFromGalleryIntent() {

packages/image_picker/image_picker/example/android/app/src/test/java/io/flutter/plugins/imagepicker/ImagePickerPluginTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ public class ImagePickerPluginTest {
2424
private static final int SOURCE_CAMERA = 0;
2525
private static final int SOURCE_GALLERY = 1;
2626
private static final String PICK_IMAGE = "pickImage";
27+
private static final String PICK_MULTI_IMAGE = "pickMultiImage";
2728
private static final String PICK_VIDEO = "pickVideo";
2829

2930
@Rule public ExpectedException exception = ExpectedException.none();
@@ -84,6 +85,14 @@ public void onMethodCall_WhenSourceIsGallery_InvokesChooseImageFromGallery() {
8485
verifyZeroInteractions(mockResult);
8586
}
8687

88+
@Test
89+
public void onMethodCall_InvokesChooseMultiImageFromGallery() {
90+
MethodCall call = buildMethodCall(PICK_MULTI_IMAGE, null);
91+
plugin.onMethodCall(call, mockResult);
92+
verify(mockImagePickerDelegate).chooseMultiImageFromGallery(eq(call), any());
93+
verifyZeroInteractions(mockResult);
94+
}
95+
8796
@Test
8897
public void onMethodCall_WhenSourceIsCamera_InvokesTakeImageWithCamera() {
8998
MethodCall call = buildMethodCall(PICK_IMAGE, SOURCE_CAMERA);
@@ -145,7 +154,7 @@ public void onConstructor_WhenContextTypeIsActivity_ShouldNotCrash() {
145154
"No exception thrown when ImagePickerPlugin() ran with context instanceof Activity", true);
146155
}
147156

148-
private MethodCall buildMethodCall(String method, final int source) {
157+
private MethodCall buildMethodCall(String method, final Integer source) {
149158
final Map<String, Object> arguments = new HashMap<>();
150159
arguments.put("source", source);
151160

0 commit comments

Comments
 (0)