|
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
|
|
|
|
package org.mozilla.fenix.ui
|
|
|
|
|
|
|
|
import androidx.test.platform.app.InstrumentationRegistry
|
|
|
|
import androidx.test.uiautomator.UiDevice
|
|
|
|
import okhttp3.mockwebserver.MockWebServer
|
|
|
|
import org.junit.After
|
|
|
|
import org.junit.Before
|
|
|
|
import org.junit.Ignore
|
|
|
|
import org.junit.Rule
|
|
|
|
import org.junit.Test
|
|
|
|
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
|
|
|
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
|
|
|
import org.mozilla.fenix.helpers.TestAssetHelper
|
|
|
|
import org.mozilla.fenix.helpers.TestHelper
|
|
|
|
import org.mozilla.fenix.helpers.TestHelper.openAppFromExternalLink
|
|
|
|
import org.mozilla.fenix.helpers.TestHelper.restartApp
|
|
|
|
import org.mozilla.fenix.ui.robots.addToHomeScreen
|
|
|
|
import org.mozilla.fenix.ui.robots.browserScreen
|
|
|
|
import org.mozilla.fenix.ui.robots.homeScreen
|
|
|
|
import org.mozilla.fenix.ui.robots.navigationToolbar
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Tests for verifying the main three dot menu options
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
class SettingsPrivacyTest {
|
|
|
|
/* ktlint-disable no-blank-line-before-rbrace */ // This imposes unreadable grouping.
|
|
|
|
|
|
|
|
private val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
|
|
|
|
private lateinit var mockWebServer: MockWebServer
|
|
|
|
private val pageShortcutName = "TestShortcut"
|
|
|
|
|
|
|
|
@get:Rule
|
|
|
|
val activityTestRule = HomeActivityTestRule()
|
|
|
|
|
|
|
|
@Before
|
|
|
|
fun setUp() {
|
|
|
|
mockWebServer = MockWebServer().apply {
|
|
|
|
setDispatcher(AndroidAssetDispatcher())
|
|
|
|
start()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@After
|
|
|
|
fun tearDown() {
|
|
|
|
mockWebServer.shutdown()
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
// Walks through settings privacy menu and sub-menus to ensure all items are present
|
|
|
|
fun settingsPrivacyItemsTest() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
// PRIVACY
|
|
|
|
verifyPrivacyHeading()
|
|
|
|
|
|
|
|
// PRIVATE BROWSING
|
|
|
|
verifyPrivateBrowsingButton()
|
|
|
|
}.openPrivateBrowsingSubMenu {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// ENHANCED TRACKING PROTECTION
|
|
|
|
verifyEnhancedTrackingProtectionButton()
|
|
|
|
verifyEnhancedTrackingProtectionValue("On")
|
|
|
|
}.openEnhancedTrackingProtectionSubMenu {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifyEnhancedTrackingProtectionProtectionSubMenuItems()
|
|
|
|
|
|
|
|
// ENHANCED TRACKING PROTECTION EXCEPTION
|
|
|
|
}.openExceptions {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifyEnhancedTrackingProtectionProtectionExceptionsSubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// SITE PERMISSIONS
|
|
|
|
verifySitePermissionsButton()
|
|
|
|
}.openSettingsSubMenuSitePermissions {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifySitePermissionsSubMenuItems()
|
|
|
|
|
|
|
|
// SITE PERMISSIONS AUTOPLAY
|
|
|
|
}.openAutoPlay {
|
|
|
|
verifyNavigationToolBarHeader("Autoplay")
|
|
|
|
verifySitePermissionsAutoPlaySubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// SITE PERMISSIONS CAMERA
|
|
|
|
}.openCamera {
|
|
|
|
verifyNavigationToolBarHeader("Camera")
|
|
|
|
verifySitePermissionsCommonSubMenuItems()
|
|
|
|
verifyToggleNameToON("3. Toggle Camera to ON")
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// SITE PERMISSIONS LOCATION
|
|
|
|
}.openLocation {
|
|
|
|
verifyNavigationToolBarHeader("Location")
|
|
|
|
verifySitePermissionsCommonSubMenuItems()
|
|
|
|
verifyToggleNameToON("3. Toggle Location to ON")
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// SITE PERMISSIONS MICROPHONE
|
|
|
|
}.openMicrophone {
|
|
|
|
verifyNavigationToolBarHeader("Microphone")
|
|
|
|
verifySitePermissionsCommonSubMenuItems()
|
|
|
|
verifyToggleNameToON("3. Toggle Microphone to ON")
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// SITE PERMISSIONS NOTIFICATION
|
|
|
|
}.openNotification {
|
|
|
|
verifyNavigationToolBarHeader("Notification")
|
|
|
|
verifySitePermissionsNotificationSubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// SITE PERMISSIONS EXCEPTIONS
|
|
|
|
}.openExceptions {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifySitePermissionsExceptionSubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// DELETE BROWSING DATA
|
|
|
|
verifyDeleteBrowsingDataButton()
|
|
|
|
}.openSettingsSubMenuDeleteBrowsingData {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifyDeleteBrowsingDataSubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// DELETE BROWSING DATA ON QUIT
|
|
|
|
verifyDeleteBrowsingDataOnQuitButton()
|
|
|
|
verifyDeleteBrowsingDataOnQuitValue("Off")
|
|
|
|
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifyDeleteBrowsingDataOnQuitSubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// DATA COLLECTION
|
|
|
|
verifyDataCollectionButton()
|
|
|
|
}.openSettingsSubMenuDataCollection {
|
|
|
|
verifyNavigationToolBarHeader()
|
|
|
|
verifyDataCollectionSubMenuItems()
|
|
|
|
}.goBack {
|
|
|
|
|
|
|
|
// OPEN LINKS IN APPS
|
|
|
|
verifyOpenLinksInAppsButton()
|
|
|
|
verifyOpenLinksInAppsSwitchDefault()
|
|
|
|
}.goBack {
|
|
|
|
verifyHomeComponent()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Tests only for initial state without signing in.
|
|
|
|
// For tests after singing in, see SyncIntegration test suite
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun loginsAndPasswordsTest() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
// Necessary to scroll a little bit for all screen sizes
|
|
|
|
TestHelper.scrollToElementByText("Logins and passwords")
|
|
|
|
}.openLoginsAndPasswordSubMenu {
|
|
|
|
verifyDefaultView()
|
|
|
|
verifyDefaultValueSyncLogins()
|
|
|
|
verifyDefaultValueAutofillLogins()
|
|
|
|
}.openSavedLogins {
|
|
|
|
verifySavedLoginsView()
|
|
|
|
tapSetupLater()
|
|
|
|
// Verify that logins list is empty
|
|
|
|
// Issue #7272 nothing is shown
|
|
|
|
}.goBack {
|
|
|
|
}.openSyncLogins {
|
|
|
|
verifyReadyToScanOption()
|
|
|
|
verifyUseEmailOption()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun saveLoginFromPromptTest() {
|
|
|
|
val saveLoginTest =
|
|
|
|
TestAssetHelper.getSaveLoginAsset(mockWebServer)
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
}.enterURLAndEnterToBrowser(saveLoginTest.url) {
|
|
|
|
verifySaveLoginPromptIsShown()
|
|
|
|
// Click save to save the login
|
|
|
|
saveLoginFromPrompt("Save")
|
|
|
|
}.openTabDrawer {
|
|
|
|
}.openHomeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
TestHelper.scrollToElementByText("Logins and passwords")
|
|
|
|
}.openLoginsAndPasswordSubMenu {
|
|
|
|
verifyDefaultView()
|
|
|
|
verifyDefaultValueSyncLogins()
|
|
|
|
}.openSavedLogins {
|
|
|
|
verifySavedLoginsView()
|
|
|
|
tapSetupLater()
|
|
|
|
// Verify that the login appears correctly
|
|
|
|
verifySavedLoginFromPrompt()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun doNotSaveLoginFromPromptTest() {
|
|
|
|
val saveLoginTest = TestAssetHelper.getSaveLoginAsset(mockWebServer)
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
}.enterURLAndEnterToBrowser(saveLoginTest.url) {
|
|
|
|
verifySaveLoginPromptIsShown()
|
|
|
|
// Don't save the login
|
|
|
|
saveLoginFromPrompt("Never save")
|
|
|
|
}.openTabDrawer {
|
|
|
|
}.openHomeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openLoginsAndPasswordSubMenu {
|
|
|
|
verifyDefaultView()
|
|
|
|
verifyDefaultValueSyncLogins()
|
|
|
|
}.openSavedLogins {
|
|
|
|
verifySavedLoginsView()
|
|
|
|
tapSetupLater()
|
|
|
|
// Verify that the login list is empty
|
|
|
|
verifyNotSavedLoginFromPromt()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun saveLoginsAndPasswordsOptions() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openLoginsAndPasswordSubMenu {
|
|
|
|
}.saveLoginsAndPasswordsOptions {
|
|
|
|
verifySaveLoginsOptionsView()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun verifyPrivateBrowsingMenuItemsTest() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openPrivateBrowsingSubMenu {
|
|
|
|
verifyAddPrivateBrowsingShortcutButton()
|
|
|
|
verifyOpenLinksInPrivateTab()
|
|
|
|
verifyOpenLinksInPrivateTabOff()
|
|
|
|
}.goBack {
|
|
|
|
verifySettingsView()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Ignore("See: https://github.com/mozilla-mobile/fenix/issues/10915")
|
|
|
|
fun openExternalLinksInPrivateTest() {
|
|
|
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
|
|
|
|
|
|
|
setOpenLinksInPrivateOn()
|
|
|
|
|
|
|
|
openAppFromExternalLink(defaultWebPage.url.toString())
|
|
|
|
|
|
|
|
browserScreen {
|
|
|
|
}.openTabDrawer {
|
|
|
|
verifyPrivateModeSelected()
|
|
|
|
}.openHomeScreen { }
|
|
|
|
|
|
|
|
setOpenLinksInPrivateOff()
|
|
|
|
|
|
|
|
openAppFromExternalLink(defaultWebPage.url.toString())
|
|
|
|
|
|
|
|
browserScreen {
|
|
|
|
}.openTabDrawer {
|
|
|
|
verifyNormalModeSelected()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Ignore("See: https://github.com/mozilla-mobile/fenix/issues/10915")
|
|
|
|
fun launchPageShortcutInPrivateModeTest() {
|
|
|
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
|
|
|
|
|
|
|
setOpenLinksInPrivateOn()
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openAddToHomeScreen {
|
|
|
|
addShortcutName(pageShortcutName)
|
|
|
|
clickAddShortcutButton()
|
|
|
|
clickAddAutomaticallyButton()
|
|
|
|
}.openHomeScreenShortcut(pageShortcutName) {
|
|
|
|
}.openTabDrawer {
|
|
|
|
verifyPrivateModeSelected()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun launchLinksInPrivateToggleOffStateDoesntChangeTest() {
|
|
|
|
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
|
|
|
|
|
|
|
setOpenLinksInPrivateOn()
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openAddToHomeScreen {
|
|
|
|
addShortcutName(pageShortcutName)
|
|
|
|
clickAddShortcutButton()
|
|
|
|
clickAddAutomaticallyButton()
|
|
|
|
}.openHomeScreenShortcut(pageShortcutName) {
|
|
|
|
}.openTabDrawer {
|
|
|
|
}.openHomeScreen { }
|
|
|
|
|
|
|
|
setOpenLinksInPrivateOff()
|
|
|
|
restartApp(activityTestRule)
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
|
|
|
addToHomeScreen {
|
|
|
|
}.searchAndOpenHomeScreenShortcut(pageShortcutName) {
|
|
|
|
}.openTabDrawer {
|
|
|
|
verifyNormalModeSelected()
|
|
|
|
}.openHomeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openPrivateBrowsingSubMenu {
|
|
|
|
verifyOpenLinksInPrivateTabOff()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Test
|
|
|
|
fun addPrivateBrowsingShortcut() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openPrivateBrowsingSubMenu {
|
|
|
|
addPrivateShortcutToHomescreen()
|
|
|
|
verifyPrivateBrowsingShortcutIcon()
|
|
|
|
}.openPrivateBrowsingShortcut {
|
|
|
|
verifySearchView()
|
|
|
|
}.openBrowser {
|
|
|
|
}.openTabDrawer {
|
|
|
|
verifyPrivateModeSelected()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@Ignore("This is a stub test, ignore for now")
|
|
|
|
@Test
|
|
|
|
fun toggleTrackingProtection() {
|
|
|
|
// Open static test website to verify TP is turned on (default): https://github.com/rpappalax/testapp
|
|
|
|
// (static content needs to be migrated to assets folder)
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Toggle Tracking Protection to 'off'
|
|
|
|
// Back arrow to Home
|
|
|
|
// Open static test website to verify TP is now off: https://github.com/rpappalax/testapp
|
|
|
|
}
|
|
|
|
|
|
|
|
@Ignore("This is a stub test, ignore for now")
|
|
|
|
@Test
|
|
|
|
fun verifySitePermissions() {
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Click on: "Site permissions"
|
|
|
|
// Verify sub-menu items...
|
|
|
|
// Click on: "Exceptions"
|
|
|
|
// Verify: "No site exceptions"
|
|
|
|
// TBD: create a site exception
|
|
|
|
// TBD: return to this UI and verify
|
|
|
|
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: geolocation"
|
|
|
|
// Verify that geolocation permissions dialogue is opened
|
|
|
|
// Verify text: "Allow <website URL> to use your geolocation?
|
|
|
|
// Verify toggle: 'Remember decision for this site?"
|
|
|
|
// Verify button: "Don't Allow"
|
|
|
|
// Verify button: "Allow" (default)
|
|
|
|
// Select "Remember decision for this site"
|
|
|
|
// Refresh page
|
|
|
|
// Click on "Test site permissions: geolocation"
|
|
|
|
// Verify that geolocation permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: camera"
|
|
|
|
// Verify that camera permissions dialogue is opened
|
|
|
|
// Verify text: "Allow <website URL> to use your camera?
|
|
|
|
// Verify toggle: 'Remember decision for this site?"
|
|
|
|
// Verify button: "Don't Allow"
|
|
|
|
// Verify button: "Allow" (default)
|
|
|
|
// Select "Remember decision for this site"
|
|
|
|
// Refresh page
|
|
|
|
// Click on "Test site permissions: camera"
|
|
|
|
// Verify that camera permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: microphone"
|
|
|
|
// Verify that microphone permissions dialogue is opened
|
|
|
|
// Verify text: "Allow <website URL> to use your microphone?
|
|
|
|
// Verify toggle: 'Remember decision for this site?"
|
|
|
|
// Verify button: "Don't Allow"
|
|
|
|
// Verify button: "Allow" (default)
|
|
|
|
// Select "Remember decision for this site"
|
|
|
|
// Refresh page
|
|
|
|
// Click on "Test site permissions: microphone"
|
|
|
|
// Verify that microphone permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: notifications dialogue"
|
|
|
|
// Verify that notifications dialogue permissions dialogue is opened
|
|
|
|
// Verify text: "Allow <website URL> to send notifications?
|
|
|
|
// Verify toggle: 'Remember decision for this site?"
|
|
|
|
// Verify button: "Never"
|
|
|
|
// Verify button: "Always" (default)
|
|
|
|
// Select "Remember decision for this site"
|
|
|
|
// Refresh page
|
|
|
|
// Click on "Test site permissions: notifications dialogue"
|
|
|
|
// Verify that notifications dialogue permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Click on: "Site permissions"
|
|
|
|
// Select: Camera
|
|
|
|
// Switch from "ask to allow" (default) to "blocked"
|
|
|
|
// Click back arrow
|
|
|
|
//
|
|
|
|
// Select: Location
|
|
|
|
// Switch from "ask to allow" (default) to "blocked"
|
|
|
|
// Click back arrow
|
|
|
|
//
|
|
|
|
// Select: Microphone
|
|
|
|
// Switch from "ask to allow" (default) to "blocked"
|
|
|
|
// Click back arrow
|
|
|
|
//
|
|
|
|
// Select: Notification
|
|
|
|
// Switch from "ask to allow" (default) to "blocked"
|
|
|
|
// Click back arrow
|
|
|
|
//
|
|
|
|
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: camera dialogue"
|
|
|
|
// Verify that notifications dialogue permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: geolocation dialogue"
|
|
|
|
// Verify that notifications dialogue permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: microphone dialogue"
|
|
|
|
// Verify that notifications dialogue permissions dialogue is not opened
|
|
|
|
//
|
|
|
|
// Open browser to static test website: https://github.com/rpappalax/testapp
|
|
|
|
// Click on "Test site permissions: notifications dialogue"
|
|
|
|
// Verify that notifications dialogue permissions dialogue is not opened
|
|
|
|
}
|
|
|
|
|
|
|
|
@Ignore("This is a stub test, ignore for now")
|
|
|
|
@Test
|
|
|
|
fun deleteBrowsingData() {
|
|
|
|
// Setup:
|
|
|
|
// Open 2 websites as 2 tabs
|
|
|
|
// Save as 1 collection
|
|
|
|
// Open 2 more websites in 2 other tabs
|
|
|
|
// Save as a 2nd collection
|
|
|
|
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Click on "Delete browsing data"
|
|
|
|
// Verify correct number of tabs, addresses and collections are indicated
|
|
|
|
// Select all 3 checkboxes
|
|
|
|
// Click on "Delete browsing data button"
|
|
|
|
// Return to home screen and verify that all tabs, history and collection are gone
|
|
|
|
//
|
|
|
|
// Verify xxx
|
|
|
|
//
|
|
|
|
// New: If coming from tab -> settings -> delete browsing data
|
|
|
|
// then expect to return to home screen
|
|
|
|
// If coming from tab -> home -> settings -> delete browsing data
|
|
|
|
// then expect return to settings (after which you can return to home manually)
|
|
|
|
}
|
|
|
|
|
|
|
|
@Ignore("This is a stub test, ignore for now")
|
|
|
|
@Test
|
|
|
|
fun verifyDataCollection() {
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Click on "Data collection"
|
|
|
|
// Verify header: "Usage and technical data"
|
|
|
|
// Verify text: "Shares performance, usage, hardware and customization data about your browser with Mozilla"
|
|
|
|
// " to help us make Firefox preview better"
|
|
|
|
// Verify toggle is on by default
|
|
|
|
// TBD:
|
|
|
|
// see: telemetry testcases
|
|
|
|
}
|
|
|
|
|
|
|
|
@Ignore("This is a stub test, ignore for now")
|
|
|
|
@Test
|
|
|
|
fun openPrivacyNotice() {
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Click on "Privacy notice"
|
|
|
|
// Verify redirect to: mozilla.org Privacy notice page"
|
|
|
|
}
|
|
|
|
|
|
|
|
@Ignore("This is a stub test, ignore for now")
|
|
|
|
@Test
|
|
|
|
fun checkLeakCanary() {
|
|
|
|
// Open 3dot (main) menu
|
|
|
|
// Select settings
|
|
|
|
// Click on Leak Canary toggle
|
|
|
|
// Verify 'dump' message
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun setOpenLinksInPrivateOn() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openPrivateBrowsingSubMenu {
|
|
|
|
verifyOpenLinksInPrivateTabEnabled()
|
|
|
|
clickOpenLinksInPrivateTabSwitch()
|
|
|
|
}.goBack {
|
|
|
|
}.goBack {
|
|
|
|
verifyHomeComponent()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private fun setOpenLinksInPrivateOff() {
|
|
|
|
homeScreen {
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
}.openSettings {
|
|
|
|
}.openPrivateBrowsingSubMenu {
|
|
|
|
clickOpenLinksInPrivateTabSwitch()
|
|
|
|
verifyOpenLinksInPrivateTabOff()
|
|
|
|
}.goBack {
|
|
|
|
}.goBack {
|
|
|
|
verifyHomeComponent()
|
|
|
|
}
|
|
|
|
}
|