Bug 1807268 - Re-enable verifyShowClipboardSuggestionsToggleTest UI test r=jajohnson
[gecko.git] / mobile / android / fenix / app / src / androidTest / java / org / mozilla / fenix / ui / SettingsDeleteBrowsingDataTest.kt
bloba2dcf12695a989b5f41640bff24b67825ba811c0
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
8 import org.junit.Rule
9 import org.junit.Test
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
28 /**
29  *  Tests for verifying the Settings for:
30  *  Delete Browsing Data
31  */
33 class SettingsDeleteBrowsingDataTest : TestSetup() {
34     @get:Rule
35     val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides(skipOnboarding = true)
37     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/937561
38     @Test
39     fun deleteBrowsingDataOptionStatesTest() {
40         homeScreen {
41         }.openThreeDotMenu {
42         }.openSettings {
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)
53         }
55         restartApp(activityTestRule)
57         homeScreen {
58         }.openThreeDotMenu {
59         }.openSettings {
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)
79         }
81         restartApp(activityTestRule)
83         homeScreen {
84         }.openThreeDotMenu {
85         }.openSettings {
86         }.openSettingsSubMenuDeleteBrowsingData {
87             verifyOpenTabsCheckBox(false)
88             verifyBrowsingHistoryDetails(true)
89             verifyCookiesCheckBox(false)
90             verifyCachedFilesCheckBox(true)
91             verifySitePermissionsCheckBox(false)
92             verifyDownloadsCheckBox(false)
93         }
94     }
96     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517811
97     @Test
98     fun deleteOpenTabsBrowsingDataWithNoOpenTabsTest() {
99         homeScreen {
100         }.openThreeDotMenu {
101         }.openSettings {
102         }.openSettingsSubMenuDeleteBrowsingData {
103             verifyAllCheckBoxesAreChecked()
104             selectOnlyOpenTabsCheckBox()
105             clickDeleteBrowsingDataButton()
106             verifyDeleteBrowsingDataDialog()
107             confirmDeletionAndAssertSnackbar()
108         }
109         settingsScreen {
110             verifyGeneralHeading()
111         }
112     }
114     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/353531
115     @SmokeTest
116     @Test
117     fun deleteOpenTabsBrowsingDataTest() {
118         val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
120         navigationToolbar {
121         }.enterURLAndEnterToBrowser(defaultWebPage.url) {
122             mDevice.waitForIdle()
123         }.openThreeDotMenu {
124         }.openSettings {
125         }.openSettingsSubMenuDeleteBrowsingData {
126             verifyAllCheckBoxesAreChecked()
127             selectOnlyOpenTabsCheckBox()
128             clickDeleteBrowsingDataButton()
129             verifyDeleteBrowsingDataDialog()
130             clickDialogCancelButton()
131             verifyOpenTabsCheckBox(true)
132             clickDeleteBrowsingDataButton()
133             verifyDeleteBrowsingDataDialog()
134             confirmDeletionAndAssertSnackbar()
135         }
136         settingsScreen {
137             verifyGeneralHeading()
138         }.openSettingsSubMenuDeleteBrowsingData {
139             verifyOpenTabsDetails("0")
140         }.goBack {
141         }.goBack {
142         }.openTabDrawer {
143             verifyNoOpenTabsInNormalBrowsing()
144         }
145     }
147     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/378864
148     @SmokeTest
149     @Test
150     fun deleteBrowsingHistoryTest() {
151         val genericPage = getStorageTestAsset(mockWebServer, "generic1.html").url
153         navigationToolbar {
154         }.enterURLAndEnterToBrowser(genericPage) {
155         }.openThreeDotMenu {
156         }.openSettings {
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")
168             exitMenu()
169         }
170         navigationToolbar {
171         }.openThreeDotMenu {
172         }.openHistory {
173             verifyEmptyHistoryView()
174             mDevice.pressBack()
175         }
176     }
178     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416041
179     @SmokeTest
180     @Test
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
187         navigationToolbar {
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")
198         }.openThreeDotMenu {
199         }.openSettings {
200         }.openSettingsSubMenuDeleteBrowsingData {
201             selectOnlyCookiesCheckBox()
202             clickDeleteBrowsingDataButton()
203             verifyDeleteBrowsingDataDialog()
204             clickDialogCancelButton()
205             verifyCookiesCheckBox(status = true)
206             clickDeleteBrowsingDataButton()
207             verifyDeleteBrowsingDataDialog()
208             confirmDeletionAndAssertSnackbar()
209             exitMenu()
210         }
211         navigationToolbar {
212         }.enterURLAndEnterToBrowser(storageCheckPage) {
213             verifyPageContent("Session storage empty")
214             verifyPageContent("Local storage empty")
215         }.openNavigationToolbar {
216         }.enterURLAndEnterToBrowser(storageWritePage) {
217             verifyPageContent("No cookies set")
218         }
219     }
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")
223     @SmokeTest
224     @Test
225     fun deleteCachedFilesTest() {
226         val pocketTopArticles = getStringResource(R.string.pocket_pinned_top_articles)
228         homeScreen {
229             verifyExistingTopSitesTabs(pocketTopArticles)
230         }.openTopSiteTabWithTitle(pocketTopArticles) {
231             waitForPageToLoad()
232         }.openTabDrawer {
233         }.openNewTab {
234         }.submitQuery("about:cache") {
235             // disabling wifi to prevent downloads in the background
236             setNetworkEnabled(enabled = false)
237         }.openThreeDotMenu {
238         }.openSettings {
239         }.openSettingsSubMenuDeleteBrowsingData {
240             selectOnlyCachedFilesCheckBox()
241             clickDeleteBrowsingDataButton()
242             verifyDeleteBrowsingDataDialog()
243             confirmDeletionAndAssertSnackbar()
244             exitMenu()
245         }
246         browserScreen {
247         }.openThreeDotMenu {
248         }.refreshPage {
249             verifyNetworkCacheIsEmpty("memory")
250             verifyNetworkCacheIsEmpty("disk")
251         }
252         setNetworkEnabled(enabled = true)
253     }