diff --git a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentTest.kt index ca237fbd195..187744a7ca7 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentTest.kt @@ -67,7 +67,7 @@ import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModu import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.AccessibilityTestRule +import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.espresso.EditTextInputAction import org.oppia.android.testing.espresso.TextInputAction.Companion.hasErrorText @@ -104,7 +104,7 @@ class ProfileRenameFragmentTest { val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() @get:Rule - val accessibilityTestRule = AccessibilityTestRule() + val oppiaTestRule = OppiaTestRule() @Inject lateinit var context: Context diff --git a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentTest.kt b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentTest.kt index 021dfba520c..4308d16cfd3 100644 --- a/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentTest.kt +++ b/app/src/sharedTest/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentTest.kt @@ -68,7 +68,7 @@ import org.oppia.android.domain.platformparameter.PlatformParameterSingletonModu import org.oppia.android.domain.question.QuestionModule import org.oppia.android.domain.topic.PrimeTopicAssetsControllerModule import org.oppia.android.domain.workmanager.WorkManagerConfigurationModule -import org.oppia.android.testing.AccessibilityTestRule +import org.oppia.android.testing.OppiaTestRule import org.oppia.android.testing.TestLogReportingModule import org.oppia.android.testing.espresso.EditTextInputAction import org.oppia.android.testing.espresso.TextInputAction.Companion.hasErrorText @@ -107,7 +107,7 @@ class ProfileResetPinFragmentTest { val initializeDefaultLocaleRule = InitializeDefaultLocaleRule() @get:Rule - val accessibilityTestRule = AccessibilityTestRule() + val oppiaTestRule = OppiaTestRule() @get:Rule val activityTestRule: ActivityTestRule = ActivityTestRule( diff --git a/testing/src/main/java/org/oppia/android/testing/AccessibilityTestRule.kt b/testing/src/main/java/org/oppia/android/testing/AccessibilityTestRule.kt deleted file mode 100644 index 4f7fb9ac428..00000000000 --- a/testing/src/main/java/org/oppia/android/testing/AccessibilityTestRule.kt +++ /dev/null @@ -1,71 +0,0 @@ -package org.oppia.android.testing - -import android.os.Build -import androidx.test.espresso.accessibility.AccessibilityChecks -import androidx.test.espresso.matcher.ViewMatchers.withClassName -import androidx.test.espresso.matcher.ViewMatchers.withContentDescription -import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesCheckNames -import com.google.android.apps.common.testing.accessibility.framework.AccessibilityCheckResultUtils.matchesViews -import org.hamcrest.CoreMatchers.`is` -import org.hamcrest.CoreMatchers.allOf -import org.hamcrest.CoreMatchers.endsWith -import org.junit.rules.TestRule -import org.junit.runner.Description -import org.junit.runners.model.Statement - -// TODO(#3351): Merge AccessibilityTestRule with OppiaTestRule. -private const val DEFAULT_ENABLED_STATE = true - -/** - * JUnit rule to enable [AccessibilityChecks] on Espresso. This does not work when run on Robolectric. - * - * Reference: https://developer.android.com/training/testing/espresso/accessibility-checking - */ -class AccessibilityTestRule : TestRule { - override fun apply(base: Statement?, description: Description?): Statement { - return object : Statement() { - override fun evaluate() { - val isEnabled = description.areAccessibilityChecksEnabled() - if (getCurrentPlatform() == TestPlatform.ESPRESSO && isEnabled) { - AccessibilityChecks.enable().apply { - // Suppressing failures for all views which matches with below conditions as we do not - // want to change the UI to pass these failures as it will change the expected behaviour - // for learner. - setSuppressingResultMatcher( - allOf( - matchesCheckNames(`is`("TouchTargetSizeViewCheck")), - matchesViews(withContentDescription("More options")), - matchesViews(withClassName(endsWith("OverflowMenuButton"))) - ) - ) - }.setRunChecksFromRootView(true) - } - base?.evaluate() - } - } - } - - private fun getCurrentPlatform(): TestPlatform { - return if (Build.FINGERPRINT.contains("robolectric", ignoreCase = true)) { - TestPlatform.ROBOLECTRIC - } else { - TestPlatform.ESPRESSO - } - } - - private companion object { - private fun Description?.areAccessibilityChecksEnabled(): Boolean { - val methodAccessibilityStatus = this?.areAccessibilityTestsEnabledForMethod() - val classAccessibilityStatus = this?.testClass?.areAccessibilityTestsEnabledForClass() - return methodAccessibilityStatus ?: classAccessibilityStatus ?: DEFAULT_ENABLED_STATE - } - - private fun Description.areAccessibilityTestsEnabledForMethod(): Boolean { - return getAnnotation(DisableAccessibilityChecks::class.java) == null - } - - private fun Class.areAccessibilityTestsEnabledForClass(): Boolean { - return getAnnotation(DisableAccessibilityChecks::class.java) == null - } - } -}