Bug 1847583 - Fenix: Add search by bookmarks tests

fenix/118.0
oana.horvath 10 months ago committed by mergify[bot]
parent 585d3eb243
commit 7fd143e7f2

@ -799,7 +799,7 @@ class BookmarksTest {
}.clickSearchButton {
// Search for a valid term
typeSearch(firstWebPage.title)
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = firstWebPage.title)
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
}.dismissSearchBar {}
bookmarksMenu {
@ -852,7 +852,7 @@ class BookmarksTest {
typeSearch("generic")
verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString())
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString(), searchTerm = "generic")
pressBack()
}
bookmarksMenu {

@ -809,7 +809,7 @@ class ComposeBookmarksTest {
}.clickSearchButton {
// Search for a valid term
typeSearch(firstWebPage.title)
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = firstWebPage.title)
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
// Search for invalid term
typeSearch("Android")
@ -856,7 +856,7 @@ class ComposeBookmarksTest {
typeSearch("generic")
verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString())
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString(), searchTerm = "generic")
pressBack()
}
bookmarksMenu {

@ -408,7 +408,7 @@ class ComposeHistoryTest {
}.clickSearchButton {
// Search for a valid term
typeSearch(firstWebPage.title)
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = firstWebPage.title)
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
clickClearButton()
// Search for invalid term
@ -447,7 +447,7 @@ class ComposeHistoryTest {
typeSearch("generic")
verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString())
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString(), searchTerm = "generic")
pressBack()
}
historyMenu {

@ -20,6 +20,7 @@ import org.mozilla.fenix.customannotations.SmokeTest
import org.mozilla.fenix.helpers.Constants
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.helpers.MatcherHelper
import org.mozilla.fenix.helpers.MockBrowserDataHelper.createBookmarkItem
import org.mozilla.fenix.helpers.MockBrowserDataHelper.createTabItem
import org.mozilla.fenix.helpers.MockBrowserDataHelper.setCustomSearchEngine
import org.mozilla.fenix.helpers.SearchDispatcher
@ -559,7 +560,13 @@ class ComposeSearchTest {
}.openThreeDotMenu {
}.openHistory {
// Full URL no longer visible in the nav bar, so we'll check the history record
verifyHistoryItemExists(shouldExist = true, Constants.searchEngineCodes["Google"]!!)
// A search group is sometimes created when searching with Google (probably redirects)
try {
verifyHistoryItemExists(shouldExist = true, Constants.searchEngineCodes["Google"]!!)
} catch (e: AssertionError) {
openSearchGroup(queryString)
verifyHistoryItemExists(shouldExist = true, Constants.searchEngineCodes["Google"]!!)
}
}
}
@ -657,11 +664,14 @@ class ComposeSearchTest {
clickClearButton()
typeSearch(searchTerm = "generic")
verifyTypedToolbarText("generic")
verifyFirefoxSuggestResults(
verifySearchEngineSuggestionResults(
rule = activityTestRule,
searchSuggestions = arrayOf(
"Firefox Suggest",
firstPageUrl.url.toString(),
secondPageUrl.url.toString(),
),
searchTerm = "generic",
firstPageUrl.url.toString(),
secondPageUrl.url.toString(),
)
}.clickSearchSuggestion(firstPageUrl.url.toString()) {
verifyTabCounter("2")
@ -670,4 +680,53 @@ class ComposeSearchTest {
verifyOpenTabsOrder(position = 2, title = secondPageUrl.url.toString())
}
}
@Test
fun verifySearchForBookmarksUITest() {
navigationToolbar {
}.clickSearchSelectorButton {
selectTemporarySearchMethod("Bookmarks")
verifySearchBarPlaceholder("Search bookmarks")
verifyKeyboardVisibility(isExpectedToBeVisible = true)
verifyScanButtonVisibility(visible = false)
verifyVoiceSearchButtonVisibility(enabled = true)
}
}
@Test
fun bookmarkSearchWithNoBookmarksTest() {
navigationToolbar {
}.clickSearchSelectorButton {
selectTemporarySearchMethod("Bookmarks")
typeSearch("test")
verifyNoSuggestionsAreDisplayed(activityTestRule, "test")
}
}
@Test
fun bookmarkSearchWhenBookmarksExistTest() {
createBookmarkItem(url = "https://bookmarktest1.com", title = "Test1", position = 1u)
createBookmarkItem(url = "https://bookmarktest2.com", title = "Test2", position = 2u)
navigationToolbar {
}.clickSearchSelectorButton {
selectTemporarySearchMethod("Bookmarks")
typeSearch("test")
verifySearchEngineSuggestionResults(
activityTestRule,
searchSuggestions = arrayOf(
"Firefox Suggest",
"Test1",
"https://bookmarktest1.com/",
"Test2",
"https://bookmarktest2.com/",
),
searchTerm = "test",
)
}.dismissSearchBar {
}.openSearch {
typeSearch("mozilla ")
verifyNoSuggestionsAreDisplayed(activityTestRule, "Test1", "Test2")
}
}
}

@ -406,7 +406,7 @@ class HistoryTest {
}.clickSearchButton {
// Search for a valid term
typeSearch("generic")
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, firstWebPage.url.toString(), searchTerm = "generic")
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
}.dismissSearchBar {}
historyMenu {
@ -450,7 +450,11 @@ class HistoryTest {
typeSearch("generic")
verifyNoSuggestionsAreDisplayed(activityTestRule, firstWebPage.url.toString())
verifyNoSuggestionsAreDisplayed(activityTestRule, secondWebPage.url.toString())
verifySearchEngineSuggestionResults(activityTestRule, thirdWebPage.url.toString())
verifySearchEngineSuggestionResults(
activityTestRule,
thirdWebPage.url.toString(),
searchTerm = "generic",
)
pressBack()
}
historyMenu {

@ -55,7 +55,7 @@ import org.mozilla.fenix.ui.robots.searchScreen
*/
class SearchTest {
lateinit var searchMockServer: MockWebServer
private lateinit var searchMockServer: MockWebServer
private var queryString = "firefox"
private val generalEnginesList = listOf("DuckDuckGo", "Google", "Bing")
private val topicEnginesList = listOf("Amazon.com", "Wikipedia", "eBay")
@ -567,7 +567,13 @@ class SearchTest {
}.openThreeDotMenu {
}.openHistory {
// Full URL no longer visible in the nav bar, so we'll check the history record
verifyHistoryItemExists(shouldExist = true, searchEngineCodes["Google"]!!)
// A search group is sometimes created when searching with Google (probably redirects)
try {
verifyHistoryItemExists(shouldExist = true, searchEngineCodes["Google"]!!)
} catch (e: AssertionError) {
openSearchGroup(queryString)
verifyHistoryItemExists(shouldExist = true, searchEngineCodes["Google"]!!)
}
}
}
@ -665,11 +671,14 @@ class SearchTest {
clickClearButton()
typeSearch(searchTerm = "generic")
verifyTypedToolbarText("generic")
verifyFirefoxSuggestResults(
verifySearchEngineSuggestionResults(
rule = activityTestRule,
searchSuggestions = arrayOf(
"Firefox Suggest",
firstPageUrl.url.toString(),
secondPageUrl.url.toString(),
),
searchTerm = "generic",
firstPageUrl.url.toString(),
secondPageUrl.url.toString(),
)
}.clickSearchSuggestion(firstPageUrl.url.toString()) {
verifyTabCounter("2")

@ -152,11 +152,11 @@ class SettingsSearchTest {
homeScreen {
}.openSearch {
typeSearch("test")
verifyFirefoxSuggestResults(
verifySearchEngineSuggestionResults(
activityTestRule,
"test",
"Firefox Suggest",
"Test_Page_1",
page1.title,
searchTerm = "test",
)
}.clickSearchSuggestion("Test_Page_1") {
verifyUrl(page1.url.toString())
@ -207,11 +207,11 @@ class SettingsSearchTest {
homeScreen {
}.openSearch {
typeSearch("test")
verifyFirefoxSuggestResults(
verifySearchEngineSuggestionResults(
activityTestRule,
"test",
"Firefox Suggest",
"Test_Page_1",
website.title,
searchTerm = "test",
)
}.clickSearchSuggestion("Test_Page_1") {
verifyUrl(website.url.toString())
@ -236,7 +236,7 @@ class SettingsSearchTest {
verifyNoSuggestionsAreDisplayed(
activityTestRule,
"Firefox Suggest",
"Test_Page_1",
website.title,
)
}
}
@ -455,8 +455,12 @@ class SettingsSearchTest {
fun toggleSearchSuggestionsTest() {
homeScreen {
}.openSearch {
typeSearch("mozilla")
verifySearchEngineSuggestionResults(activityTestRule, "mozilla firefox")
typeSearch("mozilla ")
verifySearchEngineSuggestionResults(
activityTestRule,
"mozilla firefox",
searchTerm = "mozilla ",
)
}.dismissSearchBar {
}.openThreeDotMenu {
}.openSettings {
@ -492,7 +496,11 @@ class SettingsSearchTest {
typeSearch("mozilla")
verifyAllowSuggestionsInPrivateModeDialog()
allowSuggestionsInPrivateMode()
verifySearchEngineSuggestionResults(activityTestRule, "mozilla firefox")
verifySearchEngineSuggestionResults(
activityTestRule,
"mozilla firefox",
searchTerm = "mozilla",
)
}.dismissSearchBar {
}.openThreeDotMenu {
}.openSettings {

@ -133,11 +133,9 @@ class NavigationToolbarRobot {
// New unified search UI selector
fun verifyDefaultSearchEngine(engineName: String) =
assertTrue(
mDevice.findObject(
UiSelector()
.resourceId("$packageName:id/search_selector")
.childSelector(UiSelector().description(engineName)),
).waitForExists(waitingTime),
searchSelectorButton
.getChild(UiSelector().description(engineName))
.waitForExists(waitingTime),
)
fun verifyTextSelectionOptions(vararg textSelectionOptions: String) {
@ -355,6 +353,14 @@ class NavigationToolbarRobot {
SearchRobot().interact()
return SearchRobot.Transition()
}
fun clickSearchSelectorButton(interact: SearchRobot.() -> Unit): SearchRobot.Transition {
searchSelectorButton.waitForExists(waitingTime)
searchSelectorButton.click()
SearchRobot().interact()
return SearchRobot.Transition()
}
}
}
@ -442,6 +448,9 @@ private fun assertCloseReaderViewDetected(visible: Boolean) {
)
}
private val searchSelectorButton =
mDevice.findObject(UiSelector().resourceId("$packageName:id/search_selector"))
inline fun runWithIdleRes(ir: IdlingResource?, pendingCheck: () -> Unit) {
try {
IdlingRegistry.getInstance().register(ir)

@ -37,7 +37,6 @@ import org.mozilla.fenix.helpers.MatcherHelper.itemWithDescription
import org.mozilla.fenix.helpers.MatcherHelper.itemWithResId
import org.mozilla.fenix.helpers.SessionLoadedIdlingResource
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeLong
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTimeShort
import org.mozilla.fenix.helpers.TestHelper.getStringResource
import org.mozilla.fenix.helpers.TestHelper.grantSystemPermission
@ -93,26 +92,7 @@ class SearchRobot {
}
}
fun verifySearchEngineSuggestionResults(rule: ComposeTestRule, searchSuggestion: String) {
rule.waitForIdle()
for (i in 1..RETRY_COUNT) {
try {
assertTrue(
mDevice.findObject(UiSelector().textContains(searchSuggestion))
.waitForExists(waitingTimeLong),
)
break
} catch (e: AssertionError) {
if (i == RETRY_COUNT) {
throw e
} else {
expandSearchSuggestionsList()
}
}
}
}
fun verifyFirefoxSuggestResults(rule: ComposeTestRule, searchTerm: String, vararg searchSuggestions: String) {
fun verifySearchEngineSuggestionResults(rule: ComposeTestRule, vararg searchSuggestions: String, searchTerm: String) {
rule.waitForIdle()
for (i in 1..RETRY_COUNT) {
try {
@ -122,7 +102,6 @@ class SearchRobot {
.performScrollToNode(hasText(searchSuggestion))
.assertExists()
}
break
} catch (e: AssertionError) {
if (i == RETRY_COUNT) {

Loading…
Cancel
Save