From 2520ba4c60aefa90bfd5909f51d165778df14e35 Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:49:39 +0530 Subject: [PATCH 01/11] part1 arguments tests commit --- .../app/options/AppLanguageFragment.kt | 2 +- .../app/options/AudioLanguageFragment.kt | 2 +- .../MarkChaptersCompletedFragmentTest.kt | 57 +++++++++++++++++++ .../MarkStoriesCompletedFragmentTest.kt | 48 ++++++++++++++++ .../MarkTopicsCompletedFragmentTest.kt | 46 +++++++++++++++ .../android/app/help/HelpFragmentTest.kt | 31 ++++++++++ .../app/options/AppLanguageFragmentTest.kt | 42 ++++++++++++++ .../app/options/AudioLanguageFragmentTest.kt | 44 ++++++++++++++ .../app/player/audio/AudioFragmentTest.kt | 21 +++++++ .../profile/ProfileEditFragmentTest.kt | 35 ++++++++++++ .../app/thirdparty/LicenseListFragmentTest.kt | 30 ++++++++++ .../conceptcard/ConceptCardFragmentTest.kt | 35 ++++++++++++ 12 files changed, 391 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt b/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt index b946c93555b..303cc6aad9d 100644 --- a/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt +++ b/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt @@ -42,7 +42,7 @@ class AppLanguageFragment : InjectableFragment(), AppLanguageRadioButtonListener } } - private fun Bundle.retrieveLanguageFromArguments(): OppiaLanguage { + fun Bundle.retrieveLanguageFromArguments(): OppiaLanguage { return getProto( FRAGMENT_ARGUMENTS_KEY, AppLanguageFragmentArguments.getDefaultInstance() ).oppiaLanguage diff --git a/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt b/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt index 71ea48ca09e..6ef944986ec 100644 --- a/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt +++ b/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt @@ -84,7 +84,7 @@ class AudioLanguageFragment : InjectableFragment(), AudioLanguageRadioButtonList } } - private fun Bundle.retrieveLanguageFromArguments(): AudioLanguage { + fun Bundle.retrieveLanguageFromArguments(): AudioLanguage { return getProto( FRAGMENT_ARGUMENTS_KEY, AudioLanguageFragmentArguments.getDefaultInstance() ).audioLanguage diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index 8c79da699c3..f24ce8cd8c5 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -109,6 +109,9 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.devoptions.markchapterscompleted.MarkChaptersCompletedFragment +import org.oppia.android.app.model.MarkChaptersCompletedFragmentArguments +import org.oppia.android.util.extensions.getProto /** Tests for [MarkChaptersCompletedFragment]. */ @RunWith(AndroidJUnit4::class) @@ -901,6 +904,60 @@ class MarkChaptersCompletedFragmentTest { } } + @Test + fun testMarkChaptersCompletedFragment_arguments_workingProperly() { + launchMarkChaptersCompletedFragmentTestActivity( + internalProfileId, showConfirmationNotice = true + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + val fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment + val arguments = + checkNotNull(fragment.arguments) { "Expected arguments to be passed to MarkChaptersCompletedFragment" } + val args = arguments.getProto( + "MarkChaptersCompletedFragment.arguments", + MarkChaptersCompletedFragmentArguments.getDefaultInstance() + ) + val receivedInternalProfileId = args?.internalProfileId + val receivedShowConfirmationNotice = args?.showConfirmationNotice + + assertThat(receivedInternalProfileId).isEqualTo(internalProfileId) + assertThat(receivedShowConfirmationNotice).isEqualTo(true) + } + } + } + + @Test + fun testMarkChaptersCompletedFragment_saveInstanceState_workingProperly() { + launchMarkChaptersCompletedFragmentTestActivity( + internalProfileId, showConfirmationNotice = true + ).use { scenario -> + + testCoroutineDispatchers.runCurrent() + onView(withId(R.id.mark_chapters_completed_all_check_box_container)).perform(click()) + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment + val actualSelectedExplorationIds = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + val actualSelectedExplorationTitles = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + + activity.recreate() + + fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment + + val receivedSelectedExplorationIds = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + val receivedSelectedExplorationTitles = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + + assertThat(receivedSelectedExplorationIds).isEqualTo(actualSelectedExplorationIds) + assertThat(receivedSelectedExplorationTitles).isEqualTo(actualSelectedExplorationTitles) + } + } + } + private fun launchMarkChaptersCompletedFragmentTestActivity( internalProfileId: Int, showConfirmationNotice: Boolean = false diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index 19836a42087..60b76df8c3d 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -103,6 +103,8 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.devoptions.markstoriescompleted.MarkStoriesCompletedFragment +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [MarkStoriesCompletedFragment]. */ @RunWith(AndroidJUnit4::class) @@ -469,6 +471,52 @@ class MarkStoriesCompletedFragmentTest { } } + @Test + fun testMarkStoriesCompletedFragment_arguments_workingProperly() { + launch( + createMarkStoriesCompletedTestActivityIntent(internalProfileId) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + val fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment + + val arguments = + checkNotNull(fragment.arguments) { "Expected arguments to be passed to MarkStoriesCompletedFragment" } + val profileId = arguments.extractCurrentUserProfileId() + val receivedInternalProfileId = profileId.internalId + + assertThat(receivedInternalProfileId).isEqualTo(internalProfileId) + } + } + } + + @Test + fun testMarkStoriesCompletedFragment_saveInstanceState_workingProperly() { + launch( + createMarkStoriesCompletedTestActivityIntent(internalProfileId) + ).use { scenario -> + + testCoroutineDispatchers.runCurrent() + onView(withId(R.id.mark_stories_completed_all_check_box_container)).perform(click()) + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment + val actualSelectedStoryIdList = fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + + activity.recreate() + + fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment + val receivedSelectedStoryIdList = fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + + assertThat(receivedSelectedStoryIdList).isEqualTo(actualSelectedStoryIdList) + } + } + } + private fun createMarkStoriesCompletedTestActivityIntent(internalProfileId: Int): Intent { return MarkStoriesCompletedTestActivity.createMarkStoriesCompletedTestIntent( context, internalProfileId diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index dd17bbe74ba..7a2d73ded7c 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -103,6 +103,8 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.devoptions.marktopicscompleted.MarkTopicsCompletedFragment +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [MarkTopicsCompletedFragment]. */ @RunWith(AndroidJUnit4::class) @@ -450,6 +452,50 @@ class MarkTopicsCompletedFragmentTest { } } + @Test + fun testMarkTopicsCompletedFragment_arguments_workingProperly() { + launch( + createMarkTopicsCompletedTestActivityIntent(internalProfileId) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + val arguments = + checkNotNull(fragment.arguments) { "Expected arguments to be passed to MarkTopicsCompletedFragment" } + val receivedProfileId = arguments.extractCurrentUserProfileId() + + assertThat(receivedProfileId).isEqualTo(profileId) + } + } + } + + @Test + fun testMarkTopicsCompletedFragment_saveInstanceState_workingProperly() { + launch( + createMarkTopicsCompletedTestActivityIntent(internalProfileId) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + + fragment.markTopicsCompletedFragmentPresenter.selectedTopicIdList = + arrayListOf("topic_1", "topic_2") + + activity.recreate() + + fragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + + val restoredTopicIdList = fragment.markTopicsCompletedFragmentPresenter.selectedTopicIdList + assertThat(restoredTopicIdList).isEqualTo(listOf("topic_1", "topic_2")) + } + } + } + private fun createMarkTopicsCompletedTestActivityIntent(internalProfileId: Int): Intent { return MarkTopicsCompletedTestActivity.createMarkTopicsCompletedTestIntent( context, internalProfileId diff --git a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt index 508d72bdb2a..3b1473b67cf 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt @@ -2,6 +2,7 @@ package org.oppia.android.app.help import android.app.Application import android.content.Intent +import android.widget.FrameLayout import androidx.appcompat.app.AppCompatActivity import androidx.drawerlayout.widget.DrawerLayout import androidx.recyclerview.widget.RecyclerView @@ -29,6 +30,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.common.truth.Truth.assertThat import dagger.Component import org.hamcrest.Matchers.equalTo import org.junit.After @@ -119,6 +121,8 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.model.HelpFragmentArguments +import org.oppia.android.util.extensions.getProto @RunWith(AndroidJUnit4::class) @LooperMode(LooperMode.Mode.PAUSED) @@ -1374,6 +1378,33 @@ class HelpFragmentTest { } } + @Test + fun testHelpFragment_arguments_workingProperly() { + launch( + createHelpActivityIntent( + internalProfileId = 0, + isFromNavigationDrawer = true + ) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.help_fragment_placeholder) as HelpFragment + val isMultipane = activity.findViewById(R.id.multipane_options_container) != null + + val arguments = checkNotNull(fragment.arguments) { + "Expected arguments to be passed to HelpFragment" + } + val args = + arguments.getProto("HelpFragment.arguments", HelpFragmentArguments.getDefaultInstance()) + val receivedIsMultipane = args.isMultipane + + assertThat(receivedIsMultipane).isEqualTo(isMultipane) + } + } + } + private fun ActivityScenario.openNavigationDrawer() { onView(withContentDescription(R.string.drawer_open_content_description)) .check(matches(isCompletelyDisplayed())) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 62749ba3863..6f11a8e9a55 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -99,6 +99,8 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.options.AppLanguageFragment.Companion.retrieveLanguageFromArguments +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [AppLanguageFragment]. */ @RunWith(AndroidJUnit4::class) @@ -215,6 +217,46 @@ class AppLanguageFragmentTest { } } + @Test + @RunOn(TestPlatform.ESPRESSO) + fun testAppLanguageFragment_arguments_workingProperly() { + launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + val appLanguageFragment = activity.supportFragmentManager + .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment + val recievedLanguage = appLanguageFragment.arguments?.retrieveLanguageFromArguments() + val receivedProfileId = appLanguageFragment.arguments?.extractCurrentUserProfileId()?.internalId + + assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ENGLISH) + assertThat(receivedProfileId).isEqualTo(internalProfileId) + } + } + } + + @Test + @RunOn(TestPlatform.ESPRESSO) + fun testAppLanguageFragment_saveInstanceState_workingProperly() { + launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + var appLanguageFragment = activity.supportFragmentManager + .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment + appLanguageFragment.appLanguageFragmentPresenter.onLanguageSelected(OppiaLanguage.ARABIC) + + activity.recreate() + + appLanguageFragment = activity.supportFragmentManager + .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment + val recievedLanguage = appLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() + + assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ARABIC) + } + } + } + private fun verifyKiswahiliIsSelected(appLanguageActivity: AppLanguageActivity?) { checkSelectedLanguage(index = KISWAHILI_BUTTON_INDEX, expectedLanguageName = "Kiswahili") assertThat(appLanguageActivity?.appLanguageActivityPresenter?.getLanguageSelected()?.name) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index 7ad7462af04..f062fccfc67 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -102,6 +102,7 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.options.AudioLanguageFragment.Companion.retrieveLanguageFromArguments /** Tests for [AudioLanguageFragment]. */ // Function name: test names are conventionally named with underscores. @@ -351,6 +352,49 @@ class AudioLanguageFragmentTest { } } + @Test + fun testAudioLanguageFragment_arguments_workingProperly() { + initializeTestApplicationComponent(enableOnboardingFlowV2 = true) + launch( + createDefaultAudioActivityIntent(ENGLISH_AUDIO_LANGUAGE) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + val fragment = activity.supportFragmentManager + .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment + val receivedAudioLanguage = fragment.arguments?.retrieveLanguageFromArguments() + + assertThat(ENGLISH_AUDIO_LANGUAGE).isEqualTo(receivedAudioLanguage) + } + } + } + + @Test + fun testAudioLanguageFragment_SaveInstanceState_workingProperly() { + initializeTestApplicationComponent(enableOnboardingFlowV2 = true) + launch( + createDefaultAudioActivityIntent(ENGLISH_AUDIO_LANGUAGE) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment + fragment.audioLanguageFragmentPresenterV1.onLanguageSelected(BRAZILIAN_PORTUGUESE_LANGUAGE) + + activity.recreate() + + fragment = activity.supportFragmentManager + .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment + val restoredAudioLanguage = fragment.audioLanguageFragmentPresenterV1.getLanguageSelected() + + assertThat(restoredAudioLanguage).isEqualTo(BRAZILIAN_PORTUGUESE_LANGUAGE) + } + } + } + + private fun launchActivityWithLanguage( audioLanguage: AudioLanguage ): ActivityScenario { diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt index ed37473683f..a843a82db47 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt @@ -23,6 +23,7 @@ import androidx.test.espresso.matcher.ViewMatchers.withContentDescription import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.common.truth.Truth.assertThat import dagger.Component import org.hamcrest.Description import org.hamcrest.Matcher @@ -114,6 +115,7 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** * TODO(#59): Make this test work with Espresso. @@ -343,6 +345,25 @@ class AudioFragmentTest { } } + @Test + fun testAudioFragment_arguments_workingProperly() { + addMediaInfo() + launch( + createAudioFragmentTestIntent(internalProfileId) + ).use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + val audioFragment = activity.supportFragmentManager + .findFragmentById(R.id.audio_fragment_placeholder) as AudioFragment + val receivedProfileId = audioFragment.arguments?.extractCurrentUserProfileId() + + assertThat(receivedProfileId).isEqualTo(profileId) + } + } + } + + private fun withSeekBarPosition(position: Int) = object : TypeSafeMatcher() { override fun describeTo(description: Description) { description.appendText("SeekBar with progress same as $position") diff --git a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt index 37992371629..26fb999ba98 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt @@ -114,6 +114,10 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.model.ProfileEditActivityParams +import org.oppia.android.app.model.ProfileEditFragmentArguments +import org.oppia.android.util.extensions.getProto +import org.oppia.android.util.extensions.getProtoExtra /** Tests for [ProfileEditFragment]. */ // FunctionName: test names are conventionally named with underscores. @@ -473,6 +477,37 @@ class ProfileEditFragmentTest { assertThat(profile.allowInLessonQuickLanguageSwitching).isTrue() } + @Test + fun testProfileEditFragment_arguments_workingProperly() { + launchFragmentTestActivity(internalProfileId = 1).use { scenario -> + scenario.onActivity { activity-> + + val activityArgs = activity.intent.getProtoExtra( + ProfileEditActivity.PROFILE_EDIT_ACTIVITY_PARAMS_KEY, + ProfileEditActivityParams.getDefaultInstance() + ) + val isMultipane = activityArgs?.isMultipane ?: false + + val fragment = activity.supportFragmentManager + .findFragmentById(R.id.profile_edit_fragment_placeholder) as ProfileEditFragment + + val arguments = checkNotNull(fragment.arguments) { + "Expected variables to be passed to ProfileEditFragment" + } + val args = arguments.getProto( + ProfileEditFragment.PROFILE_EDIT_FRAGMENT_ARGUMENTS_KEY, + ProfileEditFragmentArguments.getDefaultInstance() + ) + val receivedInternalProfileId = args.internalProfileId + val receivedIsMultipane = args.isMultipane + + assertThat(receivedInternalProfileId).isEqualTo(1) + assertThat(receivedIsMultipane).isEqualTo(isMultipane) + } + + } + } + private fun launchFragmentTestActivity(internalProfileId: Int) = launch( createProfileEditFragmentTestActivity(context, internalProfileId) diff --git a/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt index 1e2bc4791a7..efa5bbce76b 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt @@ -19,6 +19,7 @@ import androidx.test.espresso.matcher.ViewMatchers.isRoot import androidx.test.espresso.matcher.ViewMatchers.withId import androidx.test.espresso.matcher.ViewMatchers.withText import androidx.test.ext.junit.runners.AndroidJUnit4 +import com.google.common.truth.Truth.assertThat import dagger.Component import org.hamcrest.Matchers.allOf import org.junit.After @@ -102,6 +103,9 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.help.thirdparty.LicenseListFragment +import org.oppia.android.app.model.LicenseListFragmentArguments +import org.oppia.android.util.extensions.getProto /** Tests for [LicenseListFragmentTest]. */ @RunWith(AndroidJUnit4::class) @@ -340,6 +344,32 @@ class LicenseListFragmentTest { } } + @Test + fun testLicenseListFragment_arguments_workingProperly() { + launch(createLicenseListActivity(2)).use { scenario -> + + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + var fragment = activity.supportFragmentManager + .findFragmentById(R.id.license_list_fragment_placeholder) as LicenseListFragment + + val arguments = checkNotNull(fragment.arguments) { + "Expected arguments to be passed to LicenseListFragment" + } + val args = arguments.getProto( + "LicenseListFragment.arguments", + LicenseListFragmentArguments.getDefaultInstance() + ) + val receivedDependencyIndex = args.dependencyIndex + val receivedIsMultipane = args.isMultipane + + assertThat(receivedDependencyIndex).isEqualTo(2) + assertThat(receivedIsMultipane).isEqualTo(false) + } + } + } + private fun createLicenseListActivity(dependencyIndex: Int): Intent { return LicenseListActivity.createLicenseListActivityIntent( ApplicationProvider.getApplicationContext(), diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt index c8ec2292371..5ff0710d9ee 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt @@ -131,6 +131,9 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton +import org.oppia.android.app.model.ConceptCardFragmentArguments +import org.oppia.android.util.extensions.getProto +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [ConceptCardFragment]. */ @RunWith(AndroidJUnit4::class) @@ -492,6 +495,38 @@ class ConceptCardFragmentTest { } } + @Test + fun testConceptCardFragment_arguments_workingProperly() { + launchTestActivity().use { scenario -> + scenario.onActivity { activity -> + + ConceptCardFragment.bringToFrontOrCreateIfNew( + TEST_SKILL_ID_0, + profileId, + activity.supportFragmentManager + ) + val fragmentSkill0 = + activity.supportFragmentManager.fragments.filterIsInstance().single() + + val arguments = checkNotNull(fragmentSkill0.arguments) { + "Expected arguments to be passed to ConceptCardFragment" + } + val args = arguments.getProto( + ConceptCardFragment.CONCEPT_CARD_FRAGMENT_ARGUMENTS_KEY, + ConceptCardFragmentArguments.getDefaultInstance() + ) + val skillId = + checkNotNull(args.skillId) { + "Expected skillId to be passed to ConceptCardFragment" + } + val receivedProfileId = arguments.extractCurrentUserProfileId() + + assertThat(skillId).isEqualTo(TEST_SKILL_ID_0) + assertThat(receivedProfileId).isEqualTo(profileId) + } + } + } + private fun launchTestActivity(): ActivityScenario { val scenario = ActivityScenario.launch( ConceptCardFragmentTestActivity.createIntent(context, profileId) From 0e2b9e945385536008e2abfca92cdc2ef66a8387 Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Mon, 26 Aug 2024 21:55:37 +0530 Subject: [PATCH 02/11] klint issue solved --- .../devoptions/MarkChaptersCompletedFragmentTest.kt | 6 +++--- .../devoptions/MarkStoriesCompletedFragmentTest.kt | 4 ++-- .../app/devoptions/MarkTopicsCompletedFragmentTest.kt | 4 ++-- .../org/oppia/android/app/help/HelpFragmentTest.kt | 4 ++-- .../android/app/options/AppLanguageFragmentTest.kt | 4 ++-- .../android/app/options/AudioLanguageFragmentTest.kt | 3 +-- .../android/app/player/audio/AudioFragmentTest.kt | 3 +-- .../app/settings/profile/ProfileEditFragmentTest.kt | 11 +++++------ .../android/app/thirdparty/LicenseListFragmentTest.kt | 6 +++--- .../app/topic/conceptcard/ConceptCardFragmentTest.kt | 6 +++--- 10 files changed, 24 insertions(+), 27 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index f24ce8cd8c5..0558cab41c7 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -40,8 +40,10 @@ import org.oppia.android.app.application.ApplicationInjectorProvider import org.oppia.android.app.application.ApplicationModule import org.oppia.android.app.application.ApplicationStartupListenerModule import org.oppia.android.app.application.testing.TestingBuildFlavorModule +import org.oppia.android.app.devoptions.markchapterscompleted.MarkChaptersCompletedFragment import org.oppia.android.app.devoptions.markchapterscompleted.testing.MarkChaptersCompletedTestActivity import org.oppia.android.app.model.ChapterPlayState +import org.oppia.android.app.model.MarkChaptersCompletedFragmentArguments import org.oppia.android.app.model.ProfileId import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule import org.oppia.android.app.recyclerview.RecyclerViewMatcher.Companion.atPositionOnView @@ -94,6 +96,7 @@ import org.oppia.android.testing.time.FakeOppiaClockModule import org.oppia.android.util.accessibility.AccessibilityTestModule import org.oppia.android.util.caching.AssetModule import org.oppia.android.util.caching.testing.CachingTestModule +import org.oppia.android.util.extensions.getProto import org.oppia.android.util.gcsresource.GcsResourceModule import org.oppia.android.util.locale.LocaleProdModule import org.oppia.android.util.logging.EventLoggingConfigurationModule @@ -109,9 +112,6 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.devoptions.markchapterscompleted.MarkChaptersCompletedFragment -import org.oppia.android.app.model.MarkChaptersCompletedFragmentArguments -import org.oppia.android.util.extensions.getProto /** Tests for [MarkChaptersCompletedFragment]. */ @RunWith(AndroidJUnit4::class) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index 60b76df8c3d..6d1dcc57c59 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -37,6 +37,7 @@ import org.oppia.android.app.application.ApplicationInjectorProvider import org.oppia.android.app.application.ApplicationModule import org.oppia.android.app.application.ApplicationStartupListenerModule import org.oppia.android.app.application.testing.TestingBuildFlavorModule +import org.oppia.android.app.devoptions.markstoriescompleted.MarkStoriesCompletedFragment import org.oppia.android.app.devoptions.markstoriescompleted.testing.MarkStoriesCompletedTestActivity import org.oppia.android.app.model.ProfileId import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule @@ -99,12 +100,11 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule import org.oppia.android.util.parser.image.GlideImageLoaderModule import org.oppia.android.util.parser.image.ImageParsingModule +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.devoptions.markstoriescompleted.MarkStoriesCompletedFragment -import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [MarkStoriesCompletedFragment]. */ @RunWith(AndroidJUnit4::class) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index 7a2d73ded7c..eb2a11b3f07 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -37,6 +37,7 @@ import org.oppia.android.app.application.ApplicationInjectorProvider import org.oppia.android.app.application.ApplicationModule import org.oppia.android.app.application.ApplicationStartupListenerModule import org.oppia.android.app.application.testing.TestingBuildFlavorModule +import org.oppia.android.app.devoptions.marktopicscompleted.MarkTopicsCompletedFragment import org.oppia.android.app.devoptions.marktopicscompleted.testing.MarkTopicsCompletedTestActivity import org.oppia.android.app.model.ProfileId import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule @@ -99,12 +100,11 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule import org.oppia.android.util.parser.image.GlideImageLoaderModule import org.oppia.android.util.parser.image.ImageParsingModule +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.devoptions.marktopicscompleted.MarkTopicsCompletedFragment -import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [MarkTopicsCompletedFragment]. */ @RunWith(AndroidJUnit4::class) diff --git a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt index 3b1473b67cf..df5b85c55ff 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt @@ -52,6 +52,7 @@ import org.oppia.android.app.devoptions.DeveloperOptionsModule import org.oppia.android.app.devoptions.DeveloperOptionsStarterModule import org.oppia.android.app.help.faq.FAQListActivity import org.oppia.android.app.help.thirdparty.ThirdPartyDependencyListActivity +import org.oppia.android.app.model.HelpFragmentArguments import org.oppia.android.app.model.PoliciesActivityParams import org.oppia.android.app.model.PolicyPage import org.oppia.android.app.model.ProfileId @@ -106,6 +107,7 @@ import org.oppia.android.testing.time.FakeOppiaClockModule import org.oppia.android.util.accessibility.AccessibilityTestModule import org.oppia.android.util.caching.AssetModule import org.oppia.android.util.caching.testing.CachingTestModule +import org.oppia.android.util.extensions.getProto import org.oppia.android.util.gcsresource.GcsResourceModule import org.oppia.android.util.locale.LocaleProdModule import org.oppia.android.util.logging.EventLoggingConfigurationModule @@ -121,8 +123,6 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.model.HelpFragmentArguments -import org.oppia.android.util.extensions.getProto @RunWith(AndroidJUnit4::class) @LooperMode(LooperMode.Mode.PAUSED) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 6f11a8e9a55..af079ae1f2b 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -33,6 +33,7 @@ import org.oppia.android.app.application.testing.TestingBuildFlavorModule import org.oppia.android.app.devoptions.DeveloperOptionsModule import org.oppia.android.app.devoptions.DeveloperOptionsStarterModule import org.oppia.android.app.model.OppiaLanguage +import org.oppia.android.app.options.AppLanguageFragment.Companion.retrieveLanguageFromArguments import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule import org.oppia.android.app.recyclerview.RecyclerViewMatcher.Companion.atPositionOnView import org.oppia.android.app.shim.ViewBindingShimModule @@ -95,12 +96,11 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule import org.oppia.android.util.parser.image.GlideImageLoaderModule import org.oppia.android.util.parser.image.ImageParsingModule +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.options.AppLanguageFragment.Companion.retrieveLanguageFromArguments -import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [AppLanguageFragment]. */ @RunWith(AndroidJUnit4::class) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index f062fccfc67..de454be72a1 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -39,6 +39,7 @@ import org.oppia.android.app.model.AudioLanguage import org.oppia.android.app.model.AudioLanguage.BRAZILIAN_PORTUGUESE_LANGUAGE import org.oppia.android.app.model.AudioLanguage.ENGLISH_AUDIO_LANGUAGE import org.oppia.android.app.model.AudioLanguage.NIGERIAN_PIDGIN_LANGUAGE +import org.oppia.android.app.options.AudioLanguageFragment.Companion.retrieveLanguageFromArguments import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule import org.oppia.android.app.recyclerview.RecyclerViewMatcher.Companion.atPositionOnView import org.oppia.android.app.shim.ViewBindingShimModule @@ -102,7 +103,6 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.options.AudioLanguageFragment.Companion.retrieveLanguageFromArguments /** Tests for [AudioLanguageFragment]. */ // Function name: test names are conventionally named with underscores. @@ -394,7 +394,6 @@ class AudioLanguageFragmentTest { } } - private fun launchActivityWithLanguage( audioLanguage: AudioLanguage ): ActivityScenario { diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt index a843a82db47..d067d410d5d 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt @@ -111,11 +111,11 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule import org.oppia.android.util.parser.image.GlideImageLoaderModule import org.oppia.android.util.parser.image.ImageParsingModule +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** * TODO(#59): Make this test work with Espresso. @@ -363,7 +363,6 @@ class AudioFragmentTest { } } - private fun withSeekBarPosition(position: Int) = object : TypeSafeMatcher() { override fun describeTo(description: Description) { description.appendText("SeekBar with progress same as $position") diff --git a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt index 26fb999ba98..8a7a14286b1 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt @@ -45,6 +45,8 @@ import org.oppia.android.app.devoptions.DeveloperOptionsStarterModule import org.oppia.android.app.devoptions.markchapterscompleted.MarkChaptersCompletedActivity import org.oppia.android.app.devoptions.markchapterscompleted.MarkChaptersCompletedActivity.Companion.MARK_CHAPTERS_COMPLETED_ACTIVITY_PARAMS import org.oppia.android.app.model.MarkChaptersCompletedActivityParams +import org.oppia.android.app.model.ProfileEditActivityParams +import org.oppia.android.app.model.ProfileEditFragmentArguments import org.oppia.android.app.model.ProfileId import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule import org.oppia.android.app.shim.ViewBindingShimModule @@ -100,6 +102,8 @@ import org.oppia.android.util.accessibility.AccessibilityTestModule import org.oppia.android.util.caching.AssetModule import org.oppia.android.util.caching.testing.CachingTestModule import org.oppia.android.util.data.DataProviders.Companion.toLiveData +import org.oppia.android.util.extensions.getProto +import org.oppia.android.util.extensions.getProtoExtra import org.oppia.android.util.gcsresource.GcsResourceModule import org.oppia.android.util.locale.LocaleProdModule import org.oppia.android.util.logging.EventLoggingConfigurationModule @@ -114,10 +118,6 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.model.ProfileEditActivityParams -import org.oppia.android.app.model.ProfileEditFragmentArguments -import org.oppia.android.util.extensions.getProto -import org.oppia.android.util.extensions.getProtoExtra /** Tests for [ProfileEditFragment]. */ // FunctionName: test names are conventionally named with underscores. @@ -480,7 +480,7 @@ class ProfileEditFragmentTest { @Test fun testProfileEditFragment_arguments_workingProperly() { launchFragmentTestActivity(internalProfileId = 1).use { scenario -> - scenario.onActivity { activity-> + scenario.onActivity { activity -> val activityArgs = activity.intent.getProtoExtra( ProfileEditActivity.PROFILE_EDIT_ACTIVITY_PARAMS_KEY, @@ -504,7 +504,6 @@ class ProfileEditFragmentTest { assertThat(receivedInternalProfileId).isEqualTo(1) assertThat(receivedIsMultipane).isEqualTo(isMultipane) } - } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt index efa5bbce76b..5c438ce1351 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt @@ -40,7 +40,9 @@ import org.oppia.android.app.application.testing.TestingBuildFlavorModule import org.oppia.android.app.devoptions.DeveloperOptionsModule import org.oppia.android.app.devoptions.DeveloperOptionsStarterModule import org.oppia.android.app.help.thirdparty.LicenseListActivity +import org.oppia.android.app.help.thirdparty.LicenseListFragment import org.oppia.android.app.help.thirdparty.LicenseTextViewerActivity +import org.oppia.android.app.model.LicenseListFragmentArguments import org.oppia.android.app.player.state.itemviewmodel.SplitScreenInteractionModule import org.oppia.android.app.recyclerview.RecyclerViewMatcher.Companion.atPosition import org.oppia.android.app.shim.ViewBindingShimModule @@ -88,6 +90,7 @@ import org.oppia.android.testing.time.FakeOppiaClockModule import org.oppia.android.util.accessibility.AccessibilityTestModule import org.oppia.android.util.caching.AssetModule import org.oppia.android.util.caching.testing.CachingTestModule +import org.oppia.android.util.extensions.getProto import org.oppia.android.util.gcsresource.GcsResourceModule import org.oppia.android.util.locale.LocaleProdModule import org.oppia.android.util.logging.EventLoggingConfigurationModule @@ -103,9 +106,6 @@ import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.help.thirdparty.LicenseListFragment -import org.oppia.android.app.model.LicenseListFragmentArguments -import org.oppia.android.util.extensions.getProto /** Tests for [LicenseListFragmentTest]. */ @RunWith(AndroidJUnit4::class) diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt index 5ff0710d9ee..3fd45fcd950 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt @@ -56,6 +56,7 @@ import org.oppia.android.app.application.testing.TestingBuildFlavorModule import org.oppia.android.app.devoptions.DeveloperOptionsModule import org.oppia.android.app.devoptions.DeveloperOptionsStarterModule import org.oppia.android.app.fragment.InjectableDialogFragment +import org.oppia.android.app.model.ConceptCardFragmentArguments import org.oppia.android.app.model.OppiaLanguage import org.oppia.android.app.model.ProfileId import org.oppia.android.app.model.WrittenTranslationLanguageSelection @@ -116,6 +117,7 @@ import org.oppia.android.util.accessibility.AccessibilityTestModule import org.oppia.android.util.caching.AssetModule import org.oppia.android.util.caching.LoadImagesFromAssets import org.oppia.android.util.caching.LoadLessonProtosFromAssets +import org.oppia.android.util.extensions.getProto import org.oppia.android.util.gcsresource.GcsResourceModule import org.oppia.android.util.locale.LocaleProdModule import org.oppia.android.util.logging.EventLoggingConfigurationModule @@ -127,13 +129,11 @@ import org.oppia.android.util.networking.NetworkConnectionUtilDebugModule import org.oppia.android.util.parser.html.HtmlParserEntityTypeModule import org.oppia.android.util.parser.image.GlideImageLoaderModule import org.oppia.android.util.parser.image.ImageParsingModule +import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId import org.robolectric.annotation.Config import org.robolectric.annotation.LooperMode import javax.inject.Inject import javax.inject.Singleton -import org.oppia.android.app.model.ConceptCardFragmentArguments -import org.oppia.android.util.extensions.getProto -import org.oppia.android.util.profile.CurrentUserProfileIdIntentDecorator.extractCurrentUserProfileId /** Tests for [ConceptCardFragment]. */ @RunWith(AndroidJUnit4::class) From f099dee205a38e07b6f42e62e73d3d943db63d39 Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:01:15 +0530 Subject: [PATCH 03/11] try to solved klint --- .../MarkChaptersCompletedFragmentTest.kt | 38 ++++++++++++------- .../MarkStoriesCompletedFragmentTest.kt | 10 +++-- .../MarkTopicsCompletedFragmentTest.kt | 4 +- .../android/app/help/HelpFragmentTest.kt | 3 +- .../app/options/AppLanguageFragmentTest.kt | 29 +++++++------- 5 files changed, 53 insertions(+), 31 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index 0558cab41c7..6069acbc3c3 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -121,15 +121,23 @@ import javax.inject.Singleton qualifiers = "port-xxhdpi" ) class MarkChaptersCompletedFragmentTest { - @get:Rule val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() - @get:Rule val oppiaTestRule = OppiaTestRule() - - @Inject lateinit var storyProgressTestHelper: StoryProgressTestHelper - @Inject lateinit var storyProgressController: StoryProgressController - @Inject lateinit var fakeOppiaClock: FakeOppiaClock - @Inject lateinit var testCoroutineDispatchers: TestCoroutineDispatchers - @Inject lateinit var context: Context - @Inject lateinit var monitorFactory: DataProviderTestMonitor.Factory + @get:Rule + val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() + @get:Rule + val oppiaTestRule = OppiaTestRule() + + @Inject + lateinit var storyProgressTestHelper: StoryProgressTestHelper + @Inject + lateinit var storyProgressController: StoryProgressController + @Inject + lateinit var fakeOppiaClock: FakeOppiaClock + @Inject + lateinit var testCoroutineDispatchers: TestCoroutineDispatchers + @Inject + lateinit var context: Context + @Inject + lateinit var monitorFactory: DataProviderTestMonitor.Factory private val internalProfileId = 0 private lateinit var profileId: ProfileId @@ -941,16 +949,20 @@ class MarkChaptersCompletedFragmentTest { var fragment = activity.supportFragmentManager .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment - val actualSelectedExplorationIds = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds - val actualSelectedExplorationTitles = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + val actualSelectedExplorationIds = + fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + val actualSelectedExplorationTitles = + fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles activity.recreate() fragment = activity.supportFragmentManager .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment - val receivedSelectedExplorationIds = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds - val receivedSelectedExplorationTitles = fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + val receivedSelectedExplorationIds = + fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + val receivedSelectedExplorationTitles = + fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles assertThat(receivedSelectedExplorationIds).isEqualTo(actualSelectedExplorationIds) assertThat(receivedSelectedExplorationTitles).isEqualTo(actualSelectedExplorationTitles) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index 6d1dcc57c59..d9be0a5b192 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -483,7 +483,9 @@ class MarkStoriesCompletedFragmentTest { .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment val arguments = - checkNotNull(fragment.arguments) { "Expected arguments to be passed to MarkStoriesCompletedFragment" } + checkNotNull(fragment.arguments) { + "Expected arguments to be passed to MarkStoriesCompletedFragment" + } val profileId = arguments.extractCurrentUserProfileId() val receivedInternalProfileId = profileId.internalId @@ -504,13 +506,15 @@ class MarkStoriesCompletedFragmentTest { var fragment = activity.supportFragmentManager .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment - val actualSelectedStoryIdList = fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + val actualSelectedStoryIdList = + fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList activity.recreate() fragment = activity.supportFragmentManager .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment - val receivedSelectedStoryIdList = fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + val receivedSelectedStoryIdList = + fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList assertThat(receivedSelectedStoryIdList).isEqualTo(actualSelectedStoryIdList) } diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index eb2a11b3f07..929e29f5b52 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -463,7 +463,9 @@ class MarkTopicsCompletedFragmentTest { var fragment = activity.supportFragmentManager .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment val arguments = - checkNotNull(fragment.arguments) { "Expected arguments to be passed to MarkTopicsCompletedFragment" } + checkNotNull(fragment.arguments) { + "Expected arguments to be passed to MarkTopicsCompletedFragment" + } val receivedProfileId = arguments.extractCurrentUserProfileId() assertThat(receivedProfileId).isEqualTo(profileId) diff --git a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt index df5b85c55ff..bd2fb4bc1e6 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt @@ -1391,7 +1391,8 @@ class HelpFragmentTest { var fragment = activity.supportFragmentManager .findFragmentById(R.id.help_fragment_placeholder) as HelpFragment - val isMultipane = activity.findViewById(R.id.multipane_options_container) != null + val isMultipane = + activity.findViewById(R.id.multipane_options_container) != null val arguments = checkNotNull(fragment.arguments) { "Expected arguments to be passed to HelpFragment" diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index af079ae1f2b..781018ef667 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -220,19 +220,21 @@ class AppLanguageFragmentTest { @Test @RunOn(TestPlatform.ESPRESSO) fun testAppLanguageFragment_arguments_workingProperly() { - launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)).use { scenario -> - testCoroutineDispatchers.runCurrent() - scenario.onActivity { activity -> - - val appLanguageFragment = activity.supportFragmentManager - .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment - val recievedLanguage = appLanguageFragment.arguments?.retrieveLanguageFromArguments() - val receivedProfileId = appLanguageFragment.arguments?.extractCurrentUserProfileId()?.internalId - - assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ENGLISH) - assertThat(receivedProfileId).isEqualTo(internalProfileId) + launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) + .use { scenario -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> + + val appLanguageFragment = activity.supportFragmentManager + .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment + val recievedLanguage = appLanguageFragment.arguments?.retrieveLanguageFromArguments() + val receivedProfileId = + appLanguageFragment.arguments?.extractCurrentUserProfileId()?.internalId + + assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ENGLISH) + assertThat(receivedProfileId).isEqualTo(internalProfileId) + } } - } } @Test @@ -250,7 +252,8 @@ class AppLanguageFragmentTest { appLanguageFragment = activity.supportFragmentManager .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment - val recievedLanguage = appLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() + val recievedLanguage = + appLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ARABIC) } From 2db4f3dbf3a28e4b5011b0ae916e416795d07685 Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:07:48 +0530 Subject: [PATCH 04/11] commit --- .../app/devoptions/MarkChaptersCompletedFragmentTest.kt | 4 +++- .../org/oppia/android/app/options/AppLanguageFragmentTest.kt | 3 ++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index 6069acbc3c3..e95b3fdb6c7 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -923,7 +923,9 @@ class MarkChaptersCompletedFragmentTest { val fragment = activity.supportFragmentManager .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment val arguments = - checkNotNull(fragment.arguments) { "Expected arguments to be passed to MarkChaptersCompletedFragment" } + checkNotNull(fragment.arguments) { + "Expected arguments to be passed to MarkChaptersCompletedFragment" + } val args = arguments.getProto( "MarkChaptersCompletedFragment.arguments", MarkChaptersCompletedFragmentArguments.getDefaultInstance() diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 781018ef667..7dc209a8c2c 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -240,7 +240,8 @@ class AppLanguageFragmentTest { @Test @RunOn(TestPlatform.ESPRESSO) fun testAppLanguageFragment_saveInstanceState_workingProperly() { - launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)).use { scenario -> + launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) + .use { scenario -> testCoroutineDispatchers.runCurrent() scenario.onActivity { activity -> From 72f1b75cc5819715b53a834388f1a4053fca9366 Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Mon, 26 Aug 2024 22:10:29 +0530 Subject: [PATCH 05/11] indentation solved --- .../app/options/AppLanguageFragmentTest.kt | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 7dc209a8c2c..037309c887f 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -242,23 +242,23 @@ class AppLanguageFragmentTest { fun testAppLanguageFragment_saveInstanceState_workingProperly() { launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) .use { scenario -> - testCoroutineDispatchers.runCurrent() - scenario.onActivity { activity -> + testCoroutineDispatchers.runCurrent() + scenario.onActivity { activity -> - var appLanguageFragment = activity.supportFragmentManager - .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment - appLanguageFragment.appLanguageFragmentPresenter.onLanguageSelected(OppiaLanguage.ARABIC) + var appLanguageFragment = activity.supportFragmentManager + .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment + appLanguageFragment.appLanguageFragmentPresenter.onLanguageSelected(OppiaLanguage.ARABIC) - activity.recreate() + activity.recreate() - appLanguageFragment = activity.supportFragmentManager - .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment - val recievedLanguage = - appLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() + appLanguageFragment = activity.supportFragmentManager + .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment + val recievedLanguage = + appLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() - assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ARABIC) + assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ARABIC) + } } - } } private fun verifyKiswahiliIsSelected(appLanguageActivity: AppLanguageActivity?) { From 9d8c16fe0b2e84f869842d419267f4b0a34808cb Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Tue, 27 Aug 2024 12:25:25 +0530 Subject: [PATCH 06/11] add null checks in fragement test --- .../MarkChaptersCompletedFragmentTest.kt | 27 ++++++++++++------- .../MarkStoriesCompletedFragmentTest.kt | 20 +++++++++----- .../MarkTopicsCompletedFragmentTest.kt | 20 +++++++++----- .../app/options/AudioLanguageFragmentTest.kt | 18 ++++++++----- 4 files changed, 55 insertions(+), 30 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index e95b3fdb6c7..b5b4d34d259 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -950,24 +950,31 @@ class MarkChaptersCompletedFragmentTest { scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment + .findFragmentById(R.id.mark_chapters_completed_container) as? MarkChaptersCompletedFragment + + assertThat(fragment).isNotNull() + val actualSelectedExplorationIds = - fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + fragment?.markChaptersCompletedFragmentPresenter?.serializableSelectedExplorationIds val actualSelectedExplorationTitles = - fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + fragment?.markChaptersCompletedFragmentPresenter?.serializableSelectedExplorationTitles activity.recreate() fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment + .findFragmentById(R.id.mark_chapters_completed_container) as? MarkChaptersCompletedFragment + + assertThat(fragment).isNotNull() - val receivedSelectedExplorationIds = - fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds - val receivedSelectedExplorationTitles = - fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + fragment?.let { + val receivedSelectedExplorationIds = + it.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + val receivedSelectedExplorationTitles = + it.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles - assertThat(receivedSelectedExplorationIds).isEqualTo(actualSelectedExplorationIds) - assertThat(receivedSelectedExplorationTitles).isEqualTo(actualSelectedExplorationTitles) + assertThat(receivedSelectedExplorationIds).isEqualTo(actualSelectedExplorationIds) + assertThat(receivedSelectedExplorationTitles).isEqualTo(actualSelectedExplorationTitles) + } } } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index d9be0a5b192..e0054dfa01b 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -495,7 +495,7 @@ class MarkStoriesCompletedFragmentTest { } @Test - fun testMarkStoriesCompletedFragment_saveInstanceState_workingProperly() { + fun testMarkStoriesCompletedFragment_saveInstanceState_workProperly() { launch( createMarkStoriesCompletedTestActivityIntent(internalProfileId) ).use { scenario -> @@ -505,18 +505,24 @@ class MarkStoriesCompletedFragmentTest { scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment + .findFragmentById(R.id.mark_stories_completed_container) as? MarkStoriesCompletedFragment + assertThat(fragment).isNotNull() + val actualSelectedStoryIdList = - fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + fragment?.markStoriesCompletedFragmentPresenter?.selectedStoryIdList activity.recreate() fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment - val receivedSelectedStoryIdList = - fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + .findFragmentById(R.id.mark_stories_completed_container) as? MarkStoriesCompletedFragment + assertThat(fragment).isNotNull() + + fragment?.let { + val receivedSelectedStoryIdList = + it.markStoriesCompletedFragmentPresenter.selectedStoryIdList - assertThat(receivedSelectedStoryIdList).isEqualTo(actualSelectedStoryIdList) + assertThat(receivedSelectedStoryIdList).isEqualTo(actualSelectedStoryIdList) + } } } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index 929e29f5b52..51ae2976a38 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -474,26 +474,32 @@ class MarkTopicsCompletedFragmentTest { } @Test - fun testMarkTopicsCompletedFragment_saveInstanceState_workingProperly() { + fun testMarkTopicsCompletedFragment_saveInstanceState_workProperly() { launch( createMarkTopicsCompletedTestActivityIntent(internalProfileId) ).use { scenario -> testCoroutineDispatchers.runCurrent() + onView(withId(R.id.mark_topics_completed_all_check_box_container)).perform(click()) scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + .findFragmentById(R.id.mark_topics_completed_container) as? MarkTopicsCompletedFragment + assertThat(fragment).isNotNull() - fragment.markTopicsCompletedFragmentPresenter.selectedTopicIdList = - arrayListOf("topic_1", "topic_2") + val actualSelectedTopicsList = + fragment?.markTopicsCompletedFragmentPresenter?.selectedTopicIdList activity.recreate() fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + .findFragmentById(R.id.mark_topics_completed_container) as? MarkTopicsCompletedFragment + assertThat(fragment).isNotNull() + + fragment?.let { + val restoredTopicIdList = it.markTopicsCompletedFragmentPresenter.selectedTopicIdList - val restoredTopicIdList = fragment.markTopicsCompletedFragmentPresenter.selectedTopicIdList - assertThat(restoredTopicIdList).isEqualTo(listOf("topic_1", "topic_2")) + assertThat(restoredTopicIdList).isEqualTo(actualSelectedTopicsList) + } } } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index de454be72a1..646dc724a06 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -371,25 +371,31 @@ class AudioLanguageFragmentTest { } @Test - fun testAudioLanguageFragment_SaveInstanceState_workingProperly() { + fun testAudioLanguageFragment_SaveInstanceState_workProperly() { initializeTestApplicationComponent(enableOnboardingFlowV2 = true) launch( createDefaultAudioActivityIntent(ENGLISH_AUDIO_LANGUAGE) ).use { scenario -> + testCoroutineDispatchers.runCurrent() scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment - fragment.audioLanguageFragmentPresenterV1.onLanguageSelected(BRAZILIAN_PORTUGUESE_LANGUAGE) + .findFragmentById(R.id.audio_language_fragment_container) as? AudioLanguageFragment + assertThat(fragment).isNotNull() + fragment?.audioLanguageFragmentPresenterV1?.onLanguageSelected(BRAZILIAN_PORTUGUESE_LANGUAGE) activity.recreate() fragment = activity.supportFragmentManager - .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment - val restoredAudioLanguage = fragment.audioLanguageFragmentPresenterV1.getLanguageSelected() + .findFragmentById(R.id.audio_language_fragment_container) as? AudioLanguageFragment + assertThat(fragment).isNotNull() + + fragment?.let { + val restoredAudioLanguage = it.audioLanguageFragmentPresenterV1.getLanguageSelected() - assertThat(restoredAudioLanguage).isEqualTo(BRAZILIAN_PORTUGUESE_LANGUAGE) + assertThat(restoredAudioLanguage).isEqualTo(BRAZILIAN_PORTUGUESE_LANGUAGE) + } } } } From 81406b90a8f2f945a07600fcf287f19e772a0a6e Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Tue, 27 Aug 2024 12:28:26 +0530 Subject: [PATCH 07/11] solved klit issue --- .../app/devoptions/MarkChaptersCompletedFragmentTest.kt | 6 ++++-- .../oppia/android/app/options/AudioLanguageFragmentTest.kt | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index b5b4d34d259..b69adcbec11 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -950,7 +950,8 @@ class MarkChaptersCompletedFragmentTest { scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_chapters_completed_container) as? MarkChaptersCompletedFragment + .findFragmentById(R.id.mark_chapters_completed_container) + as? MarkChaptersCompletedFragment assertThat(fragment).isNotNull() @@ -962,7 +963,8 @@ class MarkChaptersCompletedFragmentTest { activity.recreate() fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_chapters_completed_container) as? MarkChaptersCompletedFragment + .findFragmentById(R.id.mark_chapters_completed_container) + as? MarkChaptersCompletedFragment assertThat(fragment).isNotNull() diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index 646dc724a06..cdede470f0d 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -383,7 +383,9 @@ class AudioLanguageFragmentTest { var fragment = activity.supportFragmentManager .findFragmentById(R.id.audio_language_fragment_container) as? AudioLanguageFragment assertThat(fragment).isNotNull() - fragment?.audioLanguageFragmentPresenterV1?.onLanguageSelected(BRAZILIAN_PORTUGUESE_LANGUAGE) + + fragment?.audioLanguageFragmentPresenterV1?. + onLanguageSelected(BRAZILIAN_PORTUGUESE_LANGUAGE) activity.recreate() From 82bca48fb493588a48d5cee892509294b99e8d9e Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Tue, 27 Aug 2024 12:36:20 +0530 Subject: [PATCH 08/11] solved --- .../app/options/AudioLanguageFragmentTest.kt | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index cdede470f0d..95cf4d8328f 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -118,12 +118,17 @@ class AudioLanguageFragmentTest { private const val NIGERIAN_PIDGIN_BUTTON_INDEX = 4 } - @get:Rule val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() - @get:Rule val oppiaTestRule = OppiaTestRule() - - @Inject lateinit var context: Context - @Inject lateinit var profileTestHelper: ProfileTestHelper - @Inject lateinit var testCoroutineDispatchers: TestCoroutineDispatchers + @get:Rule + val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() + @get:Rule + val oppiaTestRule = OppiaTestRule() + + @Inject + lateinit var context: Context + @Inject + lateinit var profileTestHelper: ProfileTestHelper + @Inject + lateinit var testCoroutineDispatchers: TestCoroutineDispatchers @After fun tearDown() { @@ -384,8 +389,9 @@ class AudioLanguageFragmentTest { .findFragmentById(R.id.audio_language_fragment_container) as? AudioLanguageFragment assertThat(fragment).isNotNull() - fragment?.audioLanguageFragmentPresenterV1?. - onLanguageSelected(BRAZILIAN_PORTUGUESE_LANGUAGE) + fragment?.audioLanguageFragmentPresenterV1?.onLanguageSelected( + BRAZILIAN_PORTUGUESE_LANGUAGE + ) activity.recreate() From 09370674923cef86cf6a55f6c8deca94102ba04a Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Thu, 29 Aug 2024 20:51:57 +0530 Subject: [PATCH 09/11] solved saveinstance using scenario recreate --- .../app/options/AppLanguageFragment.kt | 1 + .../app/options/AudioLanguageFragment.kt | 1 + .../MarkChaptersCompletedFragmentTest.kt | 71 ++++++++----------- .../MarkStoriesCompletedFragmentTest.kt | 32 ++++----- .../MarkTopicsCompletedFragmentTest.kt | 30 ++++---- .../app/options/AppLanguageFragmentTest.kt | 19 ++--- .../app/options/AudioLanguageFragmentTest.kt | 30 ++++---- 7 files changed, 82 insertions(+), 102 deletions(-) diff --git a/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt b/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt index 303cc6aad9d..477b78c49fd 100644 --- a/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt +++ b/app/src/main/java/org/oppia/android/app/options/AppLanguageFragment.kt @@ -42,6 +42,7 @@ class AppLanguageFragment : InjectableFragment(), AppLanguageRadioButtonListener } } + /** Returns the [OppiaLanguage] stored in the fragment's arguments. */ fun Bundle.retrieveLanguageFromArguments(): OppiaLanguage { return getProto( FRAGMENT_ARGUMENTS_KEY, AppLanguageFragmentArguments.getDefaultInstance() diff --git a/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt b/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt index 6ef944986ec..4cb067f8cc7 100644 --- a/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt +++ b/app/src/main/java/org/oppia/android/app/options/AudioLanguageFragment.kt @@ -84,6 +84,7 @@ class AudioLanguageFragment : InjectableFragment(), AudioLanguageRadioButtonList } } + /** Returns the [AudioLanguage] stored in the fragment's arguments. */ fun Bundle.retrieveLanguageFromArguments(): AudioLanguage { return getProto( FRAGMENT_ARGUMENTS_KEY, AudioLanguageFragmentArguments.getDefaultInstance() diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index b69adcbec11..32314a45687 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -121,23 +121,15 @@ import javax.inject.Singleton qualifiers = "port-xxhdpi" ) class MarkChaptersCompletedFragmentTest { - @get:Rule - val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() - @get:Rule - val oppiaTestRule = OppiaTestRule() - - @Inject - lateinit var storyProgressTestHelper: StoryProgressTestHelper - @Inject - lateinit var storyProgressController: StoryProgressController - @Inject - lateinit var fakeOppiaClock: FakeOppiaClock - @Inject - lateinit var testCoroutineDispatchers: TestCoroutineDispatchers - @Inject - lateinit var context: Context - @Inject - lateinit var monitorFactory: DataProviderTestMonitor.Factory + @get:Rule val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() + @get:Rule val oppiaTestRule = OppiaTestRule() + + @Inject lateinit var storyProgressTestHelper: StoryProgressTestHelper + @Inject lateinit var storyProgressController: StoryProgressController + @Inject lateinit var fakeOppiaClock: FakeOppiaClock + @Inject lateinit var testCoroutineDispatchers: TestCoroutineDispatchers + @Inject lateinit var context: Context + @Inject lateinit var monitorFactory: DataProviderTestMonitor.Factory private val internalProfileId = 0 private lateinit var profileId: ProfileId @@ -940,43 +932,38 @@ class MarkChaptersCompletedFragmentTest { } @Test - fun testMarkChaptersCompletedFragment_saveInstanceState_workingProperly() { + fun testMarkChaptersCompletedFragment_saveInstanceState_restoresCorrectly() { launchMarkChaptersCompletedFragmentTestActivity( internalProfileId, showConfirmationNotice = true ).use { scenario -> - testCoroutineDispatchers.runCurrent() onView(withId(R.id.mark_chapters_completed_all_check_box_container)).perform(click()) - scenario.onActivity { activity -> + var actualSelectedExplorationIds = ArrayList() + var actualSelectedExplorationTitles = ArrayList() + scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_chapters_completed_container) - as? MarkChaptersCompletedFragment - - assertThat(fragment).isNotNull() - - val actualSelectedExplorationIds = - fragment?.markChaptersCompletedFragmentPresenter?.serializableSelectedExplorationIds - val actualSelectedExplorationTitles = - fragment?.markChaptersCompletedFragmentPresenter?.serializableSelectedExplorationTitles + .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment - activity.recreate() + actualSelectedExplorationIds = + fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + actualSelectedExplorationTitles = + fragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + } - fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_chapters_completed_container) - as? MarkChaptersCompletedFragment + scenario.recreate() - assertThat(fragment).isNotNull() + scenario.onActivity { activity-> + val newFragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment - fragment?.let { - val receivedSelectedExplorationIds = - it.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds - val receivedSelectedExplorationTitles = - it.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles + val receivedSelectedExplorationIds = + newFragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationIds + val receivedSelectedExplorationTitles = + newFragment.markChaptersCompletedFragmentPresenter.serializableSelectedExplorationTitles - assertThat(receivedSelectedExplorationIds).isEqualTo(actualSelectedExplorationIds) - assertThat(receivedSelectedExplorationTitles).isEqualTo(actualSelectedExplorationTitles) - } + assertThat(receivedSelectedExplorationIds).isEqualTo(actualSelectedExplorationIds) + assertThat(receivedSelectedExplorationTitles).isEqualTo(actualSelectedExplorationTitles) } } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index e0054dfa01b..da2cb690f65 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -495,34 +495,30 @@ class MarkStoriesCompletedFragmentTest { } @Test - fun testMarkStoriesCompletedFragment_saveInstanceState_workProperly() { + fun testMarkStoriesCompletedFragment_saveInstanceState_restoresCorrectly() { launch( createMarkStoriesCompletedTestActivityIntent(internalProfileId) ).use { scenario -> - testCoroutineDispatchers.runCurrent() onView(withId(R.id.mark_stories_completed_all_check_box_container)).perform(click()) - scenario.onActivity { activity -> + var actualSelectedStoryIdList = ArrayList() + scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_stories_completed_container) as? MarkStoriesCompletedFragment - assertThat(fragment).isNotNull() - - val actualSelectedStoryIdList = - fragment?.markStoriesCompletedFragmentPresenter?.selectedStoryIdList - - activity.recreate() + .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment + actualSelectedStoryIdList = + fragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList + } - fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_stories_completed_container) as? MarkStoriesCompletedFragment - assertThat(fragment).isNotNull() + scenario.recreate() - fragment?.let { - val receivedSelectedStoryIdList = - it.markStoriesCompletedFragmentPresenter.selectedStoryIdList + scenario.onActivity { activity-> + val newFragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment + val receivedSelectedStoryIdList = + newFragment.markStoriesCompletedFragmentPresenter.selectedStoryIdList - assertThat(receivedSelectedStoryIdList).isEqualTo(actualSelectedStoryIdList) - } + assertThat(receivedSelectedStoryIdList).isEqualTo(actualSelectedStoryIdList) } } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index 51ae2976a38..819313a7374 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -474,32 +474,30 @@ class MarkTopicsCompletedFragmentTest { } @Test - fun testMarkTopicsCompletedFragment_saveInstanceState_workProperly() { + fun testMarkTopicsCompletedFragment_saveInstanceState_restoresCorrectly() { launch( createMarkTopicsCompletedTestActivityIntent(internalProfileId) ).use { scenario -> testCoroutineDispatchers.runCurrent() onView(withId(R.id.mark_topics_completed_all_check_box_container)).perform(click()) - scenario.onActivity { activity -> + var actualSelectedTopicsList = ArrayList() + scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_topics_completed_container) as? MarkTopicsCompletedFragment - assertThat(fragment).isNotNull() - - val actualSelectedTopicsList = - fragment?.markTopicsCompletedFragmentPresenter?.selectedTopicIdList - - activity.recreate() + .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + actualSelectedTopicsList = + fragment.markTopicsCompletedFragmentPresenter.selectedTopicIdList + } - fragment = activity.supportFragmentManager - .findFragmentById(R.id.mark_topics_completed_container) as? MarkTopicsCompletedFragment - assertThat(fragment).isNotNull() + scenario.recreate() - fragment?.let { - val restoredTopicIdList = it.markTopicsCompletedFragmentPresenter.selectedTopicIdList + scenario.onActivity { activity-> + val newFragment = activity.supportFragmentManager + .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment + val restoredTopicIdList = + newFragment.markTopicsCompletedFragmentPresenter.selectedTopicIdList - assertThat(restoredTopicIdList).isEqualTo(actualSelectedTopicsList) - } + assertThat(restoredTopicIdList).isEqualTo(actualSelectedTopicsList) } } } diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 037309c887f..449813819ea 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -218,7 +218,6 @@ class AppLanguageFragmentTest { } @Test - @RunOn(TestPlatform.ESPRESSO) fun testAppLanguageFragment_arguments_workingProperly() { launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) .use { scenario -> @@ -238,29 +237,31 @@ class AppLanguageFragmentTest { } @Test - @RunOn(TestPlatform.ESPRESSO) - fun testAppLanguageFragment_saveInstanceState_workingProperly() { + fun testAppLanguageFragment_saveInstanceState_restoresCorrectly() { launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) .use { scenario -> testCoroutineDispatchers.runCurrent() - scenario.onActivity { activity -> + scenario.onActivity { activity -> var appLanguageFragment = activity.supportFragmentManager .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment appLanguageFragment.appLanguageFragmentPresenter.onLanguageSelected(OppiaLanguage.ARABIC) + } - activity.recreate() + scenario.recreate() - appLanguageFragment = activity.supportFragmentManager + scenario.onActivity { activity-> + val newAppLanguageFragment = activity.supportFragmentManager .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment - val recievedLanguage = - appLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() + val restoredLanguage = + newAppLanguageFragment.appLanguageFragmentPresenter.getLanguageSelected() - assertThat(recievedLanguage).isEqualTo(OppiaLanguage.ARABIC) + assertThat(restoredLanguage).isEqualTo(OppiaLanguage.ARABIC) } } } + private fun verifyKiswahiliIsSelected(appLanguageActivity: AppLanguageActivity?) { checkSelectedLanguage(index = KISWAHILI_BUTTON_INDEX, expectedLanguageName = "Kiswahili") assertThat(appLanguageActivity?.appLanguageActivityPresenter?.getLanguageSelected()?.name) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index 95cf4d8328f..c7061d67f03 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -376,34 +376,30 @@ class AudioLanguageFragmentTest { } @Test - fun testAudioLanguageFragment_SaveInstanceState_workProperly() { + fun testAudioLanguageFragment_saveInstanceState_restoresCorrectly() { initializeTestApplicationComponent(enableOnboardingFlowV2 = true) launch( createDefaultAudioActivityIntent(ENGLISH_AUDIO_LANGUAGE) ).use { scenario -> - testCoroutineDispatchers.runCurrent() - scenario.onActivity { activity -> + var language: AudioLanguage? = null + scenario.onActivity { activity -> var fragment = activity.supportFragmentManager - .findFragmentById(R.id.audio_language_fragment_container) as? AudioLanguageFragment - assertThat(fragment).isNotNull() - - fragment?.audioLanguageFragmentPresenterV1?.onLanguageSelected( - BRAZILIAN_PORTUGUESE_LANGUAGE - ) + .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment + language = fragment.audioLanguageFragmentPresenterV1.getLanguageSelected() - activity.recreate() + } - fragment = activity.supportFragmentManager - .findFragmentById(R.id.audio_language_fragment_container) as? AudioLanguageFragment - assertThat(fragment).isNotNull() + scenario.recreate() - fragment?.let { - val restoredAudioLanguage = it.audioLanguageFragmentPresenterV1.getLanguageSelected() + scenario.onActivity { activity-> + val newfragment = activity.supportFragmentManager + .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment + val restoredAudioLanguage = + newfragment.audioLanguageFragmentPresenterV1.getLanguageSelected() - assertThat(restoredAudioLanguage).isEqualTo(BRAZILIAN_PORTUGUESE_LANGUAGE) - } + assertThat(restoredAudioLanguage).isEqualTo(language) } } } From 6962a93a2193f99da8e0f9c74c50abf0b7ab8400 Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Thu, 29 Aug 2024 21:00:03 +0530 Subject: [PATCH 10/11] solve klint issue --- .../app/devoptions/MarkChaptersCompletedFragmentTest.kt | 2 +- .../android/app/devoptions/MarkStoriesCompletedFragmentTest.kt | 2 +- .../android/app/devoptions/MarkTopicsCompletedFragmentTest.kt | 2 +- .../org/oppia/android/app/options/AppLanguageFragmentTest.kt | 3 +-- .../org/oppia/android/app/options/AudioLanguageFragmentTest.kt | 3 +-- 5 files changed, 5 insertions(+), 7 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index 32314a45687..5f0f50747ef 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -953,7 +953,7 @@ class MarkChaptersCompletedFragmentTest { scenario.recreate() - scenario.onActivity { activity-> + scenario.onActivity { activity -> val newFragment = activity.supportFragmentManager .findFragmentById(R.id.mark_chapters_completed_container) as MarkChaptersCompletedFragment diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index da2cb690f65..d03139b2426 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -512,7 +512,7 @@ class MarkStoriesCompletedFragmentTest { scenario.recreate() - scenario.onActivity { activity-> + scenario.onActivity { activity -> val newFragment = activity.supportFragmentManager .findFragmentById(R.id.mark_stories_completed_container) as MarkStoriesCompletedFragment val receivedSelectedStoryIdList = diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index 819313a7374..a5c294fdaa1 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -491,7 +491,7 @@ class MarkTopicsCompletedFragmentTest { scenario.recreate() - scenario.onActivity { activity-> + scenario.onActivity { activity -> val newFragment = activity.supportFragmentManager .findFragmentById(R.id.mark_topics_completed_container) as MarkTopicsCompletedFragment val restoredTopicIdList = diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 449813819ea..807c2d0f586 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -250,7 +250,7 @@ class AppLanguageFragmentTest { scenario.recreate() - scenario.onActivity { activity-> + scenario.onActivity { activity -> val newAppLanguageFragment = activity.supportFragmentManager .findFragmentById(R.id.app_language_fragment_container) as AppLanguageFragment val restoredLanguage = @@ -261,7 +261,6 @@ class AppLanguageFragmentTest { } } - private fun verifyKiswahiliIsSelected(appLanguageActivity: AppLanguageActivity?) { checkSelectedLanguage(index = KISWAHILI_BUTTON_INDEX, expectedLanguageName = "Kiswahili") assertThat(appLanguageActivity?.appLanguageActivityPresenter?.getLanguageSelected()?.name) diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index c7061d67f03..92aa5a3ecdd 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -388,12 +388,11 @@ class AudioLanguageFragmentTest { var fragment = activity.supportFragmentManager .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment language = fragment.audioLanguageFragmentPresenterV1.getLanguageSelected() - } scenario.recreate() - scenario.onActivity { activity-> + scenario.onActivity { activity -> val newfragment = activity.supportFragmentManager .findFragmentById(R.id.audio_language_fragment_container) as AudioLanguageFragment val restoredAudioLanguage = From a1359a91d143688f4cbed160e5d8f6921e208b0e Mon Sep 17 00:00:00 2001 From: Subhajit Mallick <153619690+subhajitxyz@users.noreply.github.com> Date: Tue, 3 Sep 2024 22:13:32 +0530 Subject: [PATCH 11/11] Tests name correction --- .../app/devoptions/MarkChaptersCompletedFragmentTest.kt | 4 ++-- .../app/devoptions/MarkStoriesCompletedFragmentTest.kt | 4 ++-- .../android/app/devoptions/MarkTopicsCompletedFragmentTest.kt | 4 ++-- .../java/org/oppia/android/app/help/HelpFragmentTest.kt | 2 +- .../org/oppia/android/app/options/AppLanguageFragmentTest.kt | 4 ++-- .../oppia/android/app/options/AudioLanguageFragmentTest.kt | 4 ++-- .../org/oppia/android/app/player/audio/AudioFragmentTest.kt | 2 +- .../android/app/settings/profile/ProfileEditFragmentTest.kt | 2 +- .../oppia/android/app/thirdparty/LicenseListFragmentTest.kt | 2 +- .../android/app/topic/conceptcard/ConceptCardFragmentTest.kt | 2 +- 10 files changed, 15 insertions(+), 15 deletions(-) diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt index 5f0f50747ef..2ce4a9323ab 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkChaptersCompletedFragmentTest.kt @@ -905,7 +905,7 @@ class MarkChaptersCompletedFragmentTest { } @Test - fun testMarkChaptersCompletedFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launchMarkChaptersCompletedFragmentTestActivity( internalProfileId, showConfirmationNotice = true ).use { scenario -> @@ -932,7 +932,7 @@ class MarkChaptersCompletedFragmentTest { } @Test - fun testMarkChaptersCompletedFragment_saveInstanceState_restoresCorrectly() { + fun testFragment_saveInstanceState_verifyCorrectStateRestored() { launchMarkChaptersCompletedFragmentTestActivity( internalProfileId, showConfirmationNotice = true ).use { scenario -> diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt index d03139b2426..f8ab0bbacef 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkStoriesCompletedFragmentTest.kt @@ -472,7 +472,7 @@ class MarkStoriesCompletedFragmentTest { } @Test - fun testMarkStoriesCompletedFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launch( createMarkStoriesCompletedTestActivityIntent(internalProfileId) ).use { scenario -> @@ -495,7 +495,7 @@ class MarkStoriesCompletedFragmentTest { } @Test - fun testMarkStoriesCompletedFragment_saveInstanceState_restoresCorrectly() { + fun testFragment_saveInstanceState_verifyCorrectStateRestored() { launch( createMarkStoriesCompletedTestActivityIntent(internalProfileId) ).use { scenario -> diff --git a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt index a5c294fdaa1..91cc3ee71f2 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/devoptions/MarkTopicsCompletedFragmentTest.kt @@ -453,7 +453,7 @@ class MarkTopicsCompletedFragmentTest { } @Test - fun testMarkTopicsCompletedFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launch( createMarkTopicsCompletedTestActivityIntent(internalProfileId) ).use { scenario -> @@ -474,7 +474,7 @@ class MarkTopicsCompletedFragmentTest { } @Test - fun testMarkTopicsCompletedFragment_saveInstanceState_restoresCorrectly() { + fun testFragment_saveInstanceState_verifyCorrectStateRestored() { launch( createMarkTopicsCompletedTestActivityIntent(internalProfileId) ).use { scenario -> diff --git a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt index bd2fb4bc1e6..e378a684dd9 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt @@ -1379,7 +1379,7 @@ class HelpFragmentTest { } @Test - fun testHelpFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launch( createHelpActivityIntent( internalProfileId = 0, diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt index 807c2d0f586..074985b485b 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt @@ -218,7 +218,7 @@ class AppLanguageFragmentTest { } @Test - fun testAppLanguageFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) .use { scenario -> testCoroutineDispatchers.runCurrent() @@ -237,7 +237,7 @@ class AppLanguageFragmentTest { } @Test - fun testAppLanguageFragment_saveInstanceState_restoresCorrectly() { + fun testFragment_saveInstanceState_verifyCorrectStateRestored() { launch(createAppLanguageActivityIntent(OppiaLanguage.ENGLISH)) .use { scenario -> testCoroutineDispatchers.runCurrent() diff --git a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt index 92aa5a3ecdd..b8aed771aaa 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt @@ -358,7 +358,7 @@ class AudioLanguageFragmentTest { } @Test - fun testAudioLanguageFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { initializeTestApplicationComponent(enableOnboardingFlowV2 = true) launch( createDefaultAudioActivityIntent(ENGLISH_AUDIO_LANGUAGE) @@ -376,7 +376,7 @@ class AudioLanguageFragmentTest { } @Test - fun testAudioLanguageFragment_saveInstanceState_restoresCorrectly() { + fun testFragment_saveInstanceState_verifyCorrectStateRestored() { initializeTestApplicationComponent(enableOnboardingFlowV2 = true) launch( createDefaultAudioActivityIntent(ENGLISH_AUDIO_LANGUAGE) diff --git a/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt index d067d410d5d..382327eb863 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt @@ -346,7 +346,7 @@ class AudioFragmentTest { } @Test - fun testAudioFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { addMediaInfo() launch( createAudioFragmentTestIntent(internalProfileId) diff --git a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt index 8a7a14286b1..811072493a6 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt @@ -478,7 +478,7 @@ class ProfileEditFragmentTest { } @Test - fun testProfileEditFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launchFragmentTestActivity(internalProfileId = 1).use { scenario -> scenario.onActivity { activity -> diff --git a/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt index 5c438ce1351..5e6a627b086 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/thirdparty/LicenseListFragmentTest.kt @@ -345,7 +345,7 @@ class LicenseListFragmentTest { } @Test - fun testLicenseListFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launch(createLicenseListActivity(2)).use { scenario -> testCoroutineDispatchers.runCurrent() diff --git a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt index 3fd45fcd950..ac21622d80e 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt @@ -496,7 +496,7 @@ class ConceptCardFragmentTest { } @Test - fun testConceptCardFragment_arguments_workingProperly() { + fun testFragment_fragmentLoaded_verifyCorrectArgumentsPassed() { launchTestActivity().use { scenario -> scenario.onActivity { activity ->