mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 20:33:53 +01:00
Add WikidataItemDetailsActivity Unit Tests (#4618)
This commit is contained in:
parent
4d2487dcc9
commit
76e48a0616
1 changed files with 187 additions and 0 deletions
|
|
@ -0,0 +1,187 @@
|
||||||
|
package fr.free.nrw.commons.explore.depictions
|
||||||
|
|
||||||
|
import android.content.Intent
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.view.View
|
||||||
|
import android.widget.FrameLayout
|
||||||
|
import androidx.fragment.app.FragmentManager
|
||||||
|
import androidx.viewpager.widget.ViewPager
|
||||||
|
import com.google.android.material.tabs.TabLayout
|
||||||
|
import fr.free.nrw.commons.R
|
||||||
|
import fr.free.nrw.commons.TestAppAdapter
|
||||||
|
import fr.free.nrw.commons.TestCommonsApplication
|
||||||
|
import fr.free.nrw.commons.explore.depictions.media.DepictedImagesFragment
|
||||||
|
import fr.free.nrw.commons.media.MediaDetailPagerFragment
|
||||||
|
import fr.free.nrw.commons.upload.structure.depictions.DepictedItem
|
||||||
|
import org.junit.Assert
|
||||||
|
import org.junit.Before
|
||||||
|
import org.junit.Test
|
||||||
|
import org.junit.runner.RunWith
|
||||||
|
import org.mockito.Mock
|
||||||
|
import org.mockito.Mockito.`when`
|
||||||
|
import org.mockito.MockitoAnnotations
|
||||||
|
import org.powermock.reflect.Whitebox
|
||||||
|
import org.robolectric.Robolectric
|
||||||
|
import org.robolectric.RobolectricTestRunner
|
||||||
|
import org.robolectric.RuntimeEnvironment
|
||||||
|
import org.robolectric.annotation.Config
|
||||||
|
import org.robolectric.annotation.LooperMode
|
||||||
|
import org.robolectric.fakes.RoboMenu
|
||||||
|
import org.robolectric.fakes.RoboMenuItem
|
||||||
|
import org.wikipedia.AppAdapter
|
||||||
|
|
||||||
|
@RunWith(RobolectricTestRunner::class)
|
||||||
|
@Config(sdk = [21], application = TestCommonsApplication::class)
|
||||||
|
@LooperMode(LooperMode.Mode.PAUSED)
|
||||||
|
class WikidataItemDetailsActivityUnitTests {
|
||||||
|
|
||||||
|
private lateinit var activity: WikidataItemDetailsActivity
|
||||||
|
private lateinit var parent: View
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var mediaDetailPagerFragment: MediaDetailPagerFragment
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var depictionImagesListFragment: DepictedImagesFragment
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var supportFragmentManager: FragmentManager
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var depictedItem: DepictedItem
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var mediaContainer: FrameLayout
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var tabLayout: TabLayout
|
||||||
|
|
||||||
|
@Mock
|
||||||
|
private lateinit var viewPager: ViewPager
|
||||||
|
|
||||||
|
@Before
|
||||||
|
fun setUp() {
|
||||||
|
MockitoAnnotations.initMocks(this)
|
||||||
|
AppAdapter.set(TestAppAdapter())
|
||||||
|
val intent = Intent(
|
||||||
|
RuntimeEnvironment.application.applicationContext,
|
||||||
|
WikidataItemDetailsActivity::class.java
|
||||||
|
)
|
||||||
|
intent.putExtra("wikidataItemName", "depictionName")
|
||||||
|
intent.putExtra("entityId", 0)
|
||||||
|
activity =
|
||||||
|
Robolectric.buildActivity(WikidataItemDetailsActivity::class.java, intent).create()
|
||||||
|
.get()
|
||||||
|
Whitebox.setInternalState(activity, "mediaDetailPagerFragment", mediaDetailPagerFragment)
|
||||||
|
Whitebox.setInternalState(
|
||||||
|
activity,
|
||||||
|
"depictionImagesListFragment",
|
||||||
|
depictionImagesListFragment
|
||||||
|
)
|
||||||
|
Whitebox.setInternalState(activity, "supportFragmentManager", supportFragmentManager)
|
||||||
|
|
||||||
|
parent =
|
||||||
|
LayoutInflater.from(activity).inflate(R.layout.activity_wikidata_item_details, null)
|
||||||
|
|
||||||
|
mediaContainer = parent.findViewById(R.id.mediaContainer)
|
||||||
|
Whitebox.setInternalState(activity, "mediaContainer", mediaContainer)
|
||||||
|
|
||||||
|
tabLayout = parent.findViewById(R.id.tab_layout)
|
||||||
|
Whitebox.setInternalState(activity, "tabLayout", tabLayout)
|
||||||
|
|
||||||
|
viewPager = parent.findViewById(R.id.viewPager)
|
||||||
|
Whitebox.setInternalState(activity, "viewPager", viewPager)
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun checkActivityNotNull() {
|
||||||
|
Assert.assertNotNull(activity)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testViewPagerNotifyDataSetChanged() {
|
||||||
|
activity.viewPagerNotifyDataSetChanged()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testGetMediaAtPosition() {
|
||||||
|
activity.getMediaAtPosition(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnBackPressed() {
|
||||||
|
`when`(supportFragmentManager.backStackEntryCount).thenReturn(1)
|
||||||
|
activity.onBackPressed()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnBackPressedCaseReturn() {
|
||||||
|
`when`(supportFragmentManager.backStackEntryCount).thenReturn(1)
|
||||||
|
`when`(mediaDetailPagerFragment.backButtonClicked()).thenReturn(true)
|
||||||
|
activity.onBackPressed()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testGetTotalMediaCount() {
|
||||||
|
activity.totalMediaCount
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testGetContributionStateAt() {
|
||||||
|
Assert.assertEquals(activity.getContributionStateAt(0), null)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testRefreshNominatedMedia() {
|
||||||
|
activity.refreshNominatedMedia(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnCreateOptionsMenu() {
|
||||||
|
Assert.assertEquals(activity.onCreateOptionsMenu(RoboMenu()), true)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnOptionsItemSelectedCaseOne() {
|
||||||
|
Assert.assertEquals(
|
||||||
|
activity.onOptionsItemSelected(RoboMenuItem(R.id.browser_actions_menu_items)),
|
||||||
|
true
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnOptionsItemSelectedCaseTwo() {
|
||||||
|
Assert.assertEquals(activity.onOptionsItemSelected(RoboMenuItem(android.R.id.home)), true)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnOptionsItemSelected() {
|
||||||
|
Assert.assertEquals(activity.onOptionsItemSelected(RoboMenuItem()), false)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testStartYourself() {
|
||||||
|
WikidataItemDetailsActivity.startYourself(activity, depictedItem)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@Throws(Exception::class)
|
||||||
|
fun testOnMediaClicked() {
|
||||||
|
activity.onMediaClicked(0)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue