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() verifySitePermissionsNotificationSubMenuItems()
}.goBack { }.goBack {
// SITE PERMISSIONS PERSISTENT STORAGE
}.openPersistentStorage {
verifyNavigationToolBarHeader("Persistent Storage")
verifySitePermissionsPersistentStorageSubMenuItems()
}.goBack {
// SITE PERMISSIONS EXCEPTIONS // SITE PERMISSIONS EXCEPTIONS
}.openExceptions { }.openExceptions {
verifyNavigationToolBarHeader() verifyNavigationToolBarHeader()

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

@ -118,6 +118,22 @@ class SettingsSubMenuSitePermissionsRobot {
return SettingsSubMenuSitePermissionsCommonRobot.Transition() 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( fun openExceptions(
interact: SettingsSubMenuSitePermissionsExceptionsRobot.() -> Unit interact: SettingsSubMenuSitePermissionsExceptionsRobot.() -> Unit
): SettingsSubMenuSitePermissionsExceptionsRobot.Transition { ): SettingsSubMenuSitePermissionsExceptionsRobot.Transition {
@ -176,8 +192,27 @@ class SettingsSubMenuSitePermissionsRobot {
val notificationText = val notificationText =
"Ask to allow" "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))) .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() = private fun openNotification() =
onView(allOf(withText("Notification"))) onView(allOf(withText("Notification")))
private fun openPersistentStorage() =
onView(allOf(withText("Persistent Storage")))
private fun openExceptions() = private fun openExceptions() =
onView(allOf(withText("Exceptions"))) onView(allOf(withText("Exceptions")))

@ -52,13 +52,24 @@ class WebsitePermissionsView(
val view: View = LayoutInflater.from(context) val view: View = LayoutInflater.from(context)
.inflate(R.layout.quicksettings_permissions, containerView, true) .inflate(R.layout.quicksettings_permissions, containerView, true)
private val permissionViews: Map<PhoneFeature, PermissionViewHolder> = EnumMap(mapOf( private val permissionViews: Map<PhoneFeature, PermissionViewHolder> = EnumMap(
PhoneFeature.CAMERA to PermissionViewHolder(view.cameraLabel, view.cameraStatus), mapOf(
PhoneFeature.LOCATION to PermissionViewHolder(view.locationLabel, view.locationStatus), PhoneFeature.CAMERA to PermissionViewHolder(view.cameraLabel, view.cameraStatus),
PhoneFeature.MICROPHONE to PermissionViewHolder(view.microphoneLabel, view.microphoneStatus), PhoneFeature.LOCATION to PermissionViewHolder(view.locationLabel, view.locationStatus),
PhoneFeature.NOTIFICATION to PermissionViewHolder(view.notificationLabel, view.notificationStatus), PhoneFeature.MICROPHONE to PermissionViewHolder(
PhoneFeature.PERSISTENT_STORAGE to PermissionViewHolder(view.persistentStorageLabel, view.persistentStorageStatus) 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. * 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.requireComponents
import org.mozilla.fenix.ext.showToolbar import org.mozilla.fenix.ext.showToolbar
import org.mozilla.fenix.settings.PhoneFeature 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 import org.mozilla.fenix.settings.requirePreference
class SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat() { class SitePermissionsDetailsExceptionsFragment : PreferenceFragmentCompat() {

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

@ -31,7 +31,8 @@ class SettingsTest {
microphone = ASK_TO_ALLOW, microphone = ASK_TO_ALLOW,
notification = ASK_TO_ALLOW, notification = ASK_TO_ALLOW,
autoplayAudible = AutoplayAction.BLOCKED, autoplayAudible = AutoplayAction.BLOCKED,
autoplayInaudible = AutoplayAction.BLOCKED autoplayInaudible = AutoplayAction.BLOCKED,
persistentStorage = ASK_TO_ALLOW
) )
@Before @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 @Test
fun overrideAmoCollection() { fun overrideAmoCollection() {
// When just created // When just created

Loading…
Cancel
Save