* For #4885: D8 Build failure on attempt to execute UI test * Disabled screengrab tests until AndroidX fix is availablemaster
parent
66e14959ba
commit
153af588af
|
@ -405,12 +405,10 @@ dependencies {
|
||||||
|
|
||||||
implementation Deps.google_ads_id // Required for the Google Advertising ID
|
implementation Deps.google_ads_id // Required for the Google Advertising ID
|
||||||
|
|
||||||
// androidTestImplementation Deps.tools_test_runner
|
|
||||||
// androidTestImplementation Deps.tools_espresso_core
|
|
||||||
|
|
||||||
androidTestImplementation Deps.uiautomator
|
androidTestImplementation Deps.uiautomator
|
||||||
androidTestImplementation "tools.fastlane:screengrab:1.2.0"
|
// Removed pending AndroidX fixes
|
||||||
androidTestImplementation "br.com.concretesolutions:kappuccino:1.2.1"
|
// androidTestImplementation "tools.fastlane:screengrab:1.2.0"
|
||||||
|
// androidTestImplementation "br.com.concretesolutions:kappuccino:1.2.1"
|
||||||
|
|
||||||
androidTestImplementation Deps.espresso_core, {
|
androidTestImplementation Deps.espresso_core, {
|
||||||
exclude group: 'com.android.support', module: 'support-annotations'
|
exclude group: 'com.android.support', module: 'support-annotations'
|
||||||
|
|
|
@ -1,71 +1,71 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
// /* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
// * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
// * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
//
|
||||||
package org.mozilla.fenix.ui.screenshots
|
// package org.mozilla.fenix.ui.screenshots
|
||||||
|
//
|
||||||
import androidx.test.rule.ActivityTestRule
|
// import androidx.test.rule.ActivityTestRule
|
||||||
import org.junit.After
|
// import org.junit.After
|
||||||
import org.junit.Rule
|
// import org.junit.Rule
|
||||||
import org.junit.Test
|
// import org.junit.Test
|
||||||
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
// import org.mozilla.fenix.helpers.HomeActivityTestRule
|
||||||
import org.mozilla.fenix.HomeActivity
|
// import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
// import org.mozilla.fenix.R
|
||||||
import android.os.SystemClock
|
// import android.os.SystemClock
|
||||||
import tools.fastlane.screengrab.Screengrab
|
// import tools.fastlane.screengrab.Screengrab
|
||||||
import tools.fastlane.screengrab.locale.LocaleTestRule
|
// import tools.fastlane.screengrab.locale.LocaleTestRule
|
||||||
import androidx.test.espresso.Espresso.onView
|
// import androidx.test.espresso.Espresso.onView
|
||||||
import androidx.test.espresso.action.ViewActions.click
|
// import androidx.test.espresso.action.ViewActions.click
|
||||||
import androidx.test.espresso.action.ViewActions.swipeUp
|
// import androidx.test.espresso.action.ViewActions.swipeUp
|
||||||
import androidx.test.espresso.action.ViewActions.swipeDown
|
// import androidx.test.espresso.action.ViewActions.swipeDown
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.hasFocus
|
// import androidx.test.espresso.matcher.ViewMatchers.hasFocus
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
|
// import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
|
||||||
import androidx.test.espresso.matcher.ViewMatchers.withId
|
// import androidx.test.espresso.matcher.ViewMatchers.withId
|
||||||
import org.hamcrest.Matchers.allOf
|
// import org.hamcrest.Matchers.allOf
|
||||||
|
//
|
||||||
class DefaultHomeScreenTest : ScreenshotTest() {
|
// class DefaultHomeScreenTest : ScreenshotTest() {
|
||||||
@Rule @JvmField
|
// @Rule @JvmField
|
||||||
val localeTestRule = LocaleTestRule()
|
// val localeTestRule = LocaleTestRule()
|
||||||
@get:Rule
|
// @get:Rule
|
||||||
var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
|
// var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
|
||||||
|
//
|
||||||
@After
|
// @After
|
||||||
fun tearDown() {
|
// fun tearDown() {
|
||||||
mActivityTestRule.getActivity().finishAndRemoveTask()
|
// mActivityTestRule.getActivity().finishAndRemoveTask()
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun showDefaultHomeScreen() {
|
// fun showDefaultHomeScreen() {
|
||||||
onView(allOf(withId(R.id.homeLayout), isDisplayed(), hasFocus()))
|
// onView(allOf(withId(R.id.homeLayout), isDisplayed(), hasFocus()))
|
||||||
onView(allOf(withId(R.id.toolbar), isDisplayed()))
|
// onView(allOf(withId(R.id.toolbar), isDisplayed()))
|
||||||
SystemClock.sleep(5000)
|
// SystemClock.sleep(5000)
|
||||||
Screengrab.screenshot("home-screen")
|
// Screengrab.screenshot("home-screen")
|
||||||
|
//
|
||||||
onView(allOf(withId(R.id.privateBrowsingButton))).perform(click())
|
// onView(allOf(withId(R.id.privateBrowsingButton))).perform(click())
|
||||||
Screengrab.screenshot("private-browsing-menu")
|
// Screengrab.screenshot("private-browsing-menu")
|
||||||
onView(allOf(withId(R.id.privateBrowsingButton))).perform(click())
|
// onView(allOf(withId(R.id.privateBrowsingButton))).perform(click())
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun scrollHomeScreen() {
|
// fun scrollHomeScreen() {
|
||||||
onView(withId(R.id.home_component)).perform(swipeUp())
|
// onView(withId(R.id.home_component)).perform(swipeUp())
|
||||||
Screengrab.screenshot("home-screen2")
|
// Screengrab.screenshot("home-screen2")
|
||||||
SystemClock.sleep(3000)
|
// SystemClock.sleep(3000)
|
||||||
|
//
|
||||||
onView(withId(R.id.home_component)).perform(swipeUp())
|
// onView(withId(R.id.home_component)).perform(swipeUp())
|
||||||
Screengrab.screenshot("home-screen3")
|
// Screengrab.screenshot("home-screen3")
|
||||||
SystemClock.sleep(3000)
|
// SystemClock.sleep(3000)
|
||||||
|
//
|
||||||
onView(withId(R.id.finish_button)).perform(click())
|
// onView(withId(R.id.finish_button)).perform(click())
|
||||||
SystemClock.sleep(3000)
|
// SystemClock.sleep(3000)
|
||||||
|
//
|
||||||
Screengrab.screenshot("finish-button")
|
// Screengrab.screenshot("finish-button")
|
||||||
SystemClock.sleep(3000)
|
// SystemClock.sleep(3000)
|
||||||
|
//
|
||||||
onView(withId(R.id.home_component)).perform(swipeDown())
|
// onView(withId(R.id.home_component)).perform(swipeDown())
|
||||||
SystemClock.sleep(3000)
|
// SystemClock.sleep(3000)
|
||||||
|
//
|
||||||
onView(withId(R.id.add_tab_button)).perform(click())
|
// onView(withId(R.id.add_tab_button)).perform(click())
|
||||||
Screengrab.screenshot("add_tab_button")
|
// Screengrab.screenshot("add_tab_button")
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
|
@ -1,241 +1,241 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
// /* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
// * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
// * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
//
|
||||||
package org.mozilla.fenix.ui.screenshots
|
// package org.mozilla.fenix.ui.screenshots
|
||||||
|
//
|
||||||
import android.os.SystemClock
|
// import android.os.SystemClock
|
||||||
import android.widget.ImageView
|
// import android.widget.ImageView
|
||||||
import androidx.test.espresso.Espresso
|
// import androidx.test.espresso.Espresso
|
||||||
import androidx.test.espresso.action.ViewActions.pressImeActionButton
|
// import androidx.test.espresso.action.ViewActions.pressImeActionButton
|
||||||
import androidx.test.espresso.action.ViewActions.replaceText
|
// import androidx.test.espresso.action.ViewActions.replaceText
|
||||||
import androidx.test.espresso.matcher.ViewMatchers
|
// import androidx.test.espresso.matcher.ViewMatchers
|
||||||
import androidx.test.rule.ActivityTestRule
|
// import androidx.test.rule.ActivityTestRule
|
||||||
import androidx.test.uiautomator.By
|
// import androidx.test.uiautomator.By
|
||||||
import androidx.test.uiautomator.UiSelector
|
// import androidx.test.uiautomator.UiSelector
|
||||||
import androidx.test.uiautomator.Until
|
// import androidx.test.uiautomator.Until
|
||||||
import br.com.concretesolutions.kappuccino.actions.ClickActions
|
// import br.com.concretesolutions.kappuccino.actions.ClickActions
|
||||||
import br.com.concretesolutions.kappuccino.extensions.type
|
// import br.com.concretesolutions.kappuccino.extensions.type
|
||||||
import okhttp3.mockwebserver.MockWebServer
|
// import okhttp3.mockwebserver.MockWebServer
|
||||||
import org.hamcrest.Matchers
|
// import org.hamcrest.Matchers
|
||||||
import org.junit.After
|
// import org.junit.After
|
||||||
import org.junit.Before
|
// import org.junit.Before
|
||||||
import org.junit.Rule
|
// import org.junit.Rule
|
||||||
import org.junit.Test
|
// import org.junit.Test
|
||||||
import org.mozilla.fenix.HomeActivity
|
// import org.mozilla.fenix.HomeActivity
|
||||||
import org.mozilla.fenix.R
|
// import org.mozilla.fenix.R
|
||||||
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
// import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
||||||
import org.mozilla.fenix.helpers.HomeActivityTestRule
|
// import org.mozilla.fenix.helpers.HomeActivityTestRule
|
||||||
import org.mozilla.fenix.helpers.TestAssetHelper
|
// import org.mozilla.fenix.helpers.TestAssetHelper
|
||||||
import org.mozilla.fenix.helpers.click
|
// import org.mozilla.fenix.helpers.click
|
||||||
import org.mozilla.fenix.ui.robots.homeScreen
|
// import org.mozilla.fenix.ui.robots.homeScreen
|
||||||
import org.mozilla.fenix.ui.robots.navigationToolbar
|
// import org.mozilla.fenix.ui.robots.navigationToolbar
|
||||||
import org.mozilla.fenix.ui.robots.swipeToBottom
|
// import org.mozilla.fenix.ui.robots.swipeToBottom
|
||||||
import tools.fastlane.screengrab.Screengrab
|
// import tools.fastlane.screengrab.Screengrab
|
||||||
import tools.fastlane.screengrab.locale.LocaleTestRule
|
// import tools.fastlane.screengrab.locale.LocaleTestRule
|
||||||
|
//
|
||||||
class MenuScreenShotTest : ScreenshotTest() {
|
// class MenuScreenShotTest : ScreenshotTest() {
|
||||||
|
//
|
||||||
private lateinit var mockWebServer: MockWebServer
|
// private lateinit var mockWebServer: MockWebServer
|
||||||
@Rule @JvmField
|
// @Rule @JvmField
|
||||||
val localeTestRule = LocaleTestRule()
|
// val localeTestRule = LocaleTestRule()
|
||||||
|
//
|
||||||
@get:Rule
|
// @get:Rule
|
||||||
var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
|
// var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
|
||||||
|
//
|
||||||
@Before
|
// @Before
|
||||||
fun setUp() {
|
// fun setUp() {
|
||||||
mockWebServer = MockWebServer().apply {
|
// mockWebServer = MockWebServer().apply {
|
||||||
setDispatcher(AndroidAssetDispatcher())
|
// setDispatcher(AndroidAssetDispatcher())
|
||||||
start()
|
// start()
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@After
|
// @After
|
||||||
fun tearDown() {
|
// fun tearDown() {
|
||||||
mActivityTestRule.getActivity().finishAndRemoveTask()
|
// mActivityTestRule.getActivity().finishAndRemoveTask()
|
||||||
mockWebServer.shutdown()
|
// mockWebServer.shutdown()
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun threeDotMenu() {
|
// fun threeDotMenu() {
|
||||||
homeScreen {
|
// homeScreen {
|
||||||
}.openThreeDotMenu { }
|
// }.openThreeDotMenu { }
|
||||||
Screengrab.screenshot("three-dot-menu")
|
// Screengrab.screenshot("three-dot-menu")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun settingsTest() {
|
// fun settingsTest() {
|
||||||
homeScreen {
|
// homeScreen {
|
||||||
}.openThreeDotMenu {
|
// }.openThreeDotMenu {
|
||||||
}.openSettings { }
|
// }.openSettings { }
|
||||||
Screengrab.screenshot("settings")
|
// Screengrab.screenshot("settings")
|
||||||
|
//
|
||||||
SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
||||||
settingsAccount()
|
// settingsAccount()
|
||||||
Screengrab.screenshot("settings-sync")
|
// Screengrab.screenshot("settings-sync")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
|
//
|
||||||
settingsTheme()
|
// settingsTheme()
|
||||||
Screengrab.screenshot("settings-theme")
|
// Screengrab.screenshot("settings-theme")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
|
//
|
||||||
settingsSearch()
|
// settingsSearch()
|
||||||
Screengrab.screenshot("settings-search")
|
// Screengrab.screenshot("settings-search")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
|
//
|
||||||
settingsAccessibility()
|
// settingsAccessibility()
|
||||||
Screengrab.screenshot("settings-accessibility")
|
// Screengrab.screenshot("settings-accessibility")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
|
//
|
||||||
settingsTp()
|
// settingsTp()
|
||||||
Screengrab.screenshot("settings-tp")
|
// Screengrab.screenshot("settings-tp")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun settingsAfterScrollMenusTest() {
|
// fun settingsAfterScrollMenusTest() {
|
||||||
homeScreen {
|
// homeScreen {
|
||||||
}.openThreeDotMenu {
|
// }.openThreeDotMenu {
|
||||||
}.openSettings {
|
// }.openSettings {
|
||||||
swipeToBottom()
|
// swipeToBottom()
|
||||||
}
|
// }
|
||||||
Screengrab.screenshot("settings-scroll-to-bottom")
|
// Screengrab.screenshot("settings-scroll-to-bottom")
|
||||||
SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
||||||
|
//
|
||||||
settingsRemoveData()
|
// settingsRemoveData()
|
||||||
Screengrab.screenshot("settings-delete-browsing-data")
|
// Screengrab.screenshot("settings-delete-browsing-data")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
||||||
|
//
|
||||||
settingsTelemetry()
|
// settingsTelemetry()
|
||||||
Screengrab.screenshot("settings-telemetry")
|
// Screengrab.screenshot("settings-telemetry")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun libraryTest() {
|
// fun libraryTest() {
|
||||||
homeScreen {
|
// homeScreen {
|
||||||
}.openThreeDotMenu {
|
// }.openThreeDotMenu {
|
||||||
}.openLibrary { }
|
// }.openLibrary { }
|
||||||
Screengrab.screenshot("library")
|
// Screengrab.screenshot("library")
|
||||||
|
//
|
||||||
bookmarksButton()
|
// bookmarksButton()
|
||||||
Screengrab.screenshot("library-bookmarks")
|
// Screengrab.screenshot("library-bookmarks")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
historyButton()
|
// historyButton()
|
||||||
Screengrab.screenshot("library-history")
|
// Screengrab.screenshot("library-history")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun bookmarksManagementTest() {
|
// fun bookmarksManagementTest() {
|
||||||
homeScreen {
|
// homeScreen {
|
||||||
}.openThreeDotMenu {
|
// }.openThreeDotMenu {
|
||||||
}.openLibrary { }
|
// }.openLibrary { }
|
||||||
bookmarksButton()
|
// bookmarksButton()
|
||||||
addBookmarkFolderButton()
|
// addBookmarkFolderButton()
|
||||||
Screengrab.screenshot("add-folder-view")
|
// Screengrab.screenshot("add-folder-view")
|
||||||
|
//
|
||||||
confirmAddFolderButton()
|
// confirmAddFolderButton()
|
||||||
Screengrab.screenshot("error-empty-folder-name")
|
// Screengrab.screenshot("error-empty-folder-name")
|
||||||
|
//
|
||||||
// Enter folder name and save
|
// // Enter folder name and save
|
||||||
addFolderName()
|
// addFolderName()
|
||||||
confirmAddFolderButton()
|
// confirmAddFolderButton()
|
||||||
SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
|
||||||
|
//
|
||||||
// Open folder menu
|
// // Open folder menu
|
||||||
bookmarkFolderMenu()
|
// bookmarkFolderMenu()
|
||||||
Screengrab.screenshot("folder-menu")
|
// Screengrab.screenshot("folder-menu")
|
||||||
|
//
|
||||||
// Edit folder menu
|
// // Edit folder menu
|
||||||
editBookmarkFolder()
|
// editBookmarkFolder()
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
Screengrab.screenshot("edit-bookmark-folder-menu")
|
// Screengrab.screenshot("edit-bookmark-folder-menu")
|
||||||
|
//
|
||||||
// Delete folder
|
// // Delete folder
|
||||||
bookmarkFolderMenu()
|
// bookmarkFolderMenu()
|
||||||
deleteBookmarkFolder()
|
// deleteBookmarkFolder()
|
||||||
Screengrab.screenshot("delete-bookmark-folder-menu")
|
// Screengrab.screenshot("delete-bookmark-folder-menu")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun collectionMenuTest() {
|
// fun collectionMenuTest() {
|
||||||
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
// val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
navigationToolbar {
|
// navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
|
// }.enterURLAndEnterToBrowser(defaultWebPage.url) {
|
||||||
}
|
// }
|
||||||
device.findObject(UiSelector()
|
// device.findObject(UiSelector()
|
||||||
.instance(1)
|
// .instance(1)
|
||||||
.className(ImageView::class.java)).click()
|
// .className(ImageView::class.java)).click()
|
||||||
// Homescreen with visited tabs
|
// // Homescreen with visited tabs
|
||||||
device.wait(Until.findObjects(By.text("Save to collection")), TestAssetHelper.waitingTimeShort)
|
// device.wait(Until.findObjects(By.text("Save to collection")), TestAssetHelper.waitingTimeShort)
|
||||||
openTabsMenu()
|
// openTabsMenu()
|
||||||
Screengrab.screenshot("open-tabs-menu")
|
// Screengrab.screenshot("open-tabs-menu")
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
device.wait(Until.findObjects(By.text("Save to collection")), TestAssetHelper.waitingTimeShort)
|
// device.wait(Until.findObjects(By.text("Save to collection")), TestAssetHelper.waitingTimeShort)
|
||||||
Screengrab.screenshot("save-collection-button")
|
// Screengrab.screenshot("save-collection-button")
|
||||||
|
//
|
||||||
// Save a collection
|
// // Save a collection
|
||||||
saveToCollectionButton()
|
// saveToCollectionButton()
|
||||||
Screengrab.screenshot("save-collection-view")
|
// Screengrab.screenshot("save-collection-view")
|
||||||
device.wait(Until.findObject(By.res("name_collection_edittext")), TestAssetHelper.waitingTimeShort)
|
// device.wait(Until.findObject(By.res("name_collection_edittext")), TestAssetHelper.waitingTimeShort)
|
||||||
nameCollectionTextBox().perform(replaceText("CollectionName"),
|
// nameCollectionTextBox().perform(replaceText("CollectionName"),
|
||||||
pressImeActionButton())
|
// pressImeActionButton())
|
||||||
|
//
|
||||||
// Homescreen after saving one collection
|
// // Homescreen after saving one collection
|
||||||
device.wait(Until.findObject(By.res("collection_title")), TestAssetHelper.waitingTimeShort)
|
// device.wait(Until.findObject(By.res("collection_title")), TestAssetHelper.waitingTimeShort)
|
||||||
Screengrab.screenshot("saved-tab")
|
// Screengrab.screenshot("saved-tab")
|
||||||
|
//
|
||||||
// Open Collection menu
|
// // Open Collection menu
|
||||||
collectionsButton()
|
// collectionsButton()
|
||||||
Screengrab.screenshot("saved-collections-menu")
|
// Screengrab.screenshot("saved-collections-menu")
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
@Test
|
// @Test
|
||||||
fun tabMenuTest() {
|
// fun tabMenuTest() {
|
||||||
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
// val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
|
||||||
navigationToolbar {
|
// navigationToolbar {
|
||||||
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
|
// }.enterURLAndEnterToBrowser(defaultWebPage.url) {
|
||||||
}
|
// }
|
||||||
device.wait(Until.findObjects(By.res("quick_action_sheet_handle")), TestAssetHelper.waitingTimeShort)
|
// device.wait(Until.findObjects(By.res("quick_action_sheet_handle")), TestAssetHelper.waitingTimeShort)
|
||||||
openQuickActionMenu()
|
// openQuickActionMenu()
|
||||||
Screengrab.screenshot("browser-tab-share-bookmark")
|
// Screengrab.screenshot("browser-tab-share-bookmark")
|
||||||
// Open Browser tab menu
|
// // Open Browser tab menu
|
||||||
device.findObject(UiSelector()
|
// device.findObject(UiSelector()
|
||||||
.instance(2)
|
// .instance(2)
|
||||||
.className(ImageView::class.java)).click()
|
// .className(ImageView::class.java)).click()
|
||||||
Screengrab.screenshot("browser-tab-menu")
|
// Screengrab.screenshot("browser-tab-menu")
|
||||||
// Close menu and go back to Homescreen and remove the tab
|
// // Close menu and go back to Homescreen and remove the tab
|
||||||
device.pressBack()
|
// device.pressBack()
|
||||||
device.findObject(UiSelector()
|
// device.findObject(UiSelector()
|
||||||
.instance(1)
|
// .instance(1)
|
||||||
.className(ImageView::class.java)).click()
|
// .className(ImageView::class.java)).click()
|
||||||
device.wait(Until.findObjects(By.res("close_tab_button")), TestAssetHelper.waitingTimeShort)
|
// device.wait(Until.findObjects(By.res("close_tab_button")), TestAssetHelper.waitingTimeShort)
|
||||||
closeTabButton()
|
// closeTabButton()
|
||||||
Screengrab.screenshot("remove-tab")
|
// Screengrab.screenshot("remove-tab")
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
fun bookmarksButton() = ClickActions.click { text(R.string.library_bookmarks) }
|
// fun bookmarksButton() = ClickActions.click { text(R.string.library_bookmarks) }
|
||||||
fun historyButton() = ClickActions.click { text(R.string.library_history) }
|
// fun historyButton() = ClickActions.click { text(R.string.library_history) }
|
||||||
fun settingsAccount() = ClickActions.click { text(R.string.preferences_sync) }
|
// fun settingsAccount() = ClickActions.click { text(R.string.preferences_sync) }
|
||||||
|
//
|
||||||
fun settingsSearch() = ClickActions.click { text(R.string.preferences_search_engine) }
|
// fun settingsSearch() = ClickActions.click { text(R.string.preferences_search_engine) }
|
||||||
fun settingsTheme() = ClickActions.click { text(R.string.preferences_theme) }
|
// fun settingsTheme() = ClickActions.click { text(R.string.preferences_theme) }
|
||||||
fun settingsAccessibility() = ClickActions.click { text(R.string.preferences_accessibility) }
|
// fun settingsAccessibility() = ClickActions.click { text(R.string.preferences_accessibility) }
|
||||||
fun settingsTp() = ClickActions.click { text(R.string.preferences_tracking_protection) }
|
// fun settingsTp() = ClickActions.click { text(R.string.preferences_tracking_protection) }
|
||||||
fun settingsRemoveData() = ClickActions.click { text(R.string.preferences_delete_browsing_data) }
|
// fun settingsRemoveData() = ClickActions.click { text(R.string.preferences_delete_browsing_data) }
|
||||||
fun settingsTelemetry() = ClickActions.click { text(R.string.preferences_data_collection) }
|
// fun settingsTelemetry() = ClickActions.click { text(R.string.preferences_data_collection) }
|
||||||
|
//
|
||||||
fun openTabsMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.tabs_overflow_button))).click()
|
// fun openTabsMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.tabs_overflow_button))).click()
|
||||||
fun openQuickActionMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.quick_action_sheet_handle))).click()
|
// fun openQuickActionMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.quick_action_sheet_handle))).click()
|
||||||
fun saveToCollectionButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.save_tab_group_button))).click()
|
// fun saveToCollectionButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.save_tab_group_button))).click()
|
||||||
fun collectionsButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.collection_overflow_button))).click()
|
// fun collectionsButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.collection_overflow_button))).click()
|
||||||
fun addBookmarkFolderButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.add_bookmark_folder))).click()
|
// fun addBookmarkFolderButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.add_bookmark_folder))).click()
|
||||||
fun confirmAddFolderButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.confirm_add_folder_button))).click()
|
// fun confirmAddFolderButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.confirm_add_folder_button))).click()
|
||||||
fun addFolderName() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.bookmarkAddFolderTitleEdit)))
|
// fun addFolderName() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.bookmarkAddFolderTitleEdit)))
|
||||||
.type("folder")
|
// .type("folder")
|
||||||
fun bookmarkFolderMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.overflow_menu))).click()
|
// fun bookmarkFolderMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.overflow_menu))).click()
|
||||||
fun editBookmarkFolder() = ClickActions.click { text(R.string.bookmark_menu_edit_button) }
|
// fun editBookmarkFolder() = ClickActions.click { text(R.string.bookmark_menu_edit_button) }
|
||||||
fun deleteBookmarkFolder() = ClickActions.click { text(R.string.bookmark_menu_delete_button) }
|
// fun deleteBookmarkFolder() = ClickActions.click { text(R.string.bookmark_menu_delete_button) }
|
||||||
fun nameCollectionTextBox() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.name_collection_edittext)))
|
// fun nameCollectionTextBox() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.name_collection_edittext)))
|
||||||
fun closeTabButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.close_tab_button))).click()
|
// fun closeTabButton() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.close_tab_button))).click()
|
||||||
|
|
|
@ -1,75 +1,75 @@
|
||||||
/* This Source Code Form is subject to the terms of the Mozilla Public
|
// /* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
// * License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
// * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
//
|
||||||
package org.mozilla.fenix.ui.screenshots;
|
// package org.mozilla.fenix.ui.screenshots;
|
||||||
|
//
|
||||||
import android.Manifest;
|
// import android.Manifest;
|
||||||
import android.app.Instrumentation;
|
// import android.app.Instrumentation;
|
||||||
import android.content.Context;
|
// import android.content.Context;
|
||||||
import androidx.annotation.StringRes;
|
// import androidx.annotation.StringRes;
|
||||||
import androidx.test.platform.app.InstrumentationRegistry;
|
// import androidx.test.platform.app.InstrumentationRegistry;
|
||||||
import androidx.test.rule.GrantPermissionRule;
|
// import androidx.test.rule.GrantPermissionRule;
|
||||||
import androidx.test.uiautomator.UiDevice;
|
// import androidx.test.uiautomator.UiDevice;
|
||||||
import android.text.format.DateUtils;
|
// import android.text.format.DateUtils;
|
||||||
|
//
|
||||||
import org.junit.Before;
|
// import org.junit.Before;
|
||||||
import org.junit.Rule;
|
// import org.junit.Rule;
|
||||||
import org.junit.rules.TestRule;
|
// import org.junit.rules.TestRule;
|
||||||
import org.junit.rules.TestWatcher;
|
// import org.junit.rules.TestWatcher;
|
||||||
import org.junit.runner.Description;
|
// import org.junit.runner.Description;
|
||||||
|
//
|
||||||
import tools.fastlane.screengrab.Screengrab;
|
// import tools.fastlane.screengrab.Screengrab;
|
||||||
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
|
// import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
|
||||||
|
//
|
||||||
/**
|
// /**
|
||||||
* Base class for tests that take screenshots.
|
// * Base class for tests that take screenshots.
|
||||||
*/
|
// */
|
||||||
public abstract class ScreenshotTest {
|
// public abstract class ScreenshotTest {
|
||||||
final long waitingTime = DateUtils.SECOND_IN_MILLIS * 10;
|
// final long waitingTime = DateUtils.SECOND_IN_MILLIS * 10;
|
||||||
|
//
|
||||||
private Context targetContext;
|
// private Context targetContext;
|
||||||
|
//
|
||||||
UiDevice device;
|
// UiDevice device;
|
||||||
|
//
|
||||||
@Rule
|
// @Rule
|
||||||
public GrantPermissionRule permissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
// public GrantPermissionRule permissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_EXTERNAL_STORAGE);
|
||||||
|
//
|
||||||
@Rule
|
// @Rule
|
||||||
public TestRule screenshotOnFailureRule = new TestWatcher() {
|
// public TestRule screenshotOnFailureRule = new TestWatcher() {
|
||||||
@Override
|
// @Override
|
||||||
protected void failed(Throwable e, Description description) {
|
// protected void failed(Throwable e, Description description) {
|
||||||
// On error take a screenshot so that we can debug it easily
|
// // On error take a screenshot so that we can debug it easily
|
||||||
Screengrab.screenshot("FAILURE-" + getScreenshotName(description));
|
// Screengrab.screenshot("FAILURE-" + getScreenshotName(description));
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
private String getScreenshotName(Description description) {
|
// private String getScreenshotName(Description description) {
|
||||||
return description.getClassName().replace(".", "-")
|
// return description.getClassName().replace(".", "-")
|
||||||
+ "_"
|
// + "_"
|
||||||
+ description.getMethodName().replace(".", "-");
|
// + description.getMethodName().replace(".", "-");
|
||||||
}
|
// }
|
||||||
};
|
// };
|
||||||
|
//
|
||||||
@Before
|
// @Before
|
||||||
public void setUpScreenshots() {
|
// public void setUpScreenshots() {
|
||||||
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
|
// Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
|
||||||
targetContext = instrumentation.getTargetContext();
|
// targetContext = instrumentation.getTargetContext();
|
||||||
device = UiDevice.getInstance(instrumentation);
|
// device = UiDevice.getInstance(instrumentation);
|
||||||
|
//
|
||||||
// Use this to switch between default strategy and HostScreencap strategy
|
// // Use this to switch between default strategy and HostScreencap strategy
|
||||||
Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
|
// Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
String getString(@StringRes int resourceId) {
|
// String getString(@StringRes int resourceId) {
|
||||||
return targetContext.getString(resourceId).trim();
|
// return targetContext.getString(resourceId).trim();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
String getString(@StringRes int resourceId, Object... formatArgs) {
|
// String getString(@StringRes int resourceId, Object... formatArgs) {
|
||||||
return targetContext.getString(resourceId, formatArgs).trim();
|
// return targetContext.getString(resourceId, formatArgs).trim();
|
||||||
}
|
// }
|
||||||
|
//
|
||||||
public void takeScreenshotsAfterWait(String filename, int waitingTime) throws InterruptedException {
|
// public void takeScreenshotsAfterWait(String filename, int waitingTime) throws InterruptedException {
|
||||||
Thread.sleep(waitingTime);
|
// Thread.sleep(waitingTime);
|
||||||
Screengrab.screenshot(filename);
|
// Screengrab.screenshot(filename);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
|
@ -54,13 +54,12 @@ object Versions {
|
||||||
const val flipper = "0.21.0"
|
const val flipper = "0.21.0"
|
||||||
const val soLoader = "0.5.1"
|
const val soLoader = "0.5.1"
|
||||||
|
|
||||||
const val espresso_core = "2.2.2"
|
const val espresso_version = "3.2.0"
|
||||||
const val espresso_version = "3.0.2"
|
|
||||||
const val mockwebserver = "3.11.0"
|
const val mockwebserver = "3.11.0"
|
||||||
const val orchestrator = "1.3.0-alpha02"
|
const val orchestrator = "1.3.0-alpha02"
|
||||||
const val tools_test_rules = "1.3.0-alpha02"
|
const val tools_test_rules = "1.3.0-alpha02"
|
||||||
const val tools_test_runner = "1.3.0-alpha02"
|
const val tools_test_runner = "1.3.0-alpha02"
|
||||||
const val uiautomator = "2.1.3"
|
const val uiautomator = "2.2.0"
|
||||||
const val robolectric = "4.2"
|
const val robolectric = "4.2"
|
||||||
|
|
||||||
const val google_ads_id_version = "16.0.0"
|
const val google_ads_id_version = "16.0.0"
|
||||||
|
@ -194,14 +193,14 @@ object Deps {
|
||||||
const val flipper_noop = "com.facebook.flipper:flipper-noop:${Versions.flipper}"
|
const val flipper_noop = "com.facebook.flipper:flipper-noop:${Versions.flipper}"
|
||||||
const val soLoader = "com.facebook.soloader:soloader:${Versions.soLoader}"
|
const val soLoader = "com.facebook.soloader:soloader:${Versions.soLoader}"
|
||||||
|
|
||||||
const val espresso_contrib = "com.android.support.test.espresso:espresso-contrib:${Versions.espresso_version}"
|
const val espresso_contrib = "androidx.test.espresso:espresso-contrib:${Versions.espresso_version}"
|
||||||
const val espresso_core = "com.android.support.test.espresso:espresso-core:${Versions.espresso_core}"
|
const val espresso_core = "androidx.test.espresso:espresso-core:${Versions.espresso_version}"
|
||||||
const val espresso_idling_resources = "com.android.support.test.espresso:espresso-idling-resource:${Versions.espresso_version}"
|
const val espresso_idling_resources = "androidx.test.espresso:espresso-idling-resource:${Versions.espresso_version}"
|
||||||
const val mockwebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockwebserver}"
|
const val mockwebserver = "com.squareup.okhttp3:mockwebserver:${Versions.mockwebserver}"
|
||||||
const val orchestrator = "androidx.test:orchestrator:${Versions.orchestrator}"
|
const val orchestrator = "androidx.test:orchestrator:${Versions.orchestrator}"
|
||||||
const val tools_test_rules = "androidx.test:rules:${Versions.tools_test_rules}"
|
const val tools_test_rules = "androidx.test:rules:${Versions.tools_test_rules}"
|
||||||
const val tools_test_runner = "androidx.test:runner:${Versions.tools_test_runner}"
|
const val tools_test_runner = "androidx.test:runner:${Versions.tools_test_runner}"
|
||||||
const val uiautomator = "com.android.support.test.uiautomator:uiautomator-v18:${Versions.uiautomator}"
|
const val uiautomator = "androidx.test.uiautomator:uiautomator:${Versions.uiautomator}"
|
||||||
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
|
const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}"
|
||||||
const val androidx_junit = "androidx.test.ext:junit:${Versions.androidx_test_ext}"
|
const val androidx_junit = "androidx.test.ext:junit:${Versions.androidx_test_ext}"
|
||||||
const val androidx_test_core = "androidx.test:core:${Versions.androidx_testing}"
|
const val androidx_test_core = "androidx.test:core:${Versions.androidx_testing}"
|
||||||
|
|
Loading…
Reference in New Issue