1
+ package fr.free.nrw.commons.filepicker
2
+
3
+ import android.app.Activity
4
+ import android.app.Application
5
+ import android.content.SharedPreferences
6
+ import androidx.preference.PreferenceManager
7
+ import com.nhaarman.mockitokotlin2.verify
8
+ import com.nhaarman.mockitokotlin2.verifyNoMoreInteractions
9
+ import fr.free.nrw.commons.filepicker.Constants.RequestCodes
10
+ import fr.free.nrw.commons.filepicker.FilePicker.handleActivityResult
11
+ import junit.framework.Assert.assertEquals
12
+ import org.junit.Before
13
+ import org.junit.Test
14
+ import org.mockito.*
15
+ import org.mockito.Mockito.`when`
16
+ import org.mockito.Mockito.mock
17
+
18
+ class FilePickerTest {
19
+ @Mock
20
+ internal lateinit var activity: Activity
21
+ @Mock
22
+ internal lateinit var sharedPref: SharedPreferences
23
+ @Mock
24
+ var sharedPreferencesEditor: SharedPreferences .Editor ? = null
25
+ @Mock
26
+ var unit: Unit? = null
27
+
28
+ @Captor
29
+ var requestCodeCaptor: ArgumentCaptor <Integer >? = null
30
+
31
+ @Before
32
+ fun setup () {
33
+ MockitoAnnotations .initMocks(this )
34
+ }
35
+
36
+ @Test
37
+ fun testOpenGalleryRequestCode () {
38
+ `when `(PreferenceManager .getDefaultSharedPreferences(activity)).thenReturn(sharedPref)
39
+ `when `(sharedPref.edit()).thenReturn(sharedPreferencesEditor)
40
+ `when `(sharedPref.edit().putInt(" type" , 0 )).thenReturn(sharedPreferencesEditor)
41
+ FilePicker .openGallery(activity, 0 )
42
+ verify(activity).startActivityForResult(ArgumentMatchers .anyObject(), requestCodeCaptor?.capture()?.toInt()!! )
43
+ assertEquals(requestCodeCaptor?.value, RequestCodes .PICK_PICTURE_FROM_GALLERY )
44
+ }
45
+
46
+ @Test
47
+ fun testOpenCameraForImageCode () {
48
+ `when `(PreferenceManager .getDefaultSharedPreferences(activity)).thenReturn(sharedPref)
49
+ `when `(sharedPref.edit()).thenReturn(sharedPreferencesEditor)
50
+ `when `(sharedPref.edit().putInt(" type" , 0 )).thenReturn(sharedPreferencesEditor)
51
+ val mockApplication = mock(Application ::class .java)
52
+ `when `(activity.applicationContext).thenReturn(mockApplication)
53
+ FilePicker .openCameraForImage(activity, 0 )
54
+ verify(activity).startActivityForResult(ArgumentMatchers .anyObject(), requestCodeCaptor?.capture()?.toInt()!! )
55
+ assertEquals(requestCodeCaptor?.value, RequestCodes .TAKE_PICTURE )
56
+ }
57
+ }
0 commit comments