Bug 1807268 - Re-enable verifyShowClipboardSuggestionsToggleTest UI test r=jajohnson
[gecko.git] / mobile / android / fenix / app / src / androidTest / java / org / mozilla / fenix / ui / TextSelectionTest.kt
blob2cf731d63c845c9ae2af0b0d0efdca0a22a716aa
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.Rule
8 import org.junit.Test
9 import org.mozilla.fenix.customannotations.SmokeTest
10 import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
11 import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText
12 import org.mozilla.fenix.helpers.MatcherHelper.itemWithText
13 import org.mozilla.fenix.helpers.RetryTestRule
14 import org.mozilla.fenix.helpers.TestAssetHelper
15 import org.mozilla.fenix.helpers.TestHelper.mDevice
16 import org.mozilla.fenix.helpers.TestSetup
17 import org.mozilla.fenix.ui.robots.browserScreen
18 import org.mozilla.fenix.ui.robots.clickContextMenuItem
19 import org.mozilla.fenix.ui.robots.clickPageObject
20 import org.mozilla.fenix.ui.robots.homeScreen
21 import org.mozilla.fenix.ui.robots.longClickPageObject
22 import org.mozilla.fenix.ui.robots.navigationToolbar
23 import org.mozilla.fenix.ui.robots.openEditURLView
24 import org.mozilla.fenix.ui.robots.searchScreen
25 import org.mozilla.fenix.ui.robots.shareOverlay
27 class TextSelectionTest : TestSetup() {
28     @get:Rule
29     val activityIntentTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides()
31     @Rule
32     @JvmField
33     val retryTestRule = RetryTestRule(3)
35     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326832
36     @SmokeTest
37     @Test
38     fun verifySelectAllTextOptionTest() {
39         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
41         navigationToolbar {
42         }.enterURLAndEnterToBrowser(genericURL.url) {
43             longClickPageObject(itemContainingText("content"))
44             clickContextMenuItem("Select all")
45             clickContextMenuItem("Copy")
46         }.openNavigationToolbar {
47             openEditURLView()
48         }
50         searchScreen {
51             clickClearButton()
52             longClickToolbar()
53             clickPasteText()
54             // With Select all, white spaces are copied
55             // Potential bug https://bugzilla.mozilla.org/show_bug.cgi?id=1821310
56             verifyTypedToolbarText("  Page content: 1 ")
57         }
58     }
60     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326828
61     @Test
62     fun verifyCopyTextOptionTest() {
63         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
65         navigationToolbar {
66         }.enterURLAndEnterToBrowser(genericURL.url) {
67             longClickPageObject(itemContainingText("content"))
68             clickContextMenuItem("Copy")
69         }.openNavigationToolbar {
70             openEditURLView()
71         }
73         searchScreen {
74             clickClearButton()
75             longClickToolbar()
76             clickPasteText()
77             verifyTypedToolbarText("content")
78         }
79     }
81     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326829
82     @Test
83     fun verifyShareSelectedTextOptionTest() {
84         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
86         navigationToolbar {
87         }.enterURLAndEnterToBrowser(genericURL.url) {
88             longClickPageObject(itemWithText(genericURL.content))
89         }.clickShareSelectedText {
90             verifyAndroidShareLayout()
91         }
92     }
94     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326830
95     @Test
96     fun verifySearchTextOptionTest() {
97         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
99         navigationToolbar {
100         }.enterURLAndEnterToBrowser(genericURL.url) {
101             longClickPageObject(itemContainingText("content"))
102             clickContextMenuItem("Search")
103             mDevice.waitForIdle()
104             verifyTabCounter("2")
105             verifyUrl("content")
106         }
107     }
109     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326831
110     @SmokeTest
111     @Test
112     fun verifyPrivateSearchTextTest() {
113         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
115         homeScreen {
116         }.togglePrivateBrowsingMode()
118         navigationToolbar {
119         }.enterURLAndEnterToBrowser(genericURL.url) {
120             longClickPageObject(itemContainingText("content"))
121             clickContextMenuItem("Private Search")
122             mDevice.waitForIdle()
123             verifyTabCounter("2")
124             verifyUrl("content")
125         }
126     }
128     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326834
129     @Test
130     fun verifySelectAllPDFTextOptionTest() {
131         val genericURL =
132             TestAssetHelper.getGenericAsset(mockWebServer, 3)
134         navigationToolbar {
135         }.enterURLAndEnterToBrowser(genericURL.url) {
136             clickPageObject(itemWithText("PDF form file"))
137             longClickPageObject(itemContainingText("Crossing"))
138             clickContextMenuItem("Select all")
139             clickContextMenuItem("Copy")
140         }.openNavigationToolbar {
141             openEditURLView()
142         }
144         searchScreen {
145             clickClearButton()
146             longClickToolbar()
147             clickPasteText()
148             verifyTypedToolbarText("Washington Crossing the Delaware Wikipedia linkName: Android")
149         }
150     }
152     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/243839
153     @SmokeTest
154     @Test
155     fun verifyCopyPDFTextOptionTest() {
156         val genericURL =
157             TestAssetHelper.getGenericAsset(mockWebServer, 3)
159         navigationToolbar {
160         }.enterURLAndEnterToBrowser(genericURL.url) {
161             clickPageObject(itemWithText("PDF form file"))
162             longClickPageObject(itemContainingText("Crossing"))
163             clickContextMenuItem("Copy")
164         }.openNavigationToolbar {
165             openEditURLView()
166         }
168         searchScreen {
169             clickClearButton()
170             longClickToolbar()
171             clickPasteText()
172             verifyTypedToolbarText("Crossing")
173         }
174     }
176     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326835
177     @Test
178     fun verifyShareSelectedPDFTextOptionTest() {
179         val genericURL =
180             TestAssetHelper.getGenericAsset(mockWebServer, 3)
182         navigationToolbar {
183         }.enterURLAndEnterToBrowser(genericURL.url) {
184             clickPageObject(itemWithText("PDF form file"))
185             longClickPageObject(itemContainingText("Crossing"))
186         }.clickShareSelectedText {
187             verifyAndroidShareLayout()
188         }
189     }
191     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326836
192     @SmokeTest
193     @Test
194     fun verifySearchPDFTextOptionTest() {
195         val genericURL =
196             TestAssetHelper.getGenericAsset(mockWebServer, 3)
198         navigationToolbar {
199         }.enterURLAndEnterToBrowser(genericURL.url) {
200             clickPageObject(itemWithText("PDF form file"))
201             longClickPageObject(itemContainingText("Crossing"))
202             clickContextMenuItem("Search")
203             verifyTabCounter("2")
204             verifyUrl("Crossing")
205         }
206     }
208     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326837
209     @Test
210     fun verifyPrivateSearchPDFTextOptionTest() {
211         val genericURL =
212             TestAssetHelper.getGenericAsset(mockWebServer, 3)
214         homeScreen {
215         }.togglePrivateBrowsingMode()
217         navigationToolbar {
218         }.enterURLAndEnterToBrowser(genericURL.url) {
219             clickPageObject(itemWithText("PDF form file"))
220             longClickPageObject(itemContainingText("Crossing"))
221             clickContextMenuItem("Private Search")
222             verifyTabCounter("2")
223             verifyUrl("Crossing")
224         }
225     }
227     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326813
228     @Test
229     fun verifyUrlBarTextSelectionOptionsTest() {
230         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
232         navigationToolbar {
233         }.enterURLAndEnterToBrowser(genericURL.url) {
234         }.openNavigationToolbar {
235             longClickEditModeToolbar()
236             verifyTextSelectionOptions("Open", "Cut", "Copy", "Share")
237         }
238     }
240     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326814
241     @Test
242     fun verifyCopyUrlBarTextSelectionOptionTest() {
243         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
245         navigationToolbar {
246         }.enterURLAndEnterToBrowser(genericURL.url) {
247         }.openNavigationToolbar {
248             longClickEditModeToolbar()
249             clickContextMenuItem("Copy")
250             clickClearToolbarButton()
251             verifyToolbarIsEmpty()
252             longClickEditModeToolbar()
253             clickContextMenuItem("Paste")
254             verifyUrl(genericURL.url.toString())
255         }
256     }
258     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/2326815
259     @Test
260     fun verifyCutUrlBarTextSelectionOptionTest() {
261         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
263         navigationToolbar {
264         }.enterURLAndEnterToBrowser(genericURL.url) {
265         }.openNavigationToolbar {
266             longClickEditModeToolbar()
267             clickContextMenuItem("Cut")
268             verifyToolbarIsEmpty()
269             longClickEditModeToolbar()
270             clickContextMenuItem("Paste")
271             verifyUrl(genericURL.url.toString())
272         }
273     }
275     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/243845
276     @SmokeTest
277     @Test
278     fun verifyShareUrlBarTextSelectionOptionTest() {
279         val genericURL = TestAssetHelper.getGenericAsset(mockWebServer, 1)
281         navigationToolbar {
282         }.enterURLAndEnterToBrowser(genericURL.url) {
283         }.openNavigationToolbar {
284             longClickEditModeToolbar()
285             clickContextMenuItem("Share")
286         }
287         shareOverlay {
288             verifyAndroidShareLayout()
289         }
290     }
292     // TestRail link: https://testrail.stage.mozaws.net/index.php?/cases/view/414316
293     @Test
294     fun urlBarQuickActionsTest() {
295         val firstWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 1)
296         val secondWebsite = TestAssetHelper.getGenericAsset(mockWebServer, 2)
298         navigationToolbar {
299         }.enterURLAndEnterToBrowser(firstWebsite.url) {
300             longClickToolbar()
301             clickContextMenuItem("Copy")
302         }
303         navigationToolbar {
304         }.enterURLAndEnterToBrowser(secondWebsite.url) {
305             longClickToolbar()
306             clickContextMenuItem("Paste")
307         }
308         searchScreen {
309             verifyTypedToolbarText(firstWebsite.url.toString())
310         }.dismissSearchBar {
311         }
312         browserScreen {
313             verifyUrl(secondWebsite.url.toString())
314             longClickToolbar()
315             clickContextMenuItem("Paste & Go")
316             verifyUrl(firstWebsite.url.toString())
317         }
318     }