mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 21:03:54 +01:00
Add few more unit tests for AchievementsFragment (#4272)
This commit is contained in:
parent
8fa26bb00c
commit
64993dfbc8
1 changed files with 199 additions and 0 deletions
|
|
@ -3,8 +3,12 @@ package fr.free.nrw.commons.profile.achievements
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.Bitmap
|
import android.graphics.Bitmap
|
||||||
import android.view.MenuItem
|
import android.view.MenuItem
|
||||||
|
import android.widget.ImageView
|
||||||
|
import android.widget.ProgressBar
|
||||||
|
import android.widget.TextView
|
||||||
import androidx.fragment.app.FragmentManager
|
import androidx.fragment.app.FragmentManager
|
||||||
import androidx.fragment.app.FragmentTransaction
|
import androidx.fragment.app.FragmentTransaction
|
||||||
|
import com.dinuscxj.progressbar.CircleProgressBar
|
||||||
import fr.free.nrw.commons.TestAppAdapter
|
import fr.free.nrw.commons.TestAppAdapter
|
||||||
import fr.free.nrw.commons.TestCommonsApplication
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
import fr.free.nrw.commons.profile.ProfileActivity
|
import fr.free.nrw.commons.profile.ProfileActivity
|
||||||
|
|
@ -14,12 +18,14 @@ import org.junit.Test
|
||||||
import org.junit.runner.RunWith
|
import org.junit.runner.RunWith
|
||||||
import org.mockito.Mock
|
import org.mockito.Mock
|
||||||
import org.mockito.MockitoAnnotations
|
import org.mockito.MockitoAnnotations
|
||||||
|
import org.powermock.reflect.Whitebox
|
||||||
import org.robolectric.Robolectric
|
import org.robolectric.Robolectric
|
||||||
import org.robolectric.RobolectricTestRunner
|
import org.robolectric.RobolectricTestRunner
|
||||||
import org.robolectric.RuntimeEnvironment
|
import org.robolectric.RuntimeEnvironment
|
||||||
import org.robolectric.annotation.Config
|
import org.robolectric.annotation.Config
|
||||||
import org.robolectric.fakes.RoboMenuItem
|
import org.robolectric.fakes.RoboMenuItem
|
||||||
import org.wikipedia.AppAdapter
|
import org.wikipedia.AppAdapter
|
||||||
|
import java.lang.reflect.Method
|
||||||
|
|
||||||
|
|
||||||
@RunWith(RobolectricTestRunner::class)
|
@RunWith(RobolectricTestRunner::class)
|
||||||
|
|
@ -32,9 +38,53 @@ class AchievementsFragmentUnitTests {
|
||||||
|
|
||||||
private lateinit var menuItem: MenuItem
|
private lateinit var menuItem: MenuItem
|
||||||
|
|
||||||
|
private lateinit var achievements: Achievements
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imageView: ImageView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var badgeText: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var levelNumber: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var thanksReceived: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imagesUploadedProgressbar: CircleProgressBar
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imagesUsedByWikiProgressBar: CircleProgressBar
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imageRevertsProgressbar: CircleProgressBar
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imagesFeatured: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var tvQualityImages: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imagesRevertLimitText: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imageByWikiText: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imageRevertedText: TextView
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var imageUploadedText: TextView
|
||||||
|
|
||||||
@Mock
|
@Mock
|
||||||
private lateinit var bitmap: Bitmap
|
private lateinit var bitmap: Bitmap
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var progressBar: ProgressBar
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
fun setUp() {
|
fun setUp() {
|
||||||
MockitoAnnotations.initMocks(this)
|
MockitoAnnotations.initMocks(this)
|
||||||
|
|
@ -48,6 +98,39 @@ class AchievementsFragmentUnitTests {
|
||||||
fragmentTransaction.add(fragment, null)
|
fragmentTransaction.add(fragment, null)
|
||||||
fragmentTransaction.commit()
|
fragmentTransaction.commit()
|
||||||
|
|
||||||
|
achievements = Achievements(0, 0, 0, 0, 0, 0, 0)
|
||||||
|
|
||||||
|
Whitebox.setInternalState(fragment, "thanksReceived", thanksReceived)
|
||||||
|
Whitebox.setInternalState(
|
||||||
|
fragment,
|
||||||
|
"imagesUsedByWikiProgressBar",
|
||||||
|
imagesUsedByWikiProgressBar
|
||||||
|
)
|
||||||
|
Whitebox.setInternalState(
|
||||||
|
fragment,
|
||||||
|
"imagesUsedByWikiProgressBar",
|
||||||
|
imagesUsedByWikiProgressBar
|
||||||
|
)
|
||||||
|
Whitebox.setInternalState(fragment, "imagesFeatured", imagesFeatured)
|
||||||
|
Whitebox.setInternalState(fragment, "tvQualityImages", tvQualityImages)
|
||||||
|
Whitebox.setInternalState(fragment, "levelNumber", levelNumber)
|
||||||
|
Whitebox.setInternalState(fragment, "imageView", imageView)
|
||||||
|
Whitebox.setInternalState(fragment, "badgeText", badgeText)
|
||||||
|
Whitebox.setInternalState(fragment, "imagesUploadedProgressbar", imagesUploadedProgressbar)
|
||||||
|
Whitebox.setInternalState(fragment, "imageRevertsProgressbar", imageRevertsProgressbar)
|
||||||
|
Whitebox.setInternalState(
|
||||||
|
fragment,
|
||||||
|
"imagesUsedByWikiProgressBar",
|
||||||
|
imagesUsedByWikiProgressBar
|
||||||
|
)
|
||||||
|
Whitebox.setInternalState(fragment, "imageView", imageView)
|
||||||
|
Whitebox.setInternalState(fragment, "imageByWikiText", imageByWikiText)
|
||||||
|
Whitebox.setInternalState(fragment, "imageRevertedText", imageRevertedText)
|
||||||
|
Whitebox.setInternalState(fragment, "imageUploadedText", imageUploadedText)
|
||||||
|
Whitebox.setInternalState(fragment, "imageView", imageView)
|
||||||
|
Whitebox.setInternalState(fragment, "progressBar", progressBar)
|
||||||
|
Whitebox.setInternalState(fragment, "imagesRevertLimitText", imagesRevertLimitText)
|
||||||
|
Whitebox.setInternalState(fragment, "item", menuItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
@ -117,4 +200,120 @@ class AchievementsFragmentUnitTests {
|
||||||
fragment.onOptionsItemSelected(menuItem)
|
fragment.onOptionsItemSelected(menuItem)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testLaunchAlert() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"launchAlert",
|
||||||
|
String::class.java,
|
||||||
|
String::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, "", "")
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testHideProgressBar() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"hideProgressBar",
|
||||||
|
Achievements::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, achievements)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testSetAchievementsUploadCount() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"setAchievementsUploadCount",
|
||||||
|
Achievements::class.java,
|
||||||
|
Int::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, achievements, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testCheckAccount() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"checkAccount"
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testSetUploadCount() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"setUploadCount",
|
||||||
|
Achievements::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, achievements)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnError() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"onError"
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testShowSnackBarWithRetryTrue() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"showSnackBarWithRetry", Boolean::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, true)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testShowSnackBarWithRetryFalse() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"showSnackBarWithRetry", Boolean::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, false)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testSetWikidataEditCount() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"setWikidataEditCount"
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testSetAchievements() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"setAchievements"
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testShareScreen() {
|
||||||
|
val method: Method = AchievementsFragment::class.java.getDeclaredMethod(
|
||||||
|
"shareScreen", Bitmap::class.java
|
||||||
|
)
|
||||||
|
method.isAccessible = true
|
||||||
|
method.invoke(fragment, bitmap)
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue