Fix lint warnings and test in site permissions

pull/216/head
Jonathan Almeida 4 years ago committed by Arturo Mejia
parent de521192e0
commit 666781aa62

@ -119,6 +119,12 @@ class SettingsPrivacyTest {
verifySitePermissionsNotificationSubMenuItems()
}.goBack {
// SITE PERMISSIONS PERSISTENT STORAGE
}.openPersistentStorage {
verifyNavigationToolBarHeader("Persistent Storage")
verifySitePermissionsPersistentStorageSubMenuItems()
}.goBack {
// SITE PERMISSIONS EXCEPTIONS
}.openExceptions {
verifyNavigationToolBarHeader()

@ -75,6 +75,12 @@ class SettingsSubMenuSitePermissionsCommonRobot {
verifyCheckCommonRadioButtonDefault()
}
fun verifySitePermissionsPersistentStorageSubMenuItems() {
verifyassertAskToAllowRecommended()
verifyassertBlocked()
verifyCheckCommonRadioButtonDefault()
}
class Transition {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())!!

@ -118,6 +118,22 @@ class SettingsSubMenuSitePermissionsRobot {
return SettingsSubMenuSitePermissionsCommonRobot.Transition()
}
fun openPersistentStorage(
interact: SettingsSubMenuSitePermissionsCommonRobot.() -> Unit
): SettingsSubMenuSitePermissionsCommonRobot.Transition {
onView(withId(R.id.recycler_view)).perform(
RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(
hasDescendant(withText("Persistent Storage"))
)
)
openPersistentStorage().click()
SettingsSubMenuSitePermissionsCommonRobot().interact()
return SettingsSubMenuSitePermissionsCommonRobot.Transition()
}
fun openExceptions(
interact: SettingsSubMenuSitePermissionsExceptionsRobot.() -> Unit
): SettingsSubMenuSitePermissionsExceptionsRobot.Transition {
@ -176,8 +192,27 @@ class SettingsSubMenuSitePermissionsRobot {
val notificationText =
"Ask to allow"
onView(withText(notificationText))
onView(withId(R.id.recycler_view)).perform(
RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(
allOf(hasDescendant(withText("Notification")), hasDescendant(withText(notificationText)))
)
).check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
onView(withText("Persistent Storage"))
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
val persistentStorageText =
"Ask to allow"
onView(withId(R.id.recycler_view)).perform(
RecyclerViewActions.scrollTo<RecyclerView.ViewHolder>(
allOf(
hasDescendant(withText("Persistent Storage")),
hasDescendant(withText(persistentStorageText))
)
)
).check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
}
}
@ -199,5 +234,8 @@ private fun openMicrophone() =
private fun openNotification() =
onView(allOf(withText("Notification")))
private fun openPersistentStorage() =
onView(allOf(withText("Persistent Storage")))
private fun openExceptions() =
onView(allOf(withText("Exceptions")))

@ -52,13 +52,24 @@ class WebsitePermissionsView(
val view: View = LayoutInflater.from(context)
.inflate(R.layout.quicksettings_permissions, containerView, true)
private val permissionViews: Map<PhoneFeature, PermissionViewHolder> = EnumMap(mapOf(
PhoneFeature.CAMERA to PermissionViewHolder(view.cameraLabel, view.cameraStatus),
PhoneFeature.LOCATION to PermissionViewHolder(view.locationLabel, view.locationStatus),
PhoneFeature.MICROPHONE to PermissionViewHolder(view.microphoneLabel, view.microphoneStatus),
PhoneFeature.NOTIFICATION to PermissionViewHolder(view.notificationLabel, view.notificationStatus),
PhoneFeature.PERSISTENT_STORAGE to PermissionViewHolder(view.persistentStorageLabel, view.persistentStorageStatus)
))
private val permissionViews: Map<PhoneFeature, PermissionViewHolder> = EnumMap(
mapOf(
PhoneFeature.CAMERA to PermissionViewHolder(view.cameraLabel, view.cameraStatus),
PhoneFeature.LOCATION to PermissionViewHolder(view.locationLabel, view.locationStatus),
PhoneFeature.MICROPHONE to PermissionViewHolder(
view.microphoneLabel,
view.microphoneStatus
),
PhoneFeature.NOTIFICATION to PermissionViewHolder(
view.notificationLabel,
view.notificationStatus
),
PhoneFeature.PERSISTENT_STORAGE to PermissionViewHolder(
view.persistentStorageLabel,
view.persistentStorageStatus
)
)
)
/**
* Allows changing what this View displays.

@ -21,7 +21,11 @@ import org.mozilla.fenix.ext.components
import org.mozilla.fenix.ext.requireComponents
import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.settings.PhoneFeature
import org.mozilla.fenix.settings.PhoneFeature.*
import org.mozilla.fenix.settings.PhoneFeature.CAMERA
import org.mozilla.fenix.settings.PhoneFeature.LOCATION
import org.mozilla.fenix.settings.PhoneFeature.MICROPHONE
import org.mozilla.fenix.settings.PhoneFeature.NOTIFICATION
import org.mozilla.fenix.settings.PhoneFeature.PERSISTENT_STORAGE
import org.mozilla.fenix.settings.requirePreference
class SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat() {

@ -94,6 +94,7 @@ class QuickSettingsFragmentStoreTest {
every { permissions.microphone } returns SitePermissions.Status.NO_DECISION
every { permissions.notification } returns SitePermissions.Status.BLOCKED
every { permissions.location } returns SitePermissions.Status.ALLOWED
every { permissions.localStorage } returns SitePermissions.Status.ALLOWED
every { permissions.autoplayAudible } returns SitePermissions.Status.BLOCKED
every { permissions.autoplayInaudible } returns SitePermissions.Status.BLOCKED
every { appSettings.getAutoplayUserSetting(any()) } returns AUTOPLAY_BLOCK_ALL
@ -111,6 +112,7 @@ class QuickSettingsFragmentStoreTest {
assertNotNull(state[PhoneFeature.LOCATION])
assertNotNull(state[PhoneFeature.AUTOPLAY_AUDIBLE])
assertNotNull(state[PhoneFeature.AUTOPLAY_INAUDIBLE])
assertNotNull(state[PhoneFeature.PERSISTENT_STORAGE])
}
@Test

@ -31,7 +31,8 @@ class SettingsTest {
microphone = ASK_TO_ALLOW,
notification = ASK_TO_ALLOW,
autoplayAudible = AutoplayAction.BLOCKED,
autoplayInaudible = AutoplayAction.BLOCKED
autoplayInaudible = AutoplayAction.BLOCKED,
persistentStorage = ASK_TO_ALLOW
)
@Before
@ -577,6 +578,23 @@ class SettingsTest {
)
}
@Test
fun getSitePermissionsCustomSettingsRules_persistentStorage() {
settings.setSitePermissionsPhoneFeatureAction(PhoneFeature.PERSISTENT_STORAGE, ALLOWED)
assertEquals(
defaultPermissions.copy(persistentStorage = ALLOWED),
settings.getSitePermissionsCustomSettingsRules()
)
settings.setSitePermissionsPhoneFeatureAction(PhoneFeature.PERSISTENT_STORAGE, BLOCKED)
assertEquals(
defaultPermissions.copy(persistentStorage = BLOCKED),
settings.getSitePermissionsCustomSettingsRules()
)
}
@Test
fun overrideAmoCollection() {
// When just created

Loading…
Cancel
Save