For #25034 fix disabled redirectToAppPermissionsSystemSettingsTest UI test
This commit is contained in:
parent
8c1476e3f7
commit
f3def2e58b
|
@ -7,6 +7,7 @@ package org.mozilla.fenix.ui
|
|||
import android.os.Build
|
||||
import android.view.autofill.AutofillManager
|
||||
import androidx.core.net.toUri
|
||||
import androidx.test.filters.SdkSuppress
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import okhttp3.mockwebserver.MockWebServer
|
||||
|
@ -445,6 +446,45 @@ class SettingsPrivacyTest {
|
|||
}
|
||||
}
|
||||
|
||||
@SmokeTest
|
||||
@Test
|
||||
@SdkSuppress(minSdkVersion = 29)
|
||||
// Verifies that you can go to System settings and change app's permissions from inside the app
|
||||
fun redirectToAppPermissionsSystemSettingsTest() {
|
||||
homeScreen {
|
||||
}.openThreeDotMenu {
|
||||
}.openSettings {
|
||||
}.openSettingsSubMenuSitePermissions {
|
||||
}.openCamera {
|
||||
verifyBlockedByAndroid()
|
||||
}.goBack {
|
||||
}.openLocation {
|
||||
verifyBlockedByAndroid()
|
||||
}.goBack {
|
||||
}.openMicrophone {
|
||||
verifyBlockedByAndroid()
|
||||
clickGoToSettingsButton()
|
||||
openAppSystemPermissionsSettings()
|
||||
switchAppPermissionSystemSetting("Camera", "Allow")
|
||||
goBackToSystemAppPermissionSettings()
|
||||
verifySystemGrantedPermission("Camera")
|
||||
switchAppPermissionSystemSetting("Location", "Allow")
|
||||
goBackToSystemAppPermissionSettings()
|
||||
verifySystemGrantedPermission("Location")
|
||||
switchAppPermissionSystemSetting("Microphone", "Allow")
|
||||
goBackToSystemAppPermissionSettings()
|
||||
verifySystemGrantedPermission("Microphone")
|
||||
goBackToPermissionsSettingsSubMenu()
|
||||
verifyUnblockedByAndroid()
|
||||
}.goBack {
|
||||
}.openLocation {
|
||||
verifyUnblockedByAndroid()
|
||||
}.goBack {
|
||||
}.openCamera {
|
||||
verifyUnblockedByAndroid()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun deleteBrowsingDataOptionStatesTest() {
|
||||
homeScreen {
|
||||
|
|
|
@ -10,7 +10,6 @@ import android.view.View
|
|||
import androidx.compose.ui.test.junit4.AndroidComposeTestRule
|
||||
import androidx.core.net.toUri
|
||||
import androidx.test.espresso.IdlingRegistry
|
||||
import androidx.test.filters.SdkSuppress
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.rule.ActivityTestRule
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
|
@ -532,43 +531,6 @@ class SmokeTest {
|
|||
}
|
||||
}
|
||||
|
||||
@Ignore("Failing, see: https://github.com/mozilla-mobile/fenix/issues/25034")
|
||||
@Test
|
||||
@SdkSuppress(minSdkVersion = 29)
|
||||
// Verifies that you can go to System settings and change app's permissions from inside the app
|
||||
fun redirectToAppPermissionsSystemSettingsTest() {
|
||||
homeScreen {
|
||||
}.openThreeDotMenu {
|
||||
}.openSettings {
|
||||
}.openSettingsSubMenuSitePermissions {
|
||||
}.openCamera {
|
||||
verifyBlockedByAndroid()
|
||||
}.goBack {
|
||||
}.openLocation {
|
||||
verifyBlockedByAndroid()
|
||||
}.goBack {
|
||||
}.openMicrophone {
|
||||
verifyBlockedByAndroid()
|
||||
clickGoToSettingsButton()
|
||||
openAppSystemPermissionsSettings()
|
||||
switchAppPermissionSystemSetting("Camera", "Allow")
|
||||
mDevice.pressBack()
|
||||
switchAppPermissionSystemSetting("Location", "Allow")
|
||||
mDevice.pressBack()
|
||||
switchAppPermissionSystemSetting("Microphone", "Allow")
|
||||
mDevice.pressBack()
|
||||
mDevice.pressBack()
|
||||
mDevice.pressBack()
|
||||
verifyUnblockedByAndroid()
|
||||
}.goBack {
|
||||
}.openLocation {
|
||||
verifyUnblockedByAndroid()
|
||||
}.goBack {
|
||||
}.openCamera {
|
||||
verifyUnblockedByAndroid()
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
// Verifies that a recently closed item is properly opened
|
||||
fun openRecentlyClosedItemTest() {
|
||||
|
|
|
@ -7,17 +7,20 @@ package org.mozilla.fenix.ui.robots
|
|||
import androidx.test.espresso.Espresso.onView
|
||||
import androidx.test.espresso.assertion.ViewAssertions.matches
|
||||
import androidx.test.espresso.matcher.ViewMatchers.Visibility
|
||||
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withText
|
||||
import androidx.test.uiautomator.UiSelector
|
||||
import org.hamcrest.CoreMatchers.allOf
|
||||
import org.hamcrest.Matchers.not
|
||||
import org.junit.Assert.assertFalse
|
||||
import org.junit.Assert.assertTrue
|
||||
import org.mozilla.fenix.R
|
||||
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
|
||||
import org.mozilla.fenix.helpers.TestHelper.mDevice
|
||||
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort
|
||||
import org.mozilla.fenix.helpers.TestHelper.getStringResource
|
||||
import org.mozilla.fenix.helpers.TestHelper.packageName
|
||||
import org.mozilla.fenix.helpers.assertIsChecked
|
||||
import org.mozilla.fenix.helpers.click
|
||||
|
||||
|
@ -106,6 +109,40 @@ class SettingsSubMenuSitePermissionsCommonRobot {
|
|||
}
|
||||
}
|
||||
|
||||
fun goBackToSystemAppPermissionSettings() {
|
||||
mDevice.pressBack()
|
||||
mDevice.waitForIdle(waitingTime)
|
||||
}
|
||||
|
||||
fun goBackToPermissionsSettingsSubMenu() {
|
||||
while (!permissionSettingMenu().waitForExists(waitingTimeShort)) {
|
||||
mDevice.pressBack()
|
||||
mDevice.waitForIdle(waitingTime)
|
||||
}
|
||||
}
|
||||
|
||||
fun verifySystemGrantedPermission(permissionCategory: String) {
|
||||
assertTrue(
|
||||
mDevice.findObject(
|
||||
UiSelector().className("android.widget.RelativeLayout")
|
||||
).getChild(
|
||||
UiSelector()
|
||||
.resourceId("android:id/title")
|
||||
.textContains(permissionCategory)
|
||||
).waitForExists(waitingTime)
|
||||
)
|
||||
|
||||
assertTrue(
|
||||
mDevice.findObject(
|
||||
UiSelector().className("android.widget.RelativeLayout")
|
||||
).getChild(
|
||||
UiSelector()
|
||||
.resourceId("android:id/summary")
|
||||
.textContains("Only while app is in use")
|
||||
).waitForExists(waitingTime)
|
||||
)
|
||||
}
|
||||
|
||||
class Transition {
|
||||
fun goBack(interact: SettingsSubMenuSitePermissionsRobot.() -> Unit): SettingsSubMenuSitePermissionsRobot.Transition {
|
||||
goBackButton().click()
|
||||
|
@ -158,11 +195,27 @@ private fun assertCheckCommonRadioButtonDefault() {
|
|||
onView(withId(R.id.block_radio)).assertIsChecked(isChecked = false)
|
||||
}
|
||||
|
||||
private fun assertBlockedByAndroid() = onView(withText(R.string.phone_feature_blocked_by_android))
|
||||
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
|
||||
private fun assertBlockedByAndroid() {
|
||||
blockedByAndroidContainer().waitForExists(waitingTime)
|
||||
assertTrue(
|
||||
mDevice.findObject(
|
||||
UiSelector().textContains(getStringResource(R.string.phone_feature_blocked_by_android))
|
||||
).waitForExists(waitingTimeShort)
|
||||
)
|
||||
}
|
||||
|
||||
private fun assertUnblockedByAndroid() = onView(withText(R.string.phone_feature_blocked_by_android))
|
||||
.check(matches(not(isDisplayed())))
|
||||
private fun assertUnblockedByAndroid() {
|
||||
blockedByAndroidContainer().waitUntilGone(waitingTime)
|
||||
assertFalse(
|
||||
mDevice.findObject(
|
||||
UiSelector().textContains(getStringResource(R.string.phone_feature_blocked_by_android))
|
||||
).waitForExists(waitingTimeShort)
|
||||
)
|
||||
}
|
||||
|
||||
private fun blockedByAndroidContainer() = mDevice.findObject(UiSelector().resourceId("$packageName:id/permissions_blocked_container"))
|
||||
|
||||
private fun permissionSettingMenu() = mDevice.findObject(UiSelector().resourceId("$packageName:id/container"))
|
||||
|
||||
private fun assertToAllowIt() = onView(withText(R.string.phone_feature_blocked_intro))
|
||||
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
|
||||
|
|
|
@ -9,8 +9,8 @@ import androidx.recyclerview.widget.RecyclerView
|
|||
import androidx.test.espresso.Espresso.onView
|
||||
import androidx.test.espresso.assertion.ViewAssertions.matches
|
||||
import androidx.test.espresso.contrib.RecyclerViewActions
|
||||
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
|
||||
import androidx.test.espresso.matcher.ViewMatchers.Visibility
|
||||
import androidx.test.espresso.matcher.ViewMatchers.hasDescendant
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withContentDescription
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
|
||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
||||
|
|
Loading…
Reference in New Issue
Block a user