You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
iceraven-browser/app/src/androidTest/java/org/mozilla/fenix/ui/SettingsDeleteBrowsingDataO...

261 lines
8.8 KiB
Kotlin

/* 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 android.Manifest
import androidx.core.net.toUri
import androidx.test.espresso.Espresso.pressBack
import androidx.test.rule.GrantPermissionRule
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.R
import org.mozilla.fenix.customannotations.SmokeTest
import org.mozilla.fenix.helpers.AppAndSystemHelper.setNetworkEnabled
import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
import org.mozilla.fenix.helpers.MatcherHelper
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestAssetHelper.getStorageTestAsset
import org.mozilla.fenix.helpers.TestHelper.exitMenu
import org.mozilla.fenix.helpers.TestHelper.mDevice
import org.mozilla.fenix.helpers.TestHelper.restartApp
import org.mozilla.fenix.helpers.TestSetup
import org.mozilla.fenix.ui.robots.clickPageObject
import org.mozilla.fenix.ui.robots.downloadRobot
import org.mozilla.fenix.ui.robots.homeScreen
import org.mozilla.fenix.ui.robots.navigationToolbar
/**
* Tests for verifying the Settings for:
* Delete Browsing Data on quit
*
*/
class SettingsDeleteBrowsingDataOnQuitTest : TestSetup() {
@get:Rule
val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true)
// Automatically allows app permissions, avoiding a system dialog showing up.
@get:Rule
val grantPermissionRule: GrantPermissionRule = GrantPermissionRule.grant(
Manifest.permission.RECORD_AUDIO,
)
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416048
@Test
fun deleteBrowsingDataOnQuitSettingTest() {
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
verifyNavigationToolBarHeader()
verifyDeleteBrowsingOnQuitEnabled(false)
verifyDeleteBrowsingOnQuitButtonSummary()
verifyDeleteBrowsingOnQuitEnabled(false)
clickDeleteBrowsingOnQuitButtonSwitch()
verifyDeleteBrowsingOnQuitEnabled(true)
verifyAllTheCheckBoxesText()
verifyAllTheCheckBoxesChecked(true)
}.goBack {
verifySettingsOptionSummary("Delete browsing data on quit", "On")
}.goBack {
}.openThreeDotMenu {
verifyQuitButtonExists()
pressBack()
}
navigationToolbar {
}.enterURLAndEnterToBrowser("test".toUri()) {
}.openThreeDotMenu {
verifyQuitButtonExists()
}
}
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416049
@Test
fun deleteOpenTabsOnQuitTest() {
val testPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
navigationToolbar {
}.enterURLAndEnterToBrowser(testPage.url) {
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
restartApp(activityTestRule)
}
navigationToolbar {
}.openTabTray {
verifyNoOpenTabsInNormalBrowsing()
}
}
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416050
@Test
fun deleteBrowsingHistoryOnQuitTest() {
val genericPage =
getStorageTestAsset(mockWebServer, "generic1.html")
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
navigationToolbar {
}.enterURLAndEnterToBrowser(genericPage.url) {
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
restartApp(activityTestRule)
}
homeScreen {
}.openThreeDotMenu {
}.openHistory {
verifyEmptyHistoryView()
exitMenu()
}
}
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416051
@Test
fun deleteCookiesAndSiteDataOnQuitTest() {
val storageWritePage =
getStorageTestAsset(mockWebServer, "storage_write.html")
val storageCheckPage =
getStorageTestAsset(mockWebServer, "storage_check.html")
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
navigationToolbar {
}.enterURLAndEnterToBrowser(storageWritePage.url) {
clickPageObject(MatcherHelper.itemWithText("Set cookies"))
verifyPageContent("Values written to storage")
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
restartApp(activityTestRule)
}
navigationToolbar {
}.enterURLAndEnterToBrowser(storageCheckPage.url) {
verifyPageContent("Session storage empty")
verifyPageContent("Local storage empty")
}.openNavigationToolbar {
}.enterURLAndEnterToBrowser(storageWritePage.url) {
verifyPageContent("No cookies set")
}
}
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/1243096
@SmokeTest
@Test
fun deleteDownloadsOnQuitTest() {
val downloadTestPage = "https://storage.googleapis.com/mobile_test_assets/test_app/downloads.html"
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
downloadRobot {
openPageAndDownloadFile(url = downloadTestPage.toUri(), downloadFile = "smallZip.zip")
verifyDownloadCompleteNotificationPopup()
}.closeDownloadPrompt {
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
mDevice.waitForIdle()
}
restartApp(activityTestRule)
homeScreen {
}.openThreeDotMenu {
}.openDownloadsManager {
verifyEmptyDownloadsList()
}
}
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416053
@SmokeTest
@Test
fun deleteSitePermissionsOnQuitTest() {
val testPage = "https://mozilla-mobile.github.io/testapp/permissions"
val testPageSubstring = "https://mozilla-mobile.github.io:443"
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
navigationToolbar {
}.enterURLAndEnterToBrowser(testPage.toUri()) {
waitForPageToLoad()
}.clickStartMicrophoneButton {
verifyMicrophonePermissionPrompt(testPageSubstring)
selectRememberPermissionDecision()
}.clickPagePermissionButton(false) {
verifyPageContent("Microphone not allowed")
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
mDevice.waitForIdle()
}
restartApp(activityTestRule)
navigationToolbar {
}.enterURLAndEnterToBrowser(testPage.toUri()) {
waitForPageToLoad()
}.clickStartMicrophoneButton {
verifyMicrophonePermissionPrompt(testPageSubstring)
}
}
// TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416052
@Test
fun deleteCachedFilesOnQuitTest() {
val pocketTopArticles = getStringResource(R.string.pocket_pinned_top_articles)
homeScreen {
}.openThreeDotMenu {
}.openSettings {
}.openSettingsSubMenuDeleteBrowsingDataOnQuit {
clickDeleteBrowsingOnQuitButtonSwitch()
exitMenu()
}
homeScreen {
verifyExistingTopSitesTabs(pocketTopArticles)
}.openTopSiteTabWithTitle(pocketTopArticles) {
waitForPageToLoad()
}.goToHomescreen {
}.openThreeDotMenu {
clickQuit()
mDevice.waitForIdle()
}
// disabling wifi to prevent downloads in the background
setNetworkEnabled(enabled = false)
restartApp(activityTestRule)
navigationToolbar {
}.enterURLAndEnterToBrowser("about:cache".toUri()) {
verifyNetworkCacheIsEmpty("memory")
verifyNetworkCacheIsEmpty("disk")
}
setNetworkEnabled(enabled = true)
}
}