Add Login Activity Test (#4160)

This commit is contained in:
Madhur Gupta 2021-01-12 05:47:27 +05:30 committed by GitHub
parent c4bd23f7a1
commit 67a9bd56fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -0,0 +1,96 @@
package fr.free.nrw.commons.login
import android.app.ProgressDialog
import android.content.Context
import android.view.MenuItem
import fr.free.nrw.commons.R
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.auth.LoginActivity
import org.junit.Assert
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.Mock
import org.mockito.MockitoAnnotations
import org.robolectric.Robolectric
import org.robolectric.RobolectricTestRunner
import org.robolectric.RuntimeEnvironment
import org.robolectric.annotation.Config
import org.robolectric.fakes.RoboMenuItem
import java.lang.reflect.Field
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [21], application = TestCommonsApplication::class)
class LoginActivityUnitTests {
@Mock
private lateinit var activity: LoginActivity
private lateinit var context: Context
@Mock
private lateinit var progressDialog: ProgressDialog
private lateinit var menuItem: MenuItem
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
activity = Robolectric.buildActivity(LoginActivity::class.java).create().get()
context = RuntimeEnvironment.application.applicationContext
val fieldProgressDialog: Field =
LoginActivity::class.java.getDeclaredField("progressDialog")
fieldProgressDialog.isAccessible = true
fieldProgressDialog.set(activity, progressDialog)
menuItem = RoboMenuItem(null)
}
@Test
@Throws(Exception::class)
fun checkActivityNotNull() {
Assert.assertNotNull(activity)
}
@Test
@Throws(Exception::class)
fun testShowMessageAndCancelDialog() {
activity.showMessageAndCancelDialog("")
}
@Test
@Throws(Exception::class)
fun testStartMainActivity() {
activity.startMainActivity()
}
@Test
@Throws(Exception::class)
fun testShowMessageAndCancelDialogRes() {
activity.showMessageAndCancelDialog(R.color.secondaryDarkColor)
}
@Test
@Throws(Exception::class)
fun testAskUserForTwoFactorAuth() {
activity.askUserForTwoFactorAuth()
}
@Test
@Throws(Exception::class)
fun testShowSuccessAndDismissDialog() {
activity.showSuccessAndDismissDialog()
}
@Test
@Throws(Exception::class)
fun testOnOptionsItemSelected() {
activity.onOptionsItemSelected(menuItem)
}
}