Fix settingsPrivacyItemsTest

upstream-sync
AndiAJ 3 years ago committed by Oana Horvath
parent 9f81754fab
commit 3fc4848aef

@ -147,6 +147,12 @@ class SettingsPrivacyTest {
verifyDeleteBrowsingDataOnQuitSubMenuItems()
}.goBack {
// NOTIFICATIONS
verifyNotificationsButton()
}.openSettingsSubMenuNotifications {
verifySystemNotificationsView()
}.goBack {
// DATA COLLECTION
verifyDataCollectionButton()
}.openSettingsSubMenuDataCollection {

@ -9,10 +9,10 @@ package org.mozilla.fenix.ui.robots
import android.content.pm.PackageManager
import androidx.recyclerview.widget.RecyclerView
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.contrib.RecyclerViewActions
import androidx.test.espresso.ViewInteraction
import androidx.test.espresso.action.ViewActions
import androidx.test.espresso.assertion.ViewAssertions.matches
import androidx.test.espresso.contrib.RecyclerViewActions
import androidx.test.espresso.intent.Intents.intended
import androidx.test.espresso.intent.matcher.IntentMatchers
import androidx.test.espresso.intent.matcher.IntentMatchers.toPackage
@ -70,6 +70,7 @@ class SettingsRobot {
fun verifyDeleteBrowsingDataOnQuitButton() = assertDeleteBrowsingDataOnQuitButton()
fun verifyDeleteBrowsingDataOnQuitValue(state: String) =
assertDeleteBrowsingDataValue(state)
fun verifyNotificationsButton() = assertNotificationsButton()
fun verifyDataCollectionButton() = assertDataCollectionButton()
fun verifyOpenLinksInAppsButton() = assertOpenLinksInAppsButton()
fun verifyOpenLinksInAppsSwitchDefault() = assertOpenLinksInAppsValue()
@ -217,6 +218,15 @@ class SettingsRobot {
return SettingsSubMenuDeleteBrowsingDataOnQuitRobot.Transition()
}
fun openSettingsSubMenuNotifications(interact: SystemSettingsRobot.() -> Unit): SystemSettingsRobot.Transition {
scrollToElementByText("Notifications")
fun notificationsButton() = mDevice.findObject(textContains("Notifications"))
notificationsButton().click()
SystemSettingsRobot().interact()
return SystemSettingsRobot.Transition()
}
fun openSettingsSubMenuDataCollection(interact: SettingsSubMenuDataCollectionRobot.() -> Unit): SettingsSubMenuDataCollectionRobot.Transition {
scrollToElementByText("Data collection")
fun dataCollectionButton() = mDevice.findObject(textContains("Data collection"))
@ -365,8 +375,17 @@ private fun assertDeleteBrowsingDataValue(state: String) {
onView(withText(state)).check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
}
private fun assertDataCollectionButton() = onView(withText("Data collection"))
private fun assertNotificationsButton() {
scrollToElementByText("Notifications")
onView(withText("Notifications"))
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
}
private fun assertDataCollectionButton() {
scrollToElementByText("Data collection")
onView(withText("Data collection"))
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
}
private fun openLinksInAppsButton() = onView(withText("Open links in apps"))

@ -6,8 +6,12 @@ package org.mozilla.fenix.ui.robots
import androidx.test.espresso.intent.Intents
import androidx.test.espresso.intent.matcher.IntentMatchers.hasAction
import androidx.test.uiautomator.UiSelector
import org.junit.Assert.assertTrue
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
class SystemSettingsRobot {
fun verifySystemNotificationsView() = assertSystemNotificationsView()
fun verifyNotifications() {
Intents.intended(hasAction("android.settings.APP_NOTIFICATION_SETTINGS"))
}
@ -18,6 +22,12 @@ class SystemSettingsRobot {
class Transition {
// Difficult to know where this will go
fun goBack(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition {
mDevice.pressBack()
SettingsRobot().interact()
return SettingsRobot.Transition()
}
}
}
@ -25,3 +35,11 @@ fun systemSettings(interact: SystemSettingsRobot.() -> Unit): SystemSettingsRobo
SystemSettingsRobot().interact()
return SystemSettingsRobot.Transition()
}
private fun assertSystemNotificationsView() {
mDevice.findObject(UiSelector().resourceId("com.android.settings:id/list"))
.waitForExists(waitingTime)
assertTrue(mDevice.findObject(UiSelector().textContains("Show notifications"))
.waitForExists(waitingTime)
)
}

Loading…
Cancel
Save