Reduce comments by using helper functions in subpages tests
As per go/java-practices/comments#what_for
go/unit-testing-practices#helpers
Bug: 265771201
Test: atest SafetyCenterFunctionalTestCases
Change-Id: Iaf00bddc60e0e9734d933be4fc509f717c4231a3
diff --git a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/PrivacySubpageTest.kt b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/PrivacySubpageTest.kt
index e8480b6..67e44f5 100644
--- a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/PrivacySubpageTest.kt
+++ b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/PrivacySubpageTest.kt
@@ -43,6 +43,7 @@
import com.android.safetycenter.testing.UiTestHelper.waitAllTextDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitButtonDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitDisplayed
+import com.android.safetycenter.testing.UiTestHelper.waitPageTitleDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitSourceIssueDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitSourceIssueNotDisplayed
import org.junit.After
@@ -187,7 +188,7 @@
context.launchSafetyCenterActivity(extras) {
openPageAndExit("Location Settings") {
- waitDisplayed(By.desc("Location"))
+ waitPageTitleDisplayed("Location")
waitAllTextDisplayed("Use location")
}
diff --git a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt
index bcbde2a..3c456a1 100644
--- a/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt
+++ b/tests/functional/safetycenter/singleuser/src/android/safetycenter/functional/ui/SafetyCenterSubpagesTest.kt
@@ -47,14 +47,20 @@
import com.android.safetycenter.testing.SafetySourceReceiver
import com.android.safetycenter.testing.SafetySourceTestData
import com.android.safetycenter.testing.UiTestHelper.MORE_ISSUES_LABEL
+import com.android.safetycenter.testing.UiTestHelper.clickConfirmDismissal
+import com.android.safetycenter.testing.UiTestHelper.clickDismissIssueCard
import com.android.safetycenter.testing.UiTestHelper.clickMoreIssuesCard
+import com.android.safetycenter.testing.UiTestHelper.clickOpenSubpage
+import com.android.safetycenter.testing.UiTestHelper.clickSubpageBrandChip
import com.android.safetycenter.testing.UiTestHelper.resetRotation
import com.android.safetycenter.testing.UiTestHelper.rotate
import com.android.safetycenter.testing.UiTestHelper.waitAllTextDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitAllTextNotDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitButtonDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitDisplayed
-import com.android.safetycenter.testing.UiTestHelper.waitNotDisplayed
+import com.android.safetycenter.testing.UiTestHelper.waitGroupShownOnHomepage
+import com.android.safetycenter.testing.UiTestHelper.waitPageTitleDisplayed
+import com.android.safetycenter.testing.UiTestHelper.waitPageTitleNotDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitSourceIssueDisplayed
import com.android.safetycenter.testing.UiTestHelper.waitSourceIssueNotDisplayed
import org.junit.After
@@ -108,15 +114,14 @@
@Test
fun launchSafetyCenter_withSubpagesIntentExtra_showsSubpageTitle() {
val config = safetyCenterTestConfigs.multipleSourceGroupsConfig
+ val sourceGroup = config.safetySourcesGroups.first()!!
safetyCenterTestHelper.setConfig(config)
val extras = Bundle()
extras.putString(EXTRA_SAFETY_SOURCES_GROUP_ID, MULTIPLE_SOURCES_GROUP_ID_1)
context.launchSafetyCenterActivity(extras) {
// CollapsingToolbar title can't be found by text, so using description instead.
- waitDisplayed(
- By.desc(context.getString(config.safetySourcesGroups.first()!!.titleResId))
- )
+ waitPageTitleDisplayed(context.getString(sourceGroup.titleResId))
}
}
@@ -129,22 +134,21 @@
context.launchSafetyCenterActivity(extras) {
// CollapsingToolbar title can't be found by text, so using description instead.
- waitDisplayed(By.desc("Security & privacy"))
+ waitPageTitleDisplayed("Security & privacy")
}
}
@Test
fun launchSafetyCenter_withNonExistingGroupID_opensHomepageAsFallback() {
val config = safetyCenterTestConfigs.multipleSourceGroupsConfig
+ val sourceGroup = config.safetySourcesGroups.first()!!
safetyCenterTestHelper.setConfig(config)
val extras = Bundle()
extras.putString(EXTRA_SAFETY_SOURCES_GROUP_ID, "non_existing_group_id")
context.launchSafetyCenterActivity(extras) {
- waitNotDisplayed(
- By.desc(context.getString(config.safetySourcesGroups.first()!!.titleResId))
- )
- waitDisplayed(By.desc("Security & privacy"))
+ waitPageTitleNotDisplayed(context.getString(sourceGroup.titleResId))
+ waitPageTitleDisplayed("Security & privacy")
}
}
@@ -173,8 +177,7 @@
)
openPageAndExit(context.getString(lastGroup.titleResId)) {
- // Verifying that the subpage is opened with collapsing toolbar title
- waitDisplayed(By.desc(context.getString(lastGroup.titleResId)))
+ waitPageTitleDisplayed(context.getString(lastGroup.titleResId))
waitAllTextNotDisplayed(context.getString(lastGroup.summaryResId))
}
}
@@ -222,23 +225,14 @@
safetyCenterTestConfigs.multipleSourceGroupsConfig.safetySourcesGroups.first()
context.launchSafetyCenterActivity {
- // Verifying that both entry title and summary are displayed on homepage
- waitAllTextDisplayed(
- context.getString(firstGroup.titleResId),
- context.getString(firstGroup.summaryResId)
- )
+ waitGroupShownOnHomepage(context, firstGroup)
openPageAndExit(context.getString(firstGroup.titleResId)) {
- // Verifying that only collapsing toolbar title is displayed for subpage
- waitDisplayed(By.desc(context.getString(firstGroup.titleResId)))
+ waitPageTitleDisplayed(context.getString(firstGroup.titleResId))
waitAllTextNotDisplayed(context.getString(firstGroup.summaryResId))
}
- // Verifying that the homepage is opened again
- waitAllTextDisplayed(
- context.getString(firstGroup.titleResId),
- context.getString(firstGroup.summaryResId)
- )
+ waitGroupShownOnHomepage(context, firstGroup)
}
}
@@ -517,10 +511,10 @@
context.launchSafetyCenterActivity {
openPageAndExit(context.getString(sourcesGroup.titleResId)) {
waitSourceIssueDisplayed(issue)
- waitDisplayed(By.desc("Dismiss")) { it.click() }
+ clickDismissIssueCard()
waitAllTextDisplayed("Dismiss this alert?")
- waitButtonDisplayed("Dismiss") { it.click() }
+ clickConfirmDismissal()
waitSourceIssueNotDisplayed(issue)
}
@@ -538,7 +532,7 @@
context.launchSafetyCenterActivity {
openPageAndExit(context.getString(sourcesGroup.titleResId)) {
waitSourceIssueDisplayed(issue)
- waitDisplayed(By.desc("Dismiss")) { it.click() }
+ clickDismissIssueCard()
waitAllTextDisplayed("Dismiss this alert?")
UiAutomatorUtils2.getUiDevice().rotate()
@@ -585,9 +579,9 @@
context.launchSafetyCenterActivity {
openPageAndExit(context.getString(sourcesGroup.titleResId)) {
waitSourceIssueDisplayed(issue)
- waitDisplayed(By.desc("Dismiss")) { it.click() }
+ clickDismissIssueCard()
waitAllTextDisplayed("Dismiss this alert?")
- waitButtonDisplayed("Dismiss") { it.click() }
+ clickConfirmDismissal()
waitSourceIssueNotDisplayed(issue)
waitDisplayed(By.text("Dismissed alerts")) { it.click() }
@@ -609,15 +603,15 @@
context.launchSafetyCenterActivity {
openPageAndExit(context.getString(sourcesGroup.titleResId)) {
waitSourceIssueDisplayed(issue)
- waitDisplayed(By.desc("Dismiss")) { it.click() }
+ clickDismissIssueCard()
waitAllTextDisplayed("Dismiss this alert?")
- waitButtonDisplayed("Dismiss") { it.click() }
+ clickConfirmDismissal()
waitSourceIssueNotDisplayed(issue)
+
waitDisplayed(By.text("Dismissed alerts")) { it.click() }
waitSourceIssueDisplayed(issue)
waitDisplayed(By.text("Dismissed alerts")) { it.click() }
-
waitSourceIssueNotDisplayed(issue)
}
}
@@ -642,9 +636,9 @@
context.launchSafetyCenterActivity {
openPageAndExit(context.getString(sourcesGroup.titleResId)) {
waitSourceIssueDisplayed(issue)
- waitDisplayed(By.desc("Dismiss")) { it.click() }
+ clickDismissIssueCard()
waitAllTextDisplayed("Dismiss this alert?")
- waitButtonDisplayed("Dismiss") { it.click() }
+ clickConfirmDismissal()
waitSourceIssueNotDisplayed(issue)
clickMoreIssuesCard()
@@ -675,14 +669,14 @@
context.launchSafetyCenterActivity {
openPageAndExit(context.getString(sourcesGroup.titleResId)) {
waitSourceIssueDisplayed(issue)
- waitDisplayed(By.desc("Dismiss")) { it.click() }
- waitButtonDisplayed("Dismiss") { it.click() }
+ clickDismissIssueCard()
+ clickConfirmDismissal()
waitSourceIssueNotDisplayed(issue)
+
clickMoreIssuesCard()
waitSourceIssueDisplayed(issue)
clickMoreIssuesCard()
-
waitAllTextDisplayed(MORE_ISSUES_LABEL)
waitAllTextNotDisplayed("Dismissed alerts")
waitSourceIssueNotDisplayed(issue)
@@ -697,23 +691,14 @@
val sourcesGroup = safetyCenterTestConfigs.singleSourceConfig.safetySourcesGroups.first()
context.launchSafetyCenterActivity {
- // Verify that the homepage is opened
- waitAllTextDisplayed(
- context.getString(sourcesGroup.titleResId),
- context.getString(sourcesGroup.summaryResId)
- )
+ waitGroupShownOnHomepage(context, sourcesGroup)
- // Open subpage by clicking on the group title
- waitDisplayed(By.text(context.getString(sourcesGroup.titleResId))) { it.click() }
- waitDisplayed(By.desc(context.getString(sourcesGroup.titleResId)))
+ clickOpenSubpage(context, sourcesGroup)
+ waitPageTitleDisplayed(context.getString(sourcesGroup.titleResId))
waitAllTextNotDisplayed(context.getString(sourcesGroup.summaryResId))
- // Open homepage again by clicking on the brand chip
- waitButtonDisplayed("Security & privacy") { it.click() }
- waitAllTextDisplayed(
- context.getString(sourcesGroup.titleResId),
- context.getString(sourcesGroup.summaryResId)
- )
+ clickSubpageBrandChip()
+ waitGroupShownOnHomepage(context, sourcesGroup)
}
}
@@ -726,16 +711,11 @@
extras.putString(EXTRA_SAFETY_SOURCES_GROUP_ID, sourcesGroup.id)
context.launchSafetyCenterActivity(extras) {
- // Verify that the subpage is opened
- waitDisplayed(By.desc(context.getString(sourcesGroup.titleResId)))
+ waitPageTitleDisplayed(context.getString(sourcesGroup.titleResId))
waitAllTextNotDisplayed(context.getString(sourcesGroup.summaryResId))
- // Open homepage by clicking on the brand chip
- waitButtonDisplayed("Security & privacy") { it.click() }
- waitAllTextDisplayed(
- context.getString(sourcesGroup.titleResId),
- context.getString(sourcesGroup.summaryResId)
- )
+ clickSubpageBrandChip()
+ waitGroupShownOnHomepage(context, sourcesGroup)
}
}
@@ -750,7 +730,7 @@
extras.putString(EXTRA_SETTINGS_FRAGMENT_ARGS_KEY, preferenceKey)
context.launchSafetyCenterActivity(extras) {
- waitDisplayed(By.desc(context.getString(sourcesGroup.titleResId)))
+ waitPageTitleDisplayed(context.getString(sourcesGroup.titleResId))
waitAllTextDisplayed(
context.getString(source.titleResId),
context.getString(source.summaryResId)
@@ -767,11 +747,8 @@
extras.putString(EXTRA_SETTINGS_FRAGMENT_ARGS_KEY, "invalid_preference_key")
context.launchSafetyCenterActivity(extras) {
- waitDisplayed(By.desc("Security & privacy"))
- waitAllTextDisplayed(
- context.getString(sourcesGroup.titleResId),
- context.getString(sourcesGroup.summaryResId)
- )
+ waitPageTitleDisplayed("Security & privacy")
+ waitGroupShownOnHomepage(context, sourcesGroup)
}
}
diff --git a/tests/utils/safetycenter/java/com/android/safetycenter/testing/UiTestHelper.kt b/tests/utils/safetycenter/java/com/android/safetycenter/testing/UiTestHelper.kt
index 81c255c..77584c4 100644
--- a/tests/utils/safetycenter/java/com/android/safetycenter/testing/UiTestHelper.kt
+++ b/tests/utils/safetycenter/java/com/android/safetycenter/testing/UiTestHelper.kt
@@ -16,10 +16,12 @@
package com.android.safetycenter.testing
+import android.content.Context
import android.os.Build.VERSION_CODES.TIRAMISU
import android.os.SystemClock
import android.safetycenter.SafetySourceData
import android.safetycenter.SafetySourceIssue
+import android.safetycenter.config.SafetySourcesGroup
import android.util.Log
import androidx.annotation.RequiresApi
import androidx.test.uiautomator.By
@@ -43,6 +45,7 @@
/** The title of collapsible card that controls the visibility of additional issue cards. */
const val MORE_ISSUES_LABEL = "More alerts"
+ private const val DISMISS_ISSUE_LABEL = "Dismiss"
private val WAIT_TIMEOUT = Duration.ofSeconds(25)
private val NOT_DISPLAYED_TIMEOUT = Duration.ofMillis(500)
@@ -121,6 +124,44 @@
waitAllTextNotDisplayed(sourceIssue.title)
}
+ /** Waits for the specified screen title to be displayed. */
+ fun waitPageTitleDisplayed(title: String) {
+ waitDisplayed(By.desc(title))
+ }
+
+ /** Waits for the specified screen title not to be displayed. */
+ fun waitPageTitleNotDisplayed(title: String) {
+ waitNotDisplayed(By.desc(title))
+ }
+
+ /** Waits for the group title and summary to be displayed on the homepage */
+ fun waitGroupShownOnHomepage(context: Context, group: SafetySourcesGroup) {
+ waitAllTextDisplayed(
+ context.getString(group.titleResId),
+ context.getString(group.summaryResId)
+ )
+ }
+
+ /** Dismisses the issue card by clicking the dismiss button. */
+ fun clickDismissIssueCard() {
+ waitDisplayed(By.desc(DISMISS_ISSUE_LABEL)) { it.click() }
+ }
+
+ /** Confirms the dismiss action by clicking on the dialog that pops up. */
+ fun clickConfirmDismissal() {
+ waitButtonDisplayed(DISMISS_ISSUE_LABEL) { it.click() }
+ }
+
+ /** Clicks the brand chip button on a subpage in Safety Center. */
+ fun clickSubpageBrandChip() {
+ waitButtonDisplayed("Security & privacy") { it.click() }
+ }
+
+ /** Opens the subpage by clicking on the group title. */
+ fun clickOpenSubpage(context: Context, group: SafetySourcesGroup) {
+ waitDisplayed(By.text(context.getString(group.titleResId))) { it.click() }
+ }
+
/** Clicks the more issues card button to show or hide additional issues. */
fun clickMoreIssuesCard() {
waitDisplayed(By.text(MORE_ISSUES_LABEL)) { it.click() }