Skip to content

Commit b9de8dc

Browse files
Add tests for FilePicker public methods (#3948)
1 parent 67c0004 commit b9de8dc

File tree

1 file changed

+57
-0
lines changed

1 file changed

+57
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
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

Comments
 (0)