|
|
|
@ -4,7 +4,6 @@
|
|
|
|
|
|
|
|
|
|
package org.mozilla.fenix.utils
|
|
|
|
|
|
|
|
|
|
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
|
|
|
|
import mozilla.components.feature.sitepermissions.SitePermissionsRules
|
|
|
|
|
import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.ALLOWED
|
|
|
|
|
import mozilla.components.feature.sitepermissions.SitePermissionsRules.Action.ASK_TO_ALLOW
|
|
|
|
@ -17,8 +16,7 @@ import org.junit.Assert.assertTrue
|
|
|
|
|
import org.junit.Before
|
|
|
|
|
import org.junit.Test
|
|
|
|
|
import org.junit.runner.RunWith
|
|
|
|
|
import org.mozilla.fenix.ext.clearAndCommit
|
|
|
|
|
import org.mozilla.fenix.ext.settings
|
|
|
|
|
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
|
|
|
|
|
import org.mozilla.fenix.settings.PhoneFeature
|
|
|
|
|
import org.mozilla.fenix.settings.deletebrowsingdata.DeleteBrowsingDataOnQuitType
|
|
|
|
|
|
|
|
|
@ -27,9 +25,18 @@ class SettingsTest {
|
|
|
|
|
|
|
|
|
|
lateinit var settings: Settings
|
|
|
|
|
|
|
|
|
|
private val defaultPermissions = SitePermissionsRules(
|
|
|
|
|
camera = ASK_TO_ALLOW,
|
|
|
|
|
location = ASK_TO_ALLOW,
|
|
|
|
|
microphone = ASK_TO_ALLOW,
|
|
|
|
|
notification = ASK_TO_ALLOW,
|
|
|
|
|
autoplayAudible = AutoplayAction.BLOCKED,
|
|
|
|
|
autoplayInaudible = AutoplayAction.BLOCKED
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
@Before
|
|
|
|
|
fun setUp() {
|
|
|
|
|
settings = testContext.settings().apply(Settings::clear)
|
|
|
|
|
settings = Settings(testContext)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@ -103,28 +110,6 @@ class SettingsTest {
|
|
|
|
|
assertEquals("Mozilla", settings.defaultSearchEngineName)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun isCrashReportingEnabled_enabledInBuild() {
|
|
|
|
|
// When
|
|
|
|
|
clearExistingInstance()
|
|
|
|
|
val settings = testContext.settings(true)
|
|
|
|
|
.apply(Settings::clear)
|
|
|
|
|
|
|
|
|
|
// Then
|
|
|
|
|
assertTrue(settings.isCrashReportingEnabled)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun isCrashReportingEnabled_disabledInBuild() {
|
|
|
|
|
// When
|
|
|
|
|
clearExistingInstance()
|
|
|
|
|
val settings = testContext.settings(false)
|
|
|
|
|
.apply(Settings::clear)
|
|
|
|
|
|
|
|
|
|
// Then
|
|
|
|
|
assertFalse(settings.isCrashReportingEnabled)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun isRemoteDebuggingEnabled() {
|
|
|
|
|
// When just created
|
|
|
|
@ -451,7 +436,7 @@ class SettingsTest {
|
|
|
|
|
// When just created
|
|
|
|
|
// Then
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions(),
|
|
|
|
|
defaultPermissions,
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
@ -463,7 +448,7 @@ class SettingsTest {
|
|
|
|
|
|
|
|
|
|
// Then
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions().copy(camera = BLOCKED),
|
|
|
|
|
defaultPermissions.copy(camera = BLOCKED),
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
@ -475,7 +460,7 @@ class SettingsTest {
|
|
|
|
|
|
|
|
|
|
// Then
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions().copy(notification = BLOCKED),
|
|
|
|
|
defaultPermissions.copy(notification = BLOCKED),
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
@ -487,7 +472,7 @@ class SettingsTest {
|
|
|
|
|
|
|
|
|
|
// Then
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions().copy(location = BLOCKED),
|
|
|
|
|
defaultPermissions.copy(location = BLOCKED),
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
@ -499,7 +484,7 @@ class SettingsTest {
|
|
|
|
|
|
|
|
|
|
// Then
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions().copy(microphone = BLOCKED),
|
|
|
|
|
defaultPermissions.copy(microphone = BLOCKED),
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
@ -509,7 +494,7 @@ class SettingsTest {
|
|
|
|
|
settings.setSitePermissionsPhoneFeatureAction(PhoneFeature.AUTOPLAY_AUDIBLE, ALLOWED)
|
|
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions().copy(autoplayAudible = ALLOWED),
|
|
|
|
|
defaultPermissions.copy(autoplayAudible = ALLOWED),
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
@ -519,25 +504,8 @@ class SettingsTest {
|
|
|
|
|
settings.setSitePermissionsPhoneFeatureAction(PhoneFeature.AUTOPLAY_INAUDIBLE, ALLOWED)
|
|
|
|
|
|
|
|
|
|
assertEquals(
|
|
|
|
|
defaultPermissions().copy(autoplayInaudible = ALLOWED),
|
|
|
|
|
defaultPermissions.copy(autoplayInaudible = ALLOWED),
|
|
|
|
|
settings.getSitePermissionsCustomSettingsRules()
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun clearExistingInstance() {
|
|
|
|
|
Settings.instance = null
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun Settings.clear() {
|
|
|
|
|
preferences.clearAndCommit()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private fun defaultPermissions() = SitePermissionsRules(
|
|
|
|
|
camera = ASK_TO_ALLOW,
|
|
|
|
|
location = ASK_TO_ALLOW,
|
|
|
|
|
microphone = ASK_TO_ALLOW,
|
|
|
|
|
notification = ASK_TO_ALLOW,
|
|
|
|
|
autoplayAudible = AutoplayAction.BLOCKED,
|
|
|
|
|
autoplayInaudible = AutoplayAction.BLOCKED
|
|
|
|
|
)
|
|
|
|
|