-
Notifications
You must be signed in to change notification settings - Fork 557
Introduce new platform parameter system infrastructure #5725
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
…ameters Initial commit, this works with individual overrides while having multiple enable / diasable annotations mess with the overriding and cause the default value to be thrown even with a dummy feature flag name and this commit doesn't address platform parameter value overrides and doesnot check for Oppia Test Rule to be present on all tests.
…or both feature flags and parameter value overrides
…o annotations_test_rules_platform_parameter
…ParameterModule 1 on hold: TopicRevisionTabSpotlight yet to properly migrate 6 more test cases here
Gradle tests couldn't resolve dagger test components, so they need to be double checked on the CI and through bazel tests.
Todo Later: (-minus) ApplicationLifecycleObserverTest, PlatformParameterModuleTest, SurveyGatingControllerTest
PlatformParameterModuleTest, SurveyGatingControllerTest, ApplicationLifecycleObserverTest, SyncStatusManagerImplTest, LogReportingModuleTest, PerformanceMetricsAssessorImplTest
Running them on CI
Running them on CI
Set to false to test override of parameter value
Removed the set up for onboarding V2 flag as both disable and enable were set to enable the v2 flag while none of the activation or change of default values made any effect.
…t and FeatureFlagsLoggerTest back to TestPlatformParameterModule Few test files use TestPlatformParameterModuleConstant values which was provided then by the TestPlatformParameterModule but those were just for testing purposes and not sure how to migrate them to production module since that 10000 would involve mixing both, either they need to be merged to be in one or handled as a separate file for constants just for testing and injected as required (also to be placed at a more appropriate location if required). Todo: 1. Migration of the left 6 files + these 2 -- 2. To remove TestPlatformParameterModule -- 3. To check for OppiaTestRule instance at every test file
…meterModule Todo: 1. Test Module's build file to be refactored, 2. Platform Parameter Overrides, 3. Scan for Oppia Test Rule insertions 4. Remove Test module after (1) and confirm with CI.
Testing it via CI as local run threw OutOfMemoryError - Java heap space Exception.
The Regex Validation returned around 298 test files with a missing oppia test rule and all these files were now included with the rule irrespective of the feature flag usage.
Needs //testing dependency and throws Fingerprint issues without RunWith AndroidJunit4 class.
Also, demonstrate a working nonmodularized test with the new platform parameter testing approach (ProfileChooserFragmentTest).
…t-platform-parameter-system Conflicts: app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/classroom/ClassroomListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/TextInputLayoutBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/TextViewBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/home/RecentlyPlayedFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/mydownloads/MyDownloadsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/IntroFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/parser/HtmlParserTest.kt app/src/sharedTest/java/org/oppia/android/app/player/exploration/BUILD.bazel app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/policies/PoliciesFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/AddProfileActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/PinPasswordActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/ProfileChooserFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/splash/BUILD.bazel app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/spotlight/SpotlightFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/survey/SurveyActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/survey/SurveyFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/TopicTestActivityForStoryTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/TopicActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/TopicFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/info/TopicInfoFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/revision/TopicRevisionFragmentTest.kt app/src/test/java/org/oppia/android/app/activity/ActivityIntentFactoriesTest.kt app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterModuleTest.kt app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterTest.kt app/src/test/java/org/oppia/android/app/home/HomeActivityLocalTest.kt app/src/test/java/org/oppia/android/app/parser/FractionParsingUiErrorTest.kt app/src/test/java/org/oppia/android/app/parser/ListItemLeadingMarginSpanTest.kt app/src/test/java/org/oppia/android/app/parser/StringToRatioParserTest.kt app/src/test/java/org/oppia/android/app/player/exploration/ExplorationActivityLocalTest.kt app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt app/src/test/java/org/oppia/android/app/testing/options/OptionsFragmentTest.kt app/src/test/java/org/oppia/android/app/topic/info/TopicInfoFragmentLocalTest.kt app/src/test/java/org/oppia/android/app/utility/datetime/DateTimeUtilTest.kt app/src/test/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtilTest.kt data/BUILD.bazel data/src/test/java/org/oppia/android/data/backends/gae/NetworkModuleTest.kt domain/BUILD.bazel domain/src/main/java/org/oppia/android/domain/platformparameter/PlatformParameterModule.kt domain/src/test/java/org/oppia/android/domain/audio/AudioPlayerControllerTest.kt domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt domain/src/test/java/org/oppia/android/domain/classify/AnswerClassificationControllerTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputContainsRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputEqualsRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputFuzzyEqualsRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputStartsWithRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt domain/src/test/java/org/oppia/android/domain/clipboard/ClipboardControllerTest.kt domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/devoptions/ShowAllHintsAndSolutionControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressModuleTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt domain/src/test/java/org/oppia/android/domain/feedbackreporting/ReportSchemaVersionTest.kt domain/src/test/java/org/oppia/android/domain/locale/LocaleControllerTest.kt domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt domain/src/test/java/org/oppia/android/domain/onboarding/DeprecationControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/LoggingIdentifierControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleModuleTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleObserverTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModuleTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/LearnerAnalyticsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/SurveyEventsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/FakeLogSchedulerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/PerformanceMetricsLogSchedulerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkManagerInitializerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorkerTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterModuleTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterSingletonTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkManagerInitializerTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerTest.kt domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt domain/src/test/java/org/oppia/android/domain/survey/SurveyControllerTest.kt domain/src/test/java/org/oppia/android/domain/survey/SurveyGatingControllerTest.kt domain/src/test/java/org/oppia/android/domain/survey/SurveyProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/topic/StoryProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/translation/TranslationControllerTest.kt testing/src/main/java/org/oppia/android/testing/platformparameter/BUILD.bazel testing/src/main/java/org/oppia/android/testing/platformparameter/PlatformParameterTestConstants.kt testing/src/test/java/org/oppia/android/testing/espresso/TextInputActionTest.kt testing/src/test/java/org/oppia/android/testing/network/MockPlatformParameterServiceTest.kt testing/src/test/java/org/oppia/android/testing/profile/ProfileTestHelperTest.kt utility/src/main/java/org/oppia/android/util/platformparameter/FeatureFlagConstants.kt utility/src/main/java/org/oppia/android/util/platformparameter/PlatformParameterConstants.kt utility/src/test/java/org/oppia/android/util/logging/EventBundleCreatorTest.kt utility/src/test/java/org/oppia/android/util/logging/SyncStatusManagerImplTest.kt utility/src/test/java/org/oppia/android/util/logging/firebase/LogReportingModuleTest.kt utility/src/test/java/org/oppia/android/util/logging/performancemetrics/PerformanceMetricsAssessorImplTest.kt
This updates the new platform parameter and feature flag test annotations to use the new platform parameter and feature flag ID enums rather than the string-based names that have been removed. Also, updates tests that use them & corresponding wiki documentation. These changes haven't yet been tested or even built.
// Corresponds to a platform parameter whose ID is not known (e.g. invalid or undefined). | ||
PLATFORM_PARAMETER_ID_UNSPECIFIED = 0; | ||
|
||
// TODO: Finish documentation & update the indexes based on creation date of each. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See #5715 (comment).
} | ||
} | ||
|
||
override fun downloadRemoteParameters(): DataProvider<Any?> { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Following up on the discussion reg. "Force Download Remote Parameters' Status Indication" —requesting to include Pending
and Failure
results to support the status indicators planned with #5345.
// Indicates the sync status of the platform parameter. | ||
SyncStatus sync_status = 5; | ||
SyncStatus sync_status = 3; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Following up to confirm if we should proceed with removing the sync_status
field from RemotePlatformParameter
, since a fetched remote value could be treated as default SYNCED_FROM_SERVER
(assuming the current scope).
## Explanation Fixes part of #59 Updates all test module declarations to use one line per module and sort them. This is a large change, but it's been 100% auto-generated using the following code (run from within a script context): ```kotlin fun main(vararg args: String) { // Path of the repo to be analyzed. val repoPath = "${args[0]}/" val testFiles = RepositoryFile.collectSearchFiles( repoPath = repoPath, expectedExtension = ".kt", exemptionsList = emptyList() ).filter { it.nameWithoutExtension.endsWith("Test") } testFiles.forEach { testFile -> val sourceContents = testFile.readText() val modulesPrefix = "modules = [" if (modulesPrefix in sourceContents) { val moduleNames = sourceContents .replace("\n", "") .replace(" ", "") .substringAfter("@component(") .substringAfter("modules=[") .substringBefore("]") .split(",") .mapNotNull { it.takeIf(String::isNotEmpty) } .map { it.removeSuffix("::class") } val realModules = moduleNames.sorted().toSet() val fullyExpandedModules = realModules.joinToString(",\n ") { "$it::class" } val linesToUse = if (realModules.isNotEmpty()) " @component(\n modules = [\n $fullyExpandedModules\n ]\n )" else " @component(modules = [])" val componentPrefix = " @component(" val startIndex = sourceContents.indexOf(componentPrefix) val endIndex = sourceContents.substringAfter(componentPrefix).indexOf(')') + startIndex + componentPrefix.length val newSourceContents = "${sourceContents.substring(0, startIndex)}$linesToUse${sourceContents.substring(endIndex + 1)}" testFile.writeText(newSourceContents) } } } ``` I am content with relying on the above generation (which is specifically designed to avoid dropping components) and CI to ensure that this is correct, though a spot check review would be helpful. There were two classes `AppStartupStateControllerTest` and `DeprecationControllerTest` that required some manual handling due to them both including line comments within their module declarations, but these were easy to fix. Note that this is being done now to simplify a bunch of downstream PRs including #5823 and #5804 which are being done in turn to simplify #5725 (via another not-yet-created PR that will significantly reduce the number of modules references that we need to maintain). This may expand the number of lines of test code, but it's temporary until a few PRs from now when they can be consolidated into new bundle modules (see #5805). ## Essential Checklist - [x] The PR title and explanation each start with "Fix #bugnum: " (If this PR fixes part of an issue, prefix the title with "Fix part of #bugnum: ...".) - [x] Any changes to [scripts/assets](https://github.com/oppia/oppia-android/tree/develop/scripts/assets) files have their rationale included in the PR explanation. - [x] The PR follows the [style guide](https://github.com/oppia/oppia-android/wiki/Coding-style-guide). - [x] The PR does not contain any unnecessary code changes from Android Studio ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#undo-unnecessary-changes)). - [x] The PR is made from a branch that's **not** called "develop" and is up-to-date with "develop". - [x] The PR is ** B41A assigned** to the appropriate reviewers ([reference](https://github.com/oppia/oppia-android/wiki/Guidance-on-submitting-a-PR#clarification-regarding-assignees-and-reviewers-section)). ## For UI-specific PRs only N/A -- This is a purely infrastructural change.
NB: This probably includes extra formatting and module fixes. Conflicts: app/BUILD.bazel app/src/main/java/org/oppia/android/app/application/alpha/AlphaApplicationComponent.kt app/src/main/java/org/oppia/android/app/application/beta/BetaApplicationComponent.kt app/src/main/java/org/oppia/android/app/application/dev/DeveloperApplicationComponent.kt app/src/main/java/org/oppia/android/app/application/ga/GaApplicationComponent.kt app/src/main/java/org/oppia/android/app/testing/SplashTestActivity.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/administratorcontrols/learneranalytics/ProfileAndDeviceIdFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/classroom/ClassroomListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/classroom/ClassroomListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/completedstorylist/CompletedStoryListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/customview/LessonThumbnailImageViewTest.kt app/src/sharedTest/java/org/oppia/android/app/customview/interaction/MathExpressionInteractionsViewTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/AppCompatCheckBoxBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/CircularProgressIndicatorAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/ColorBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/DrawableBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/ImageViewBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/MarginBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/StateAssemblerMarginBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/StateAssemblerPaddingBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/TextInputLayoutBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/TextViewBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/databinding/ViewBindingAdaptersTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/DeveloperOptionsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/DeveloperOptionsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/forcenetworktype/ForceNetworkTypeFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/markchapterscompleted/MarkChaptersCompletedFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/markstoriescompleted/MarkStoriesCompletedFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/marktopicscompleted/MarkTopicsCompletedFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/mathexpressionparser/MathExpressionParserFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/devoptions/vieweventlogs/ViewEventLogsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/help/HelpActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/help/HelpFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/help/faq/FAQListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/help/faq/FAQListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/LicenseTextViewerFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/help/thirdparty/ThirdPartyDependencyListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/home/HomeActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/home/WelcomeViewModelTest.kt app/src/sharedTest/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModelTest.kt app/src/sharedTest/java/org/oppia/android/app/home/promotedlist/PromotedStoryViewModelTest.kt app/src/sharedTest/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/home/topiclist/TopicSummaryViewModelTest.kt app/src/sharedTest/java/org/oppia/android/app/mydownloads/MyDownloadsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/notice/BetaNoticeDialogFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/notice/ForcedAppDeprecationNoticeDialogFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/notice/GeneralAvailabilityUpgradeNoticeDialogFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/notice/OptionalAppDeprecationNoticeDialogFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/notice/OsDeprecationNoticeDialogFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/CreateProfileFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/IntroActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/IntroFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingProfileTypeActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/onboarding/OnboardingProfileTypeFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/ongoingtopiclist/OngoingTopicListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/options/AppLanguageFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/options/AudioLanguageFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/options/OptionsActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/options/OptionsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/options/ReadingTextSizeFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/player/audio/AudioFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/player/exploration/BottomSheetOptionsMenuTest.kt app/src/sharedTest/java/org/oppia/android/app/player/exploration/ExplorationActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/player/state/ImageRegionSelectionInteractionViewTest.kt app/src/sharedTest/java/org/oppia/android/app/player/state/StateFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/policies/PoliciesActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/policies/PoliciesFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/AddProfileActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/AdminAuthActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/AdminPinActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/PinPasswordActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/ProfileChooserActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profile/ProfileChooserFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/profileprogress/ProfilePictureActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profileprogress/ProfileProgressActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/profileprogress/ProfileProgressFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/recyclerview/BindableAdapterTest.kt app/src/sharedTest/java/org/oppia/android/app/resumelesson/ResumeLessonActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/resumelesson/ResumeLessonFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileEditFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileListActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/splash/SplashActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/spotlight/SpotlightFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/story/StoryActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/story/StoryFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/survey/SurveyActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/survey/SurveyFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/DragDropTestActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/FractionInputInteractionViewTestActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/InputInteractionViewTestActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityDebugTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/NavigationDrawerActivityProdTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/RatioInputInteractionViewTestActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/TestFontScaleConfigurationUtilActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/TextInputInteractionViewTestActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/testing/TopicTestActivityForStoryTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/TopicActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/TopicFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/info/TopicInfoFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/practice/TopicPracticeFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/revision/TopicRevisionFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/topic/revisioncard/RevisionCardFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/utility/RatioExtensionsTest.kt app/src/sharedTest/java/org/oppia/android/app/walkthrough/WalkthroughActivityTest.kt app/src/sharedTest/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/walkthrough/topiclist/WalkthroughTopicListFragmentTest.kt app/src/sharedTest/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentTest.kt app/src/test/java/org/oppia/android/app/activity/ActivityIntentFactoriesTest.kt app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterModuleTest.kt app/src/test/java/org/oppia/android/app/activity/route/ActivityRouterTest.kt app/src/test/java/org/oppia/android/app/administratorcontrols/AdministratorControlsFragmentTest.kt app/src/test/java/org/oppia/android/app/home/HomeActivityLocalTest.kt app/src/test/java/org/oppia/android/app/options/OptionsFragmentTest.kt app/src/test/java/org/oppia/android/app/parser/FractionParsingUiErrorTest.kt app/src/test/java/org/oppia/android/app/parser/StringToRatioParserTest.kt app/src/test/java/org/oppia/android/app/player/exploration/ExplorationActivityLocalTest.kt app/src/test/java/org/oppia/android/app/player/state/StateFragmentLocalTest.kt app/src/test/java/org/oppia/android/app/profile/ProfileChooserFragmentLocalTest.kt app/src/test/java/org/oppia/android/app/story/StoryActivityLocalTest.kt app/src/test/java/org/oppia/android/app/testing/CompletedStoryListSpanTest.kt app/src/test/java/org/oppia/android/app/testing/HomeSpanTest.kt app/src/test/java/org/oppia/android/app/testing/OngoingTopicListSpanTest.kt app/src/test/java/org/oppia/android/app/testing/PlatformParameterIntegrationTest.kt app/src/test/java/org/oppia/android/app/testing/ProfileChooserSpanTest.kt app/src/test/java/org/oppia/android/app/testing/ProfileProgressSpanCountTest.kt app/src/test/java/org/oppia/android/app/testing/RecentlyPlayedSpanTest.kt app/src/test/java/org/oppia/android/app/testing/TopicRevisionSpanTest.kt app/src/test/java/org/oppia/android/app/testing/activity/TestActivityTest.kt app/src/test/java/org/oppia/android/app/testing/player/split/PlayerSplitScreenTest.kt app/src/test/java/org/oppia/android/app/testing/player/state/StateFragmentAccessibilityTest.kt app/src/test/java/org/oppia/android/app/topic/info/TopicInfoFragmentLocalTest.kt app/src/test/java/org/oppia/android/app/topic/lessons/TopicLessonsFragmentLocalTest.kt app/src/test/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerActivityLocalTest.kt app/src/test/java/org/oppia/android/app/topic/revisioncard/RevisionCardActivityLocalTest.kt app/src/test/java/org/oppia/android/app/translation/ActivityLanguageLocaleHandlerTest.kt app/src/test/java/org/oppia/android/app/translation/AppLanguageLocaleHandlerTest.kt app/src/test/java/org/oppia/android/app/translation/AppLanguageResourceHandlerTest.kt app/src/test/java/org/oppia/android/app/translation/AppLanguageWatcherMixinTest.kt app/src/test/java/org/oppia/android/app/utility/datetime/DateTimeUtilTest.kt app/src/test/java/org/oppia/android/app/utility/math/MathExpressionAccessibilityUtilTest.kt data/src/test/java/org/oppia/android/data/backends/gae/JsonPrefixNetworkInterceptorTest.kt data/src/test/java/org/oppia/android/data/backends/gae/NetworkConfigProdModuleTest.kt data/src/test/java/org/oppia/android/data/backends/gae/NetworkLoggingInterceptorTest.kt data/src/test/java/org/oppia/android/data F438 /backends/gae/RemoteAuthNetworkInterceptorTest.kt data/src/test/java/org/oppia/android/data/backends/gae/RetrofitModuleTest.kt data/src/test/java/org/oppia/android/data/backends/gae/api/FeedbackReportingServiceTest.kt data/src/test/java/org/oppia/android/data/backends/gae/api/PlatformParameterServiceTest.kt domain/BUILD.bazel domain/src/main/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorker.kt domain/src/test/java/org/oppia/android/domain/audio/AudioPlayerControllerTest.kt domain/src/test/java/org/oppia/android/domain/audio/CellularAudioDialogControllerTest.kt domain/src/test/java/org/oppia/android/domain/auth/AuthenticationControllerTest.kt domain/src/test/java/org/oppia/android/domain/classify/AnswerClassificationControllerTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/DragDropSortInputHasElementXAtPositionYClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/dragAndDropSortInput/DragDropSortInputHasElementXBeforeElementYClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputContainsRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputEqualsRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputFuzzyEqualsRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classify/rules/textinput/TextInputStartsWithRuleClassifierProviderTest.kt domain/src/test/java/org/oppia/android/domain/classroom/ClassroomControllerTest.kt domain/src/test/java/org/oppia/android/domain/clipboard/ClipboardControllerTest.kt domain/src/test/java/org/oppia/android/domain/devoptions/ModifyLessonProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/devoptions/ShowAllHintsAndSolutionControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationActiveTimeControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationDataControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationProgressModuleTest.kt domain/src/test/java/org/oppia/android/domain/exploration/ExplorationStorageModuleTest.kt domain/src/test/java/org/oppia/android/domain/exploration/lightweightcheckpointing/ExplorationCheckpointControllerTest.kt domain/src/test/java/org/oppia/android/domain/exploration/testing/ExplorationStorageTestModuleTest.kt domain/src/test/java/org/oppia/android/domain/feedbackreporting/ReportSchemaVersionTest.kt domain/src/test/java/org/oppia/android/domain/locale/LocaleControllerTest.kt domain/src/test/java/org/oppia/android/domain/onboarding/AppStartupStateControllerTest.kt domain/src/test/java/org/oppia/android/domain/onboarding/DeprecationControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/LoggingIdentifierControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/OppiaLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/AnalyticsControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleModuleTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/ApplicationLifecycleObserverTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/BUILD.bazel domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterModuleTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/CpuPerformanceSnapshotterTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FeatureFlagsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/FirestoreDataControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/LearnerAnalyticsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsControllerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/PerformanceMetricsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/analytics/testing/FakeLogSchedulerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/MetricLogSchedulingWorkerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/logscheduler/PerformanceMetricsLogSchedulerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogReportWorkManagerInitializerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/loguploader/LogUploadWorkerTest.kt domain/src/test/java/org/oppia/android/domain/oppialogger/survey/SurveyEventsLoggerTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterControllerTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/PlatformParameterModuleTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkManagerInitializerTest.kt domain/src/test/java/org/oppia/android/domain/platformparameter/syncup/PlatformParameterSyncUpWorkerTest.kt domain/src/test/java/org/oppia/android/domain/profile/ProfileManagementControllerTest.kt domain/src/test/java/org/oppia/android/domain/question/QuestionAssessmentProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/question/QuestionTrainingControllerTest.kt domain/src/test/java/org/oppia/android/domain/spotlight/SpotlightStateControllerTest.kt domain/src/test/java/org/oppia/android/domain/survey/SurveyControllerTest.kt domain/src/test/java/org/oppia/android/domain/survey/SurveyGatingControllerTest.kt domain/src/test/java/org/oppia/android/domain/survey/SurveyProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/topic/StoryProgressControllerTest.kt domain/src/test/java/org/oppia/android/domain/topic/TopicControllerTest.kt domain/src/test/java/org/oppia/android/domain/topic/TopicListControllerTest.kt domain/src/test/java/org/oppia/android/domain/translation/TranslationControllerTest.kt instrumentation/src/java/org/oppia/android/instrumentation/application/TestApplicationComponent.kt scripts/assets/test_file_exemptions.textproto testing/BUILD.bazel testing/src/main/java/org/oppia/android/testing/network/BUILD.bazel testing/src/main/java/org/oppia/android/testing/network/MockPlatformParameterService.kt testing/src/test/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRuleCustomContextTest.kt testing/src/test/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRuleOmissionTest.kt testing/src/test/java/org/oppia/android/testing/junit/InitializeDefaultLocaleRuleTest.kt testing/src/test/java/org/oppia/android/testing/lightweightcheckpointing/ExplorationCheckpointTestHelperTest.kt testing/src/test/java/org/oppia/android/testing/network/MockPlatformParameterServiceTest.kt testing/src/test/java/org/oppia/android/testing/profile/ProfileTestHelperTest.kt testing/src/test/java/org/oppia/android/testing/story/StoryProgressTestHelperTest.kt utility/src/main/java/org/oppia/android/util/logging/BUILD.bazel utility/src/main/java/org/oppia/android/util/logging/EventBundleCreator.kt utility/src/test/java/org/oppia/android/util/accessibility/FakeAccessibilityServiceTest.kt utility/src/test/java/org/oppia/android/util/extensions/StringExtensionsTest.kt utility/src/test/java/org/oppia/android/util/logging/EventBundleCreatorTest.kt utility/src/test/java/org/oppia/android/util/logging/SyncStatusManagerImplTest.kt utility/src/test/java/org/oppia/android/util/logging/firebase/LogReportingModuleTest.kt utility/src/test/java/org/oppia/android/util/logging/performancemetrics/PerformanceMetricsAssessorImplTest.kt utility/src/test/java/org/oppia/android/util/parser/html/HtmlParserTest.kt utility/src/test/java/org/oppia/android/util/parser/html/ListItemLeadingMarginSpanTest.kt utility/src/test/java/org/oppia/android/util/platformparameter/PlatformParameterSingletonTest.kt
Also removed two utilities that are no longer needed, and updated platform parameter and feature flag protos to have correct orders with reserved IDs. See comment: https://github.com/oppia/oppia-android/pull/5715/files/d685c5b806407828e4dbc31df9f7893b1fbdd43f..179784887876d4e4baa099ac70649166e6980af6#r2032090170
This actually gets one single test working completely with OppiaTestRule: AppStartupStateControllerTest. It also introduces a clean replacement for PlatformParameterTestInitializer.
QuestionModule was incorrectly removed and is being introduced here (but probably in more places than is correct). Also, update AdministratorControlsActivityTest to work with the latest override functionality.
NB This should fix #5676. |
This fixes a bunch of tests being moved over to properly using the new test rule, off of directly tweaking flags using the config retriever, and moving off of using the initializer. There are still many more tests to fix since it seems all tests now must have a test application declared and configured via Robolectric.
This PR is going to be split up in the effort of time. Specifically, my plan is:
|
This comes from #5725. These configurations have been adapted for being interoperable with the existing platform parameter system, but there's downstream work needed yet for actually making the app build and work.
This removes a bunch of stuff from #5725 but introduces some of the initial interop pieces needed to work without substantial integration requirements. A lot more needs to change yet to get the components properly hooked up and the app building, not to mention tests.
The dev build actually opens and runs, though it's still relying on the old parameter values. This also introduces support for flavor-specific overrides, though they are as yet untested. These may have been lost at some point in the development of #5725 since they weren't present in the latest changes.
Hi @BenHenning, I'm going to mark this PR as stale because it hasn't had any updates for 7 days. If no further activity occurs within 7 days, it will be automatically closed so that others can take up the issue. |
#5835 is tracking the remaining work for this PR. I plan to use this PR as the final bit of addressing that issue once the preliminary pieces are done. Closing for now since this won't be completely finished for several weeks yet. |
Explanation
TODO: Finish
Essential Checklist
For UI-specific PRs only
If your PR includes UI-related changes, then: