Add Achievements Fragment Tests (#4162)

This commit is contained in:
Madhur Gupta 2021-01-12 06:00:04 +05:30 committed by GitHub
parent 67a9bd56fb
commit 57aab1927a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 191 additions and 0 deletions

View file

@ -0,0 +1,71 @@
package fr.free.nrw.commons;
import androidx.annotation.NonNull;
import okhttp3.OkHttpClient;
import org.wikipedia.AppAdapter;
import org.wikipedia.dataclient.Service;
import org.wikipedia.dataclient.SharedPreferenceCookieManager;
import org.wikipedia.dataclient.WikiSite;
import org.wikipedia.dataclient.okhttp.TestStubInterceptor;
import org.wikipedia.dataclient.okhttp.UnsuccessfulResponseInterceptor;
import org.wikipedia.login.LoginResult;
public class TestAppAdapter extends AppAdapter {
@Override
public String getMediaWikiBaseUrl() {
return Service.WIKIPEDIA_URL;
}
@Override
public String getRestbaseUriFormat() {
return "%1$s://%2$s/api/rest_v1/";
}
@Override
public OkHttpClient getOkHttpClient(@NonNull WikiSite wikiSite) {
return new OkHttpClient.Builder()
.addInterceptor(new UnsuccessfulResponseInterceptor())
.addInterceptor(new TestStubInterceptor())
.build();
}
@Override
public int getDesiredLeadImageDp() {
return 0;
}
@Override
public boolean isLoggedIn() {
return false;
}
@Override
public String getUserName() {
return null;
}
@Override
public String getPassword() {
return null;
}
@Override
public void updateAccount(@NonNull LoginResult result) {
}
@Override
public SharedPreferenceCookieManager getCookies() {
return null;
}
@Override
public void setCookies(@NonNull SharedPreferenceCookieManager cookies) {
}
@Override
public boolean logErrorsInsteadOfCrashing() {
return false;
}
}

View file

@ -0,0 +1,120 @@
package fr.free.nrw.commons.profile.achievements
import android.content.Context
import android.graphics.Bitmap
import android.view.MenuItem
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
import fr.free.nrw.commons.TestAppAdapter
import fr.free.nrw.commons.TestCommonsApplication
import fr.free.nrw.commons.profile.ProfileActivity
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 org.wikipedia.AppAdapter
@RunWith(RobolectricTestRunner::class)
@Config(sdk = [21], application = TestCommonsApplication::class)
class AchievementsFragmentUnitTests {
private lateinit var fragment: AchievementsFragment
private lateinit var context: Context
private lateinit var menuItem: MenuItem
@Mock
private lateinit var bitmap: Bitmap
@Before
fun setUp() {
MockitoAnnotations.initMocks(this)
context = RuntimeEnvironment.application.applicationContext
menuItem = RoboMenuItem(context)
AppAdapter.set(TestAppAdapter())
val activity = Robolectric.buildActivity(ProfileActivity::class.java).create().get()
fragment = AchievementsFragment()
val fragmentManager: FragmentManager = activity.supportFragmentManager
val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.add(fragment, null)
fragmentTransaction.commit()
}
@Test
@Throws(Exception::class)
fun checkFragmentNotNull() {
Assert.assertNotNull(fragment)
}
@Test
@Throws(Exception::class)
fun testShowAlert() {
fragment.showAlert(bitmap)
}
@Test
@Throws(Exception::class)
fun testShowInfoDialog() {
fragment.showInfoDialog()
}
@Test
@Throws(Exception::class)
fun testShowUploadInfo() {
fragment.showUploadInfo()
}
@Test
@Throws(Exception::class)
fun testShowRevertedInfo() {
fragment.showRevertedInfo()
}
@Test
@Throws(Exception::class)
fun testShowUsedByWikiInfo() {
fragment.showUsedByWikiInfo()
}
@Test
@Throws(Exception::class)
fun testShowImagesViaNearbyInfo() {
fragment.showImagesViaNearbyInfo()
}
@Test
@Throws(Exception::class)
fun testShowFeaturedImagesInfo() {
fragment.showFeaturedImagesInfo()
}
@Test
@Throws(Exception::class)
fun testShowThanksReceivedInfo() {
fragment.showThanksReceivedInfo()
}
@Test
@Throws(Exception::class)
fun testShowQualityImagesInfo() {
fragment.showQualityImagesInfo()
}
@Test
@Throws(Exception::class)
fun testOnOptionsItemSelected() {
fragment.onOptionsItemSelected(menuItem)
}
}