Bug 1807268 - Re-enable verifyShowClipboardSuggestionsToggleTest UI test r=jajohnson
[gecko.git] / mobile / android / fenix / app / src / androidTest / java / org / mozilla / fenix / ui / ComposeSettingsDeleteBrowsingDataTest.kt
blob7b1fc996b25e197ff66c95abe02a6d86698686cf
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 androidx.compose.ui.test.junit4.AndroidComposeTestRule
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 ComposeSettingsDeleteBrowsingDataTest : TestSetup() {
34     @get:Rule
35     val composeTestRule =
36         AndroidComposeTestRule(
37             HomeActivityIntentTestRule.withDefaultSettingsOverrides(
38                 skipOnboarding = true,
39                 tabsTrayRewriteEnabled = true,
40             ),
41         ) { it.activity }
43     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/937561
44     @Test
45     fun deleteBrowsingDataOptionStatesTest() {
46         homeScreen {
47         }.openThreeDotMenu {
48         }.openSettings {
49         }.openSettingsSubMenuDeleteBrowsingData {
50             verifyAllCheckBoxesAreChecked()
51             switchBrowsingHistoryCheckBox()
52             switchCachedFilesCheckBox()
53             verifyOpenTabsCheckBox(true)
54             verifyBrowsingHistoryDetails(false)
55             verifyCookiesCheckBox(true)
56             verifyCachedFilesCheckBox(false)
57             verifySitePermissionsCheckBox(true)
58             verifyDownloadsCheckBox(true)
59         }
61         restartApp(composeTestRule.activityRule)
63         homeScreen {
64         }.openThreeDotMenu {
65         }.openSettings {
66         }.openSettingsSubMenuDeleteBrowsingData {
67             verifyOpenTabsCheckBox(true)
68             verifyBrowsingHistoryDetails(false)
69             verifyCookiesCheckBox(true)
70             verifyCachedFilesCheckBox(false)
71             verifySitePermissionsCheckBox(true)
72             verifyDownloadsCheckBox(true)
73             switchOpenTabsCheckBox()
74             switchBrowsingHistoryCheckBox()
75             switchCookiesCheckBox()
76             switchCachedFilesCheckBox()
77             switchSitePermissionsCheckBox()
78             switchDownloadsCheckBox()
79             verifyOpenTabsCheckBox(false)
80             verifyBrowsingHistoryDetails(true)
81             verifyCookiesCheckBox(false)
82             verifyCachedFilesCheckBox(true)
83             verifySitePermissionsCheckBox(false)
84             verifyDownloadsCheckBox(false)
85         }
87         restartApp(composeTestRule.activityRule)
89         homeScreen {
90         }.openThreeDotMenu {
91         }.openSettings {
92         }.openSettingsSubMenuDeleteBrowsingData {
93             verifyOpenTabsCheckBox(false)
94             verifyBrowsingHistoryDetails(true)
95             verifyCookiesCheckBox(false)
96             verifyCachedFilesCheckBox(true)
97             verifySitePermissionsCheckBox(false)
98             verifyDownloadsCheckBox(false)
99         }
100     }
102     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/517811
103     @Test
104     fun deleteOpenTabsBrowsingDataWithNoOpenTabsTest() {
105         homeScreen {
106         }.openThreeDotMenu {
107         }.openSettings {
108         }.openSettingsSubMenuDeleteBrowsingData {
109             verifyAllCheckBoxesAreChecked()
110             selectOnlyOpenTabsCheckBox()
111             clickDeleteBrowsingDataButton()
112             verifyDeleteBrowsingDataDialog()
113             confirmDeletionAndAssertSnackbar()
114         }
115         settingsScreen {
116             verifyGeneralHeading()
117         }
118     }
120     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/353531
121     @SmokeTest
122     @Test
123     fun deleteOpenTabsBrowsingDataTest() {
124         val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
126         navigationToolbar {
127         }.enterURLAndEnterToBrowser(defaultWebPage.url) {
128             mDevice.waitForIdle()
129         }.openThreeDotMenu {
130         }.openSettings {
131         }.openSettingsSubMenuDeleteBrowsingData {
132             verifyAllCheckBoxesAreChecked()
133             selectOnlyOpenTabsCheckBox()
134             clickDeleteBrowsingDataButton()
135             verifyDeleteBrowsingDataDialog()
136             clickDialogCancelButton()
137             verifyOpenTabsCheckBox(true)
138             clickDeleteBrowsingDataButton()
139             verifyDeleteBrowsingDataDialog()
140             confirmDeletionAndAssertSnackbar()
141         }
142         settingsScreen {
143             verifyGeneralHeading()
144         }.openSettingsSubMenuDeleteBrowsingData {
145             verifyOpenTabsDetails("0")
146         }.goBack {
147         }.goBack {
148         }.openComposeTabDrawer(composeTestRule) {
149             verifyNoOpenTabsInNormalBrowsing()
150         }
151     }
153     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/378864
154     @SmokeTest
155     @Test
156     fun deleteBrowsingHistoryTest() {
157         val genericPage = getStorageTestAsset(mockWebServer, "generic1.html").url
159         navigationToolbar {
160         }.enterURLAndEnterToBrowser(genericPage) {
161         }.openThreeDotMenu {
162         }.openSettings {
163         }.openSettingsSubMenuDeleteBrowsingData {
164             verifyBrowsingHistoryDetails("1")
165             selectOnlyBrowsingHistoryCheckBox()
166             clickDeleteBrowsingDataButton()
167             verifyDeleteBrowsingDataDialog()
168             clickDialogCancelButton()
169             verifyBrowsingHistoryDetails(true)
170             clickDeleteBrowsingDataButton()
171             verifyDeleteBrowsingDataDialog()
172             confirmDeletionAndAssertSnackbar()
173             verifyBrowsingHistoryDetails("0")
174             exitMenu()
175         }
176         navigationToolbar {
177         }.openThreeDotMenu {
178         }.openHistory {
179             verifyEmptyHistoryView()
180             mDevice.pressBack()
181         }
182     }
184     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416041
185     @SmokeTest
186     @Test
187     fun deleteCookiesAndSiteDataTest() {
188         val genericPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
189         val storageWritePage = getStorageTestAsset(mockWebServer, "storage_write.html").url
190         val storageCheckPage = getStorageTestAsset(mockWebServer, "storage_check.html").url
192         // Browsing a generic page to allow GV to load on a fresh run
193         navigationToolbar {
194         }.enterURLAndEnterToBrowser(genericPage.url) {
195         }.openNavigationToolbar {
196         }.enterURLAndEnterToBrowser(storageWritePage) {
197             verifyPageContent("No cookies set")
198             clickPageObject(itemWithResId("setCookies"))
199             verifyPageContent("user=android")
200         }.openNavigationToolbar {
201         }.enterURLAndEnterToBrowser(storageCheckPage) {
202             verifyPageContent("Session storage has value")
203             verifyPageContent("Local storage has value")
204         }.openThreeDotMenu {
205         }.openSettings {
206         }.openSettingsSubMenuDeleteBrowsingData {
207             selectOnlyCookiesCheckBox()
208             clickDeleteBrowsingDataButton()
209             verifyDeleteBrowsingDataDialog()
210             clickDialogCancelButton()
211             verifyCookiesCheckBox(status = true)
212             clickDeleteBrowsingDataButton()
213             verifyDeleteBrowsingDataDialog()
214             confirmDeletionAndAssertSnackbar()
215             exitMenu()
216         }
217         navigationToolbar {
218         }.enterURLAndEnterToBrowser(storageCheckPage) {
219             verifyPageContent("Session storage empty")
220             verifyPageContent("Local storage empty")
221         }.openNavigationToolbar {
222         }.enterURLAndEnterToBrowser(storageWritePage) {
223             verifyPageContent("No cookies set")
224         }
225     }
227     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/416042
228     @SmokeTest
229     @Test
230     fun deleteCachedFilesTest() {
231         val pocketTopArticles = getStringResource(R.string.pocket_pinned_top_articles)
233         homeScreen {
234             verifyExistingTopSitesTabs(pocketTopArticles)
235         }.openTopSiteTabWithTitle(pocketTopArticles) {
236             waitForPageToLoad()
237         }.openComposeTabDrawer(composeTestRule) {
238         }.openNewTab {
239         }.submitQuery("about:cache") {
240             // disabling wifi to prevent downloads in the background
241             setNetworkEnabled(enabled = false)
242         }.openThreeDotMenu {
243         }.openSettings {
244         }.openSettingsSubMenuDeleteBrowsingData {
245             selectOnlyCachedFilesCheckBox()
246             clickDeleteBrowsingDataButton()
247             verifyDeleteBrowsingDataDialog()
248             confirmDeletionAndAssertSnackbar()
249             exitMenu()
250         }
251         browserScreen {
252         }.openThreeDotMenu {
253         }.refreshPage {
254             verifyNetworkCacheIsEmpty("memory")
255             verifyNetworkCacheIsEmpty("disk")
256         }
257         setNetworkEnabled(enabled = true)
258     }