1 /* This Source Code Form is subject to the terms of the Mozilla Public
2 * License, v. 2.0. If a copy of the MPL was not distributed with this
3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
5 package org.mozilla.fenix.ui
7 import org.junit.Ignore
10 import org.mozilla.fenix.R
11 import org.mozilla.fenix.customannotations.SmokeTest
12 import org.mozilla.fenix.helpers.AppAndSystemHelper.setNetworkEnabled
13 import org.mozilla.fenix.helpers.DataGenerationHelper.getStringResource
14 import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
15 import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId
16 import org.mozilla.fenix.helpers.TestAssetHelper
17 import org.mozilla.fenix.helpers.TestAssetHelper.getStorageTestAsset
18 import org.mozilla.fenix.helpers.TestHelper.exitMenu
19 import org.mozilla.fenix.helpers.TestHelper.mDevice
20 import org.mozilla.fenix.helpers.TestHelper.restartApp
21 import org.mozilla.fenix.helpers.TestSetup
22 import org.mozilla.fenix.ui.robots.browserScreen
23 import org.mozilla.fenix.ui.robots.clickPageObject
24 import org.mozilla.fenix.ui.robots.homeScreen
25 import org.mozilla.fenix.ui.robots.navigationToolbar
26 import org.mozilla.fenix.ui.robots.settingsScreen
29 * Tests for verifying the Settings for:
30 * Delete Browsing Data
33 class SettingsDeleteBrowsingDataTest : TestSetup() {
35 val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true)
37 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/937561
39 fun deleteBrowsingDataOptionStatesTest() {
43 }.openSettingsSubMenuDeleteBrowsingData {
44 verifyAllCheckBoxesAreChecked()
45 switchBrowsingHistoryCheckBox()
46 switchCachedFilesCheckBox()
47 verifyOpenTabsCheckBox(true)
48 verifyBrowsingHistoryDetails(false)
49 verifyCookiesCheckBox(true)
50 verifyCachedFilesCheckBox(false)
51 verifySitePermissionsCheckBox(true)
52 verifyDownloadsCheckBox(true)
55 restartApp(activityTestRule)
60 }.openSettingsSubMenuDeleteBrowsingData {
61 verifyOpenTabsCheckBox(true)
62 verifyBrowsingHistoryDetails(false)
63 verifyCookiesCheckBox(true)
64 verifyCachedFilesCheckBox(false)
65 verifySitePermissionsCheckBox(true)
66 verifyDownloadsCheckBox(true)
67 switchOpenTabsCheckBox()
68 switchBrowsingHistoryCheckBox()
69 switchCookiesCheckBox()
70 switchCachedFilesCheckBox()
71 switchSitePermissionsCheckBox()
72 switchDownloadsCheckBox()
73 verifyOpenTabsCheckBox(false)
74 verifyBrowsingHistoryDetails(true)
75 verifyCookiesCheckBox(false)
76 verifyCachedFilesCheckBox(true)
77 verifySitePermissionsCheckBox(false)
78 verifyDownloadsCheckBox(false)
81 restartApp(activityTestRule)
86 }.openSettingsSubMenuDeleteBrowsingData {
87 verifyOpenTabsCheckBox(false)
88 verifyBrowsingHistoryDetails(true)
89 verifyCookiesCheckBox(false)
90 verifyCachedFilesCheckBox(true)
91 verifySitePermissionsCheckBox(false)
92 verifyDownloadsCheckBox(false)
96 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517811
98 fun deleteOpenTabsBrowsingDataWithNoOpenTabsTest() {
102 }.openSettingsSubMenuDeleteBrowsingData {
103 verifyAllCheckBoxesAreChecked()
104 selectOnlyOpenTabsCheckBox()
105 clickDeleteBrowsingDataButton()
106 verifyDeleteBrowsingDataDialog()
107 confirmDeletionAndAssertSnackbar()
110 verifyGeneralHeading()
114 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/353531
117 fun deleteOpenTabsBrowsingDataTest() {
118 val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
121 }.enterURLAndEnterToBrowser(defaultWebPage.url) {
122 mDevice.waitForIdle()
125 }.openSettingsSubMenuDeleteBrowsingData {
126 verifyAllCheckBoxesAreChecked()
127 selectOnlyOpenTabsCheckBox()
128 clickDeleteBrowsingDataButton()
129 verifyDeleteBrowsingDataDialog()
130 clickDialogCancelButton()
131 verifyOpenTabsCheckBox(true)
132 clickDeleteBrowsingDataButton()
133 verifyDeleteBrowsingDataDialog()
134 confirmDeletionAndAssertSnackbar()
137 verifyGeneralHeading()
138 }.openSettingsSubMenuDeleteBrowsingData {
139 verifyOpenTabsDetails("0")
143 verifyNoOpenTabsInNormalBrowsing()
147 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/378864
150 fun deleteBrowsingHistoryTest() {
151 val genericPage = getStorageTestAsset(mockWebServer, "generic1.html").url
154 }.enterURLAndEnterToBrowser(genericPage) {
157 }.openSettingsSubMenuDeleteBrowsingData {
158 verifyBrowsingHistoryDetails("1")
159 selectOnlyBrowsingHistoryCheckBox()
160 clickDeleteBrowsingDataButton()
161 verifyDeleteBrowsingDataDialog()
162 clickDialogCancelButton()
163 verifyBrowsingHistoryDetails(true)
164 clickDeleteBrowsingDataButton()
165 verifyDeleteBrowsingDataDialog()
166 confirmDeletionAndAssertSnackbar()
167 verifyBrowsingHistoryDetails("0")
173 verifyEmptyHistoryView()
178 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416041
181 fun deleteCookiesAndSiteDataTest() {
182 val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
183 val storageWritePage = getStorageTestAsset(mockWebServer, "storage_write.html").url
184 val storageCheckPage = getStorageTestAsset(mockWebServer, "storage_check.html").url
186 // Browsing a generic page to allow GV to load on a fresh run
188 }.enterURLAndEnterToBrowser(genericPage.url) {
189 }.openNavigationToolbar {
190 }.enterURLAndEnterToBrowser(storageWritePage) {
191 verifyPageContent("No cookies set")
192 clickPageObject(itemWithResId("setCookies"))
193 verifyPageContent("user=android")
194 }.openNavigationToolbar {
195 }.enterURLAndEnterToBrowser(storageCheckPage) {
196 verifyPageContent("Session storage has value")
197 verifyPageContent("Local storage has value")
200 }.openSettingsSubMenuDeleteBrowsingData {
201 selectOnlyCookiesCheckBox()
202 clickDeleteBrowsingDataButton()
203 verifyDeleteBrowsingDataDialog()
204 clickDialogCancelButton()
205 verifyCookiesCheckBox(status = true)
206 clickDeleteBrowsingDataButton()
207 verifyDeleteBrowsingDataDialog()
208 confirmDeletionAndAssertSnackbar()
212 }.enterURLAndEnterToBrowser(storageCheckPage) {
213 verifyPageContent("Session storage empty")
214 verifyPageContent("Local storage empty")
215 }.openNavigationToolbar {
216 }.enterURLAndEnterToBrowser(storageWritePage) {
217 verifyPageContent("No cookies set")
221 // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416042
222 @Ignore("Failing, see: https://bugzilla.mozilla.org/show_bug.cgi?id=1807268")
225 fun deleteCachedFilesTest() {
226 val pocketTopArticles = getStringResource(R.string.pocket_pinned_top_articles)
229 verifyExistingTopSitesTabs(pocketTopArticles)
230 }.openTopSiteTabWithTitle(pocketTopArticles) {
234 }.submitQuery("about:cache") {
235 // disabling wifi to prevent downloads in the background
236 setNetworkEnabled(enabled = false)
239 }.openSettingsSubMenuDeleteBrowsingData {
240 selectOnlyCachedFilesCheckBox()
241 clickDeleteBrowsingDataButton()
242 verifyDeleteBrowsingDataDialog()
243 confirmDeletionAndAssertSnackbar()
249 verifyNetworkCacheIsEmpty("memory")
250 verifyNetworkCacheIsEmpty("disk")
252 setNetworkEnabled(enabled = true)