No Issue - Fixes UI Tests with new search experience

pull/35/head
Jeff Boek 4 years ago
parent f734509ac4
commit 4b997c1334

@ -254,11 +254,9 @@ class HistoryTest {
navigationToolbar { navigationToolbar {
}.enterURLAndEnterToBrowser(firstWebPage.url) { }.enterURLAndEnterToBrowser(firstWebPage.url) {
}.openTabDrawer { }.openHomeScreen { } }.openTabDrawer {
}.openNewTab {
navigationToolbar { }.submitQuery(secondWebPage.url.toString()) {
}.enterURLAndEnterToBrowser(secondWebPage.url) {
mDevice.waitForIdle()
}.openThreeDotMenu { }.openThreeDotMenu {
}.openHistory { }.openHistory {
longTapSelectItem(firstWebPage.url) longTapSelectItem(firstWebPage.url)

@ -57,7 +57,7 @@ class SearchTest {
}.goBack { }.goBack {
}.goBack { }.goBack {
}.openSearch { }.openSearch {
verifySearchWithText() // verifySearchWithText()
clickSearchEngineButton("DuckDuckGo") clickSearchEngineButton("DuckDuckGo")
typeSearch("mozilla") typeSearch("mozilla")
verifySearchEngineResults("DuckDuckGo") verifySearchEngineResults("DuckDuckGo")

@ -191,7 +191,8 @@ class SettingsBasicsTest {
}.enterURLAndEnterToBrowser(webpage) { }.enterURLAndEnterToBrowser(webpage) {
checkTextSizeOnWebsite(textSizePercentage, fenixApp.components) checkTextSizeOnWebsite(textSizePercentage, fenixApp.components)
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openAccessibilitySubMenu { }.openAccessibilitySubMenu {

@ -194,7 +194,8 @@ class SettingsPrivacyTest {
// Click save to save the login // Click save to save the login
saveLoginFromPrompt("Save") saveLoginFromPrompt("Save")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
TestHelper.scrollToElementByText("Logins and passwords") TestHelper.scrollToElementByText("Logins and passwords")
@ -219,7 +220,8 @@ class SettingsPrivacyTest {
// Don't save the login, add to exceptions // Don't save the login, add to exceptions
saveLoginFromPrompt("Never save") saveLoginFromPrompt("Never save")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openLoginsAndPasswordSubMenu { }.openLoginsAndPasswordSubMenu {
@ -274,7 +276,7 @@ class SettingsPrivacyTest {
browserScreen { browserScreen {
}.openTabDrawer { }.openTabDrawer {
verifyPrivateModeSelected() verifyPrivateModeSelected()
}.openHomeScreen { } }.openNewTab { }.dismiss { }
setOpenLinksInPrivateOff() setOpenLinksInPrivateOff()
@ -321,7 +323,7 @@ class SettingsPrivacyTest {
clickAddAutomaticallyButton() clickAddAutomaticallyButton()
}.openHomeScreenShortcut(pageShortcutName) { }.openHomeScreenShortcut(pageShortcutName) {
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { } }.openNewTab { }.dismiss { }
setOpenLinksInPrivateOff() setOpenLinksInPrivateOff()
restartApp(activityTestRule) restartApp(activityTestRule)
@ -331,7 +333,8 @@ class SettingsPrivacyTest {
}.searchAndOpenHomeScreenShortcut(pageShortcutName) { }.searchAndOpenHomeScreenShortcut(pageShortcutName) {
}.openTabDrawer { }.openTabDrawer {
verifyNormalModeSelected() verifyNormalModeSelected()
}.openHomeScreen { }.openNewTab {
}.dismiss {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openPrivateBrowsingSubMenu { }.openPrivateBrowsingSubMenu {

@ -4,7 +4,6 @@
package org.mozilla.fenix.ui package org.mozilla.fenix.ui
import androidx.core.net.toUri
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiDevice
import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockWebServer
@ -58,7 +57,8 @@ class SmokeTest {
}.goBackToWebsite { }.goBackToWebsite {
}.openTabDrawer { }.openTabDrawer {
verifyExistingTabList() verifyExistingTabList()
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyHomeScreen() verifyHomeScreen()
} }
} }
@ -106,7 +106,8 @@ class SmokeTest {
}.addToFirefoxHome { }.addToFirefoxHome {
verifySnackBarText("Added to top sites!") verifySnackBarText("Added to top sites!")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyExistingTopSitesTabs(defaultWebPage.title) verifyExistingTopSitesTabs(defaultWebPage.title)
}.openTabDrawer { }.openTabDrawer {
}.openTab(defaultWebPage.title) { }.openTab(defaultWebPage.title) {
@ -132,13 +133,11 @@ class SmokeTest {
verifyUrl(defaultWebPage.url.toString()) verifyUrl(defaultWebPage.url.toString())
}.openTabDrawer { }.openTabDrawer {
closeTabViaXButton(defaultWebPage.title) closeTabViaXButton(defaultWebPage.title)
}.openHomeScreen { }.openNewTab {
navigationToolbar { }.submitQuery(youtubeUrl) {
}.enterURLAndEnterToBrowser(youtubeUrl.toUri()) { verifyBlueDot()
verifyBlueDot() }.openThreeDotMenu {
}.openThreeDotMenu { verifyOpenInAppButton()
verifyOpenInAppButton()
}
} }
} }
@ -185,7 +184,8 @@ class SmokeTest {
}.addToFirefoxHome { }.addToFirefoxHome {
verifySnackBarText("Added to top sites!") verifySnackBarText("Added to top sites!")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
togglePrivateBrowsingModeOnOff() togglePrivateBrowsingModeOnOff()
verifyExistingTopSitesTabs(defaultWebPage.title) verifyExistingTopSitesTabs(defaultWebPage.title)
togglePrivateBrowsingModeOnOff() togglePrivateBrowsingModeOnOff()
@ -209,13 +209,11 @@ class SmokeTest {
verifyUrl(defaultWebPage.url.toString()) verifyUrl(defaultWebPage.url.toString())
}.openTabDrawer { }.openTabDrawer {
closeTabViaXButton(defaultWebPage.title) closeTabViaXButton(defaultWebPage.title)
}.openHomeScreen { }.openNewTab {
navigationToolbar { }.submitQuery(youtubeUrl) {
}.enterURLAndEnterToBrowser(youtubeUrl.toUri()) { verifyBlueDot()
verifyBlueDot() }.openThreeDotMenu {
}.openThreeDotMenu { verifyOpenInAppButton()
verifyOpenInAppButton()
}
} }
} }
} }
@ -240,7 +238,8 @@ class SmokeTest {
verifyUrl("webcompat.com/issues/new") verifyUrl("webcompat.com/issues/new")
verifyTabCounter("2") verifyTabCounter("2")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openSettings { }.openSettings {
}.openEnhancedTrackingProtectionSubMenu { }.openEnhancedTrackingProtectionSubMenu {
@ -270,9 +269,7 @@ class SmokeTest {
}.goToSearchEngine { }.goToSearchEngine {
}.enterURLAndEnterToBrowser(defaultWebPage.url) { }.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openTabDrawer { }.openTabDrawer {
// Changing search engine to Bing }.openNewTab {
}.openHomeScreen {
}.openSearch {
clickSearchEngineButton() clickSearchEngineButton()
mDevice.waitForIdle() mDevice.waitForIdle()
changeDefaultSearchEngine("Bing") changeDefaultSearchEngine("Bing")
@ -280,9 +277,7 @@ class SmokeTest {
}.goToSearchEngine { }.goToSearchEngine {
}.enterURLAndEnterToBrowser(defaultWebPage.url) { }.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openTabDrawer { }.openTabDrawer {
// Changing search engine to DuckDuckGo }.openNewTab {
}.openHomeScreen {
}.openSearch {
clickSearchEngineButton() clickSearchEngineButton()
mDevice.waitForIdle() mDevice.waitForIdle()
changeDefaultSearchEngine("DuckDuckGo") changeDefaultSearchEngine("DuckDuckGo")
@ -290,9 +285,7 @@ class SmokeTest {
}.goToSearchEngine { }.goToSearchEngine {
}.enterURLAndEnterToBrowser(defaultWebPage.url) { }.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openTabDrawer { }.openTabDrawer {
// Changing search engine to Twitter }.openNewTab {
}.openHomeScreen {
}.openSearch {
clickSearchEngineButton() clickSearchEngineButton()
mDevice.waitForIdle() mDevice.waitForIdle()
changeDefaultSearchEngine("Twitter") changeDefaultSearchEngine("Twitter")
@ -300,9 +293,7 @@ class SmokeTest {
}.goToSearchEngine { }.goToSearchEngine {
}.enterURLAndEnterToBrowser(defaultWebPage.url) { }.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openTabDrawer { }.openTabDrawer {
// Changing search engine to Wikipedia }.openNewTab {
}.openHomeScreen {
}.openSearch {
clickSearchEngineButton() clickSearchEngineButton()
changeDefaultSearchEngine("Wikipedia") changeDefaultSearchEngine("Wikipedia")
verifySearchEngineIcon("Wikipedia") verifySearchEngineIcon("Wikipedia")
@ -310,8 +301,7 @@ class SmokeTest {
}.enterURLAndEnterToBrowser(defaultWebPage.url) { }.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openTabDrawer { }.openTabDrawer {
// Checking whether the next search will be with default or not // Checking whether the next search will be with default or not
}.openHomeScreen { }.openNewTab {
}.openSearch {
}.goToSearchEngine { }.goToSearchEngine {
}.enterURLAndEnterToBrowser(defaultWebPage.url) { }.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openNavigationToolbar { }.openNavigationToolbar {

@ -186,8 +186,8 @@ class TabbedBrowsingTest {
browserScreen { browserScreen {
}.openTabDrawer { }.openTabDrawer {
verifyExistingOpenTabs("Test_Page_1") verifyExistingOpenTabs("Test_Page_1")
}.openHomeScreen { }.openNewTab {
} }.dismiss { }
} }
@Test @Test
@ -285,8 +285,8 @@ class TabbedBrowsingTest {
verifyTabTrayOverflowMenu(true) verifyTabTrayOverflowMenu(true)
verifyExistingOpenTabs(defaultWebPage.title) verifyExistingOpenTabs(defaultWebPage.title)
verifyCloseTabsButton(defaultWebPage.title) verifyCloseTabsButton(defaultWebPage.title)
}.openHomeScreen { }.openNewTab {
} }.dismiss { }
} }
@Test @Test

@ -68,13 +68,14 @@ class ThreeDotMenuMainTest {
}.openHelp { }.openHelp {
verifyHelpUrl() verifyHelpUrl()
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
}.openThreeDotMenu { }.openThreeDotMenu {
}.openWhatsNew { }.openWhatsNew {
verifyWhatsNewURL() verifyWhatsNewURL()
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
} }.dismiss { }
homeScreen { homeScreen {
}.openThreeDotMenu { }.openThreeDotMenu {

@ -58,7 +58,8 @@ class TopSitesTest {
}.addToFirefoxHome { }.addToFirefoxHome {
verifySnackBarText("Added to top sites!") verifySnackBarText("Added to top sites!")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyExistingTopSitesList() verifyExistingTopSitesList()
verifyExistingTopSitesTabs(defaultWebPageTitle) verifyExistingTopSitesTabs(defaultWebPageTitle)
} }
@ -76,13 +77,15 @@ class TopSitesTest {
}.addToFirefoxHome { }.addToFirefoxHome {
verifySnackBarText("Added to top sites!") verifySnackBarText("Added to top sites!")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyExistingTopSitesList() verifyExistingTopSitesList()
verifyExistingTopSitesTabs(defaultWebPageTitle) verifyExistingTopSitesTabs(defaultWebPageTitle)
}.openTopSiteTabWithTitle(title = defaultWebPageTitle) { }.openTopSiteTabWithTitle(title = defaultWebPageTitle) {
verifyUrl(defaultWebPage.url.toString().replace("http://", "")) verifyUrl(defaultWebPage.url.toString().replace("http://", ""))
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyExistingTopSitesList() verifyExistingTopSitesList()
verifyExistingTopSitesTabs(defaultWebPageTitle) verifyExistingTopSitesTabs(defaultWebPageTitle)
}.openContextMenuOnTopSitesWithTitle(defaultWebPageTitle) { }.openContextMenuOnTopSitesWithTitle(defaultWebPageTitle) {
@ -105,7 +108,8 @@ class TopSitesTest {
}.addToFirefoxHome { }.addToFirefoxHome {
verifySnackBarText("Added to top sites!") verifySnackBarText("Added to top sites!")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyExistingTopSitesList() verifyExistingTopSitesList()
verifyExistingTopSitesTabs(defaultWebPageTitle) verifyExistingTopSitesTabs(defaultWebPageTitle)
}.openContextMenuOnTopSitesWithTitle(defaultWebPageTitle) { }.openContextMenuOnTopSitesWithTitle(defaultWebPageTitle) {
@ -127,7 +131,8 @@ class TopSitesTest {
}.addToFirefoxHome { }.addToFirefoxHome {
verifySnackBarText("Added to top sites!") verifySnackBarText("Added to top sites!")
}.openTabDrawer { }.openTabDrawer {
}.openHomeScreen { }.openNewTab {
}.dismiss {
verifyExistingTopSitesList() verifyExistingTopSitesList()
verifyExistingTopSitesTabs(defaultWebPageTitle) verifyExistingTopSitesTabs(defaultWebPageTitle)
}.openContextMenuOnTopSitesWithTitle(defaultWebPageTitle) { }.openContextMenuOnTopSitesWithTitle(defaultWebPageTitle) {

@ -26,6 +26,7 @@ import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.By import androidx.test.uiautomator.By
import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiDevice
import androidx.test.uiautomator.Until import androidx.test.uiautomator.Until
import kotlinx.android.synthetic.main.fragment_search_dialog.view.*
import org.hamcrest.CoreMatchers.anyOf import org.hamcrest.CoreMatchers.anyOf
import org.hamcrest.CoreMatchers.containsString import org.hamcrest.CoreMatchers.containsString
import org.hamcrest.CoreMatchers.not import org.hamcrest.CoreMatchers.not
@ -250,7 +251,7 @@ private fun assertSuggestionsAreEqualTo(suggestionSize: Int, searchTerm: String)
awesomeBar().perform(typeText(searchTerm)) awesomeBar().perform(typeText(searchTerm))
mDevice.waitForIdle() mDevice.waitForIdle()
onView(withId(R.id.awesomeBar)).check(suggestionsAreEqualTo(suggestionSize)) onView(withId(R.id.awesome_bar)).check(suggestionsAreEqualTo(suggestionSize))
} }
private fun assertSuggestionsAreMoreThan(suggestionSize: Int, searchTerm: String) { private fun assertSuggestionsAreMoreThan(suggestionSize: Int, searchTerm: String) {
@ -258,7 +259,7 @@ private fun assertSuggestionsAreMoreThan(suggestionSize: Int, searchTerm: String
awesomeBar().perform(typeText(searchTerm)) awesomeBar().perform(typeText(searchTerm))
mDevice.waitForIdle() mDevice.waitForIdle()
onView(withId(R.id.awesomeBar)).check(suggestionsAreGreaterThan(suggestionSize)) onView(withId(R.id.awesome_bar)).check(suggestionsAreGreaterThan(suggestionSize))
} }
private fun assertNoHistoryBookmarks() { private fun assertNoHistoryBookmarks() {

@ -106,10 +106,10 @@ class SearchRobot {
fun scrollToSearchEngineSettings() { fun scrollToSearchEngineSettings() {
// Soft keyboard is visible on screen on view access; hide it // Soft keyboard is visible on screen on view access; hide it
onView(allOf(withId(R.id.search_layout))).perform( onView(allOf(withId(R.id.search_wrapper))).perform(
closeSoftKeyboard() closeSoftKeyboard()
) )
onView(allOf(withId(R.id.awesomeBar))).perform(ViewActions.swipeUp()) onView(allOf(withId(R.id.awesome_bar))).perform(ViewActions.swipeUp())
} }
fun clickSearchEngineSettings() { fun clickSearchEngineSettings() {
@ -123,6 +123,13 @@ class SearchRobot {
class Transition { class Transition {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation()) val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
fun dismiss(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
mDevice.waitForIdle()
mDevice.pressBack()
HomeScreenRobot().interact()
return HomeScreenRobot.Transition()
}
fun openBrowser(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition { fun openBrowser(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
mDevice.waitForIdle() mDevice.waitForIdle()
browserToolbarEditView().perform(typeText("mozilla\n")) browserToolbarEditView().perform(typeText("mozilla\n"))
@ -131,6 +138,14 @@ class SearchRobot {
return BrowserRobot.Transition() return BrowserRobot.Transition()
} }
fun submitQuery(query: String, interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
mDevice.waitForIdle()
browserToolbarEditView().perform(typeText(query + "\n"))
BrowserRobot().interact()
return BrowserRobot.Transition()
}
fun goToSearchEngine(interact: NavigationToolbarRobot.() -> Unit): NavigationToolbarRobot.Transition { fun goToSearchEngine(interact: NavigationToolbarRobot.() -> Unit): NavigationToolbarRobot.Transition {
NavigationToolbarRobot().interact() NavigationToolbarRobot().interact()
return NavigationToolbarRobot.Transition() return NavigationToolbarRobot.Transition()
@ -138,7 +153,7 @@ class SearchRobot {
} }
} }
private fun awesomeBar() = onView(withId(R.id.awesomeBar)) private fun awesomeBar() = onView(withId(R.id.awesome_bar))
private fun browserToolbarEditView() = private fun browserToolbarEditView() =
onView(Matchers.allOf(withId(R.id.mozac_browser_toolbar_edit_url_view))) onView(Matchers.allOf(withId(R.id.mozac_browser_toolbar_edit_url_view)))
@ -165,6 +180,8 @@ private fun scanButton(): ViewInteraction {
private fun clearButton() = onView(withId(R.id.mozac_browser_toolbar_clear_view)) private fun clearButton() = onView(withId(R.id.mozac_browser_toolbar_clear_view))
private fun searchWrapper() = onView(withId(R.id.search_wrapper))
private fun assertSearchEngineURL(searchEngineName: String) { private fun assertSearchEngineURL(searchEngineName: String) {
mDevice.waitNotNull( mDevice.waitNotNull(
Until.findObject(By.textContains("${searchEngineName.toLowerCase()}.com/?q=mozilla")), Until.findObject(By.textContains("${searchEngineName.toLowerCase()}.com/?q=mozilla")),

@ -135,12 +135,12 @@ class TabDrawerRobot {
return BrowserRobot.Transition() return BrowserRobot.Transition()
} }
fun openHomeScreen(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition { fun openNewTab(interact: SearchRobot.() -> Unit): SearchRobot.Transition {
mDevice.waitForIdle() mDevice.waitForIdle()
newTabButton().perform(click()) newTabButton().perform(click())
HomeScreenRobot().interact() SearchRobot().interact()
return HomeScreenRobot.Transition() return SearchRobot.Transition()
} }
fun toggleToNormalTabs(interact: TabDrawerRobot.() -> Unit): Transition { fun toggleToNormalTabs(interact: TabDrawerRobot.() -> Unit): Transition {

@ -16,7 +16,6 @@ import android.view.Gravity
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.view.accessibility.AccessibilityEvent
import android.widget.Button import android.widget.Button
import android.widget.LinearLayout import android.widget.LinearLayout
import android.widget.PopupWindow import android.widget.PopupWindow
@ -412,19 +411,6 @@ class HomeFragment : Fragment() {
} }
} }
val args by navArgs<HomeFragmentArgs>()
if (view.context.settings().accessibilityServicesEnabled &&
args.focusOnAddressBar
) {
// We cannot put this in the fragment_home.xml file as it breaks tests
view.toolbar_wrapper.isFocusableInTouchMode = true
viewLifecycleOwner.lifecycleScope.launch {
view.toolbar_wrapper?.requestFocus()
view.toolbar_wrapper?.sendAccessibilityEvent(AccessibilityEvent.TYPE_VIEW_FOCUSED)
}
}
if (browsingModeManager.mode.isPrivate) { if (browsingModeManager.mode.isPrivate) {
requireActivity().window.addFlags(FLAG_SECURE) requireActivity().window.addFlags(FLAG_SECURE)
} else { } else {
@ -445,7 +431,7 @@ class HomeFragment : Fragment() {
updateTabCounter(requireComponents.core.store.state) updateTabCounter(requireComponents.core.store.state)
if (args.focusOnAddressBar && FeatureFlags.newSearchExperience) { if (bundleArgs.getBoolean(FOCUS_ON_ADDRESS_BAR) && FeatureFlags.newSearchExperience) {
navigateToSearch() navigateToSearch()
} }
} }

Loading…
Cancel
Save