1
0
Fork 0

Re-enable Screenshots tests (#6617)

disabling setting test options due to different screen sizes

name screenshots according to robots

fix kotlin style

update settings tests with new Toolbar option

screenshots tests in different package than ui tests
master
isabelrios 2019-12-10 12:05:47 +01:00 committed by Oana Horvath
parent a83717dd7b
commit 1d04736884
10 changed files with 387 additions and 403 deletions

View File

@ -482,9 +482,9 @@ dependencies {
androidTestImplementation Deps.uiautomator
// Removed pending AndroidX fixes
// androidTestImplementation "tools.fastlane:screengrab:1.2.0"
androidTestImplementation "tools.fastlane:screengrab:2.0.0"
// androidTestImplementation "br.com.concretesolutions:kappuccino:1.2.1"
androidTestImplementation Deps.espresso_core, {
exclude group: 'com.android.support', module: 'support-annotations'
}

View File

@ -0,0 +1,52 @@
/* 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
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.screenshots
import androidx.test.rule.ActivityTestRule
import org.junit.After
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.ui.robots.homeScreen
import org.mozilla.fenix.ui.robots.mDevice
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule
class DefaultHomeScreenTest : ScreenshotTest() {
@Rule @JvmField
val localeTestRule = LocaleTestRule()
@get:Rule
var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
@After
fun tearDown() {
mActivityTestRule.getActivity().finishAndRemoveTask()
}
@Test
fun showDefaultHomeScreen() {
homeScreen {
verifyAccountsSignInButton()
Screengrab.screenshot("HomeScreenRobot_home-screen")
swipeToBottom()
Screengrab.screenshot("HomeScreenRobot_home-screen-scroll")
}
}
@Test
fun privateBrowsingTest() {
homeScreen {
}.openThreeDotMenu {
}.openSettings { }
// To get private screenshot,
// dismiss onboarding going to settings and back
mDevice.pressBack()
homeScreen {
togglePrivateBrowsingModeOnOff()
Screengrab.screenshot("HomeScreenRobot_private-browsing-menu")
}
}
}

View File

@ -0,0 +1,223 @@
/* 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
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.screenshots
import androidx.test.espresso.Espresso.onView
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.rule.ActivityTestRule
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule
import okhttp3.mockwebserver.MockWebServer
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.click
import org.mozilla.fenix.ui.robots.homeScreen
import org.mozilla.fenix.ui.robots.bookmarksMenu
import org.mozilla.fenix.ui.robots.mDevice
import org.mozilla.fenix.ui.robots.navigationToolbar
import org.mozilla.fenix.ui.robots.swipeToBottom
class MenuScreenShotTest : ScreenshotTest() {
private lateinit var mockWebServer: MockWebServer
@Rule
@JvmField
val localeTestRule = LocaleTestRule()
@get:Rule
var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
@Before
fun setUp() {
mockWebServer = MockWebServer().apply {
setDispatcher(AndroidAssetDispatcher())
start()
}
}
@After
fun tearDown() {
mActivityTestRule.getActivity().finishAndRemoveTask()
mockWebServer.shutdown()
}
@Test
fun threeDotMenuTest() {
homeScreen {
}.openThreeDotMenu {
Screengrab.screenshot("ThreeDotMenuMainRobot_three-dot-menu")
}
}
@Test
fun settingsTest() {
homeScreen {
}.openThreeDotMenu {
}.openSettings {
Screengrab.screenshot("SettingsRobot_settings-menu")
settingsAccountPreferences()
Screengrab.screenshot("AccountSettingsRobot_settings-account")
mDevice.pressBack()
settingsSearch()
Screengrab.screenshot("SettingsSubMenuSearchRobot_settings-search")
mDevice.pressBack()
settingsTheme()
Screengrab.screenshot("SettingsSubMenuThemeRobot_settings-theme")
mDevice.pressBack()
settingsAccessibility()
Screengrab.screenshot("SettingsSubMenuAccessibilityRobot_settings-accessibility")
mDevice.pressBack()
settingDefaultBrowser()
Screengrab.screenshot("SettingsSubMenuDefaultBrowserRobot_settings-default-browser")
mDevice.pressBack()
settingsToolbar()
Screengrab.screenshot("SettingsSubMenuDefaultBrowserRobot_settings-toolbar")
mDevice.pressBack()
// Need to find a way to swipe only a little to get all the options in all screensizes
// settingsTP()
// Screengrab.screenshot("settings-enhanced-tp")
// mDevice.pressBack()
// Need to find a way to swipe only a little to get all the options in all screensizes
// settingsAddToHomeScreen()
// Screengrab.screenshot("settings-add-to-homescreen")
// mDevice.pressBack()
// Wee need this but this way not going to work in other languages. Need a workaround to not use Sleep
// mDevice.waitNotNull(Until.findObjects(By.text("Delete browsing data on quit")), TestAssetHelper.waitingTime)
// settingsRemoveData()
// Screengrab.screenshot("settings-delete-browsing-data")
// device.pressBack()
swipeToBottom()
Screengrab.screenshot("SettingsRobot_settings-scroll-to-bottom")
settingsTelemetry()
Screengrab.screenshot("settings-telemetry")
}
}
@Test
fun historyTest() {
homeScreen {
}.openThreeDotMenu {
}
openHistoryThreeDotMenu()
Screengrab.screenshot("HistoryRobot_history-menu")
}
@Test
fun bookmarksManagementTest() {
homeScreen {
}.openThreeDotMenu {
}
openBookmarksThreeDotMenu()
Screengrab.screenshot("BookmarksRobot_bookmarks-menu")
bookmarksMenu {
clickAddFolderButton()
Screengrab.screenshot("BookmarksRobot_add-folder-view")
saveNewFolder()
Screengrab.screenshot("BookmarksRobot_error-empty-folder-name")
addNewFolderName("test")
saveNewFolder()
}.openThreeDotMenu {
Screengrab.screenshot("ThreeDotMenuBookmarksRobot_folder-menu")
}
editBookmarkFolder()
Screengrab.screenshot("ThreeDotMenuBookmarksRobot_edit-bookmark-folder-menu")
// It may be needed to wait here to have the screenshot
mDevice.pressBack()
bookmarksMenu {
}.openThreeDotMenu {
deleteBookmarkFolder()
Screengrab.screenshot("ThreeDotMenuBookmarksRobot_delete-bookmark-folder-menu")
}
}
@Test
fun collectionMenuTest() {
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar {
Screengrab.screenshot("NavigationToolbarRobot_navigation-toolbar")
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
Screengrab.screenshot("BrowserRobot_enter-url")
}
tapOnTabCounter()
// Homescreen with visited tabs
Screengrab.screenshot("HomeScreenRobot_homescreen-with-tabs-open")
homeScreen {
}.openTabsListThreeDotMenu {
Screengrab.screenshot("open-tabs-menu")
}.close {
// It may be needed to wait here for tests working on Firebase
saveToCollectionButton()
Screengrab.screenshot("HomeScreenRobot_save-collection-view")
typeCollectionName("CollectionName")
mDevice.pressBack()
// It may be needed to wait here for tests working on Firebase
Screengrab.screenshot("HomeScreenRobot_saved-collection")
}
}
@Test
fun tabMenuTest() {
val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
navigationToolbar {
}.enterURLAndEnterToBrowser(defaultWebPage.url) {
}.openThreeDotMenu {
Screengrab.screenshot("browser-tab-menu")
}.closeBrowserMenuToBrowser {
}.openHomeScreen {
Screengrab.screenshot("homescree-with-tabs")
closeTab()
Screengrab.screenshot("remove-tab")
}
}
}
fun openHistoryThreeDotMenu() = onView(withText(R.string.library_history)).click()
fun openBookmarksThreeDotMenu() = onView(withText(R.string.library_bookmarks)).click()
fun editBookmarkFolder() = onView(withText(R.string.bookmark_menu_edit_button)).click()
fun deleteBookmarkFolder() = onView(withText(R.string.bookmark_menu_delete_button)).click()
fun saveToCollectionButton() = onView(withId(R.id.save_tab_group_button)).click()
fun tapOnTabCounter() = onView(withId(R.id.counter_text)).click()
fun settingsAccountPreferences() = onView(withText(R.string.preferences_sync)).click()
fun settingsSearch() = onView(withText(R.string.preferences_search)).click()
fun settingsTheme() = onView(withText(R.string.preferences_theme)).click()
fun settingsAccessibility() = onView(withText(R.string.preferences_accessibility)).click()
fun settingDefaultBrowser() = onView(withText(R.string.preferences_set_as_default_browser)).click()
fun settingsToolbar() = onView(withText(R.string.preferences_toolbar)).click()
fun settingsTP() = onView(withText(R.string.preference_enhanced_tracking_protection)).click()
fun settingsAddToHomeScreen() = onView(withText(R.string.preferences_add_private_browsing_shortcut)).click()
fun settingsRemoveData() = onView(withText(R.string.preferences_delete_browsing_data)).click()
fun settingsTelemetry() = onView(withText(R.string.preferences_data_collection)).click()

View File

@ -0,0 +1,73 @@
/* 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
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
package org.mozilla.fenix.screenshots;
import android.Manifest;
import android.app.Instrumentation;
import android.content.Context;
import androidx.annotation.StringRes;
import androidx.test.platform.app.InstrumentationRegistry;
import androidx.test.rule.GrantPermissionRule;
import androidx.test.uiautomator.UiDevice;
import org.junit.Before;
import org.junit.Rule;
import org.junit.rules.TestRule;
import org.junit.rules.TestWatcher;
import org.junit.runner.Description;
import tools.fastlane.screengrab.Screengrab;
import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
/**
* Base class for tests that take screenshots.
*/
public abstract class ScreenshotTest {
private Context targetContext;
UiDevice device;
@Rule
public GrantPermissionRule permissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_EXTERNAL_STORAGE);
@Rule
public TestRule screenshotOnFailureRule = new TestWatcher() {
@Override
protected void failed(Throwable e, Description description) {
// On error take a screenshot so that we can debug it easily
Screengrab.screenshot("FAILURE-" + getScreenshotName(description));
}
private String getScreenshotName(Description description) {
return description.getClassName().replace(".", "-")
+ "_"
+ description.getMethodName().replace(".", "-");
}
};
@Before
public void setUpScreenshots() {
Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
targetContext = instrumentation.getTargetContext();
device = UiDevice.getInstance(instrumentation);
// Use this to switch between default strategy and HostScreencap strategy
Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
}
String getString(@StringRes int resourceId) {
return targetContext.getString(resourceId).trim();
}
String getString(@StringRes int resourceId, Object... formatArgs) {
return targetContext.getString(resourceId, formatArgs).trim();
}
public void takeScreenshotsAfterWait(String filename, int waitingTime) throws InterruptedException {
Thread.sleep(waitingTime);
Screengrab.screenshot(filename);
}
}

View File

@ -15,9 +15,7 @@ import androidx.test.espresso.matcher.ViewMatchers
import androidx.test.espresso.matcher.ViewMatchers.Visibility
import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
import androidx.test.espresso.matcher.ViewMatchers.withEffectiveVisibility
import androidx.test.espresso.matcher.ViewMatchers.hasFocus
import androidx.test.espresso.matcher.ViewMatchers.withId
import androidx.test.espresso.matcher.ViewMatchers.withText
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.Until
import androidx.test.uiautomator.By
@ -30,7 +28,7 @@ import org.hamcrest.Matchers.containsString
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.click
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
import org.mozilla.fenix.helpers.click
import org.mozilla.fenix.helpers.ext.waitNotNull
/**
* Implementation of Robot Pattern for the home screen menu.
@ -87,23 +85,23 @@ class HomeScreenRobot {
// Collections element
fun clickCollectionThreeDotButton() {
collectionThreeDotButton().click()
mDevice.wait(Until.findObject(By.text("Delete collection")), waitingTime)
mDevice.waitNotNull(Until.findObject(By.text("Delete collection")), waitingTime)
}
fun selectRenameCollection() {
onView(allOf(ViewMatchers.withText("Rename collection"))).click()
mDevice.wait(Until.findObject(By.res("org.mozilla.fenix.debug:id/name_collection_edittext")), waitingTime)
mDevice.waitNotNull(Until.findObject(By.res("name_collection_edittext")))
}
fun selectDeleteCollection() {
onView(allOf(ViewMatchers.withText("Delete collection"))).click()
mDevice.wait(Until.findObject(By.res("message")), waitingTime)
mDevice.waitNotNull(Until.findObject(By.res("message")), waitingTime)
}
fun confirmDeleteCollection() {
onView(allOf(ViewMatchers.withText("DELETE"))).click()
mDevice.wait(Until.findObject(By.res("org.mozilla.fenix.debug:id/collections_header")), waitingTime)
mDevice.waitNotNull(Until.findObject(By.res("collections_header")), waitingTime)
}
fun typeCollectionName(name: String) {
mDevice.wait(Until.findObject(By.res("org.mozilla.fenix.debug:id/name_collection_edittext")), waitingTime)
collectionNameTextField().check(matches(hasFocus()))
mDevice.wait(Until.findObject(By.res("name_collection_edittext")), waitingTime)
collectionNameTextField().perform(ViewActions.replaceText(name))
collectionNameTextField().perform(ViewActions.pressImeActionButton())
}
@ -120,6 +118,15 @@ class HomeScreenRobot {
closeTabButton().click()
}
fun togglePrivateBrowsingModeOnOff() {
onView(ViewMatchers.withResourceName("privateBrowsingButton"))
.perform(click())
}
fun swipeToBottom() = onView(ViewMatchers.withId(R.id.home_component)).perform(ViewActions.swipeUp())
fun swipeToTop() = onView(ViewMatchers.withId(R.id.home_component)).perform(ViewActions.swipeDown())
class Transition {
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
@ -361,4 +368,4 @@ private fun tabsListThreeDotButton() = onView(allOf(ViewMatchers.withId(R.id.tab
private fun collectionThreeDotButton() = onView(allOf(ViewMatchers.withId(R.id.collection_overflow_button)))
private fun collectionNameTextField() = onView(allOf(ViewMatchers.withResourceName("name_collection_edittext"), hasFocus()))
private fun collectionNameTextField() = onView(allOf(ViewMatchers.withResourceName("name_collection_edittext")))

View File

@ -17,6 +17,7 @@ import androidx.test.espresso.matcher.ViewMatchers.Visibility
import androidx.test.uiautomator.By
import androidx.test.uiautomator.Until
import org.hamcrest.CoreMatchers
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
import org.mozilla.fenix.helpers.TestHelper
import org.mozilla.fenix.helpers.click
@ -231,5 +232,6 @@ private fun assertAboutFirefoxPreview() {
.check(matches(withEffectiveVisibility(Visibility.VISIBLE)))
}
private fun goBackButton() =
onView(CoreMatchers.allOf(ViewMatchers.withContentDescription("Navigate up")))
private fun goBackButton() = onView(CoreMatchers.allOf(ViewMatchers.withContentDescription("Navigate up")))
fun swipeToBottom() = onView(ViewMatchers.withId(R.id.recycler_view)).perform(ViewActions.swipeUp())

View File

@ -78,7 +78,6 @@ class ThreeDotMenuMainRobot {
private val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
fun openSettings(interact: SettingsRobot.() -> Unit): SettingsRobot.Transition {
mDevice.waitNotNull(Until.findObject(By.text("Settings")), waitingTime)
settingsButton().click()
SettingsRobot().interact()
@ -135,6 +134,22 @@ class ThreeDotMenuMainRobot {
return BrowserRobot.Transition()
}
fun close(interact: HomeScreenRobot.() -> Unit): HomeScreenRobot.Transition {
// Close three dot
mDevice.pressBack()
HomeScreenRobot().interact()
return HomeScreenRobot.Transition()
}
fun closeBrowserMenuToBrowser(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
// Close three dot
mDevice.pressBack()
BrowserRobot().interact()
return BrowserRobot.Transition()
}
fun refreshPage(interact: BrowserRobot.() -> Unit): BrowserRobot.Transition {
mDevice.waitNotNull(Until.findObject(By.desc("Refresh")), waitingTime)
refreshButton().click()

View File

@ -1,71 +0,0 @@
// /* 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
// * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
//
// package org.mozilla.fenix.ui.screenshots
//
// import androidx.test.rule.ActivityTestRule
// import org.junit.After
// import org.junit.Rule
// import org.junit.Test
// import org.mozilla.fenix.helpers.HomeActivityTestRule
// import org.mozilla.fenix.HomeActivity
// import org.mozilla.fenix.R
// import android.os.SystemClock
// import tools.fastlane.screengrab.Screengrab
// import tools.fastlane.screengrab.locale.LocaleTestRule
// import androidx.test.espresso.Espresso.onView
// import androidx.test.espresso.action.ViewActions.click
// import androidx.test.espresso.action.ViewActions.swipeUp
// import androidx.test.espresso.action.ViewActions.swipeDown
// import androidx.test.espresso.matcher.ViewMatchers.hasFocus
// import androidx.test.espresso.matcher.ViewMatchers.isDisplayed
// import androidx.test.espresso.matcher.ViewMatchers.withId
// import org.hamcrest.Matchers.allOf
//
// class DefaultHomeScreenTest : ScreenshotTest() {
// @Rule @JvmField
// val localeTestRule = LocaleTestRule()
// @get:Rule
// var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
//
// @After
// fun tearDown() {
// mActivityTestRule.getActivity().finishAndRemoveTask()
// }
//
// @Test
// fun showDefaultHomeScreen() {
// onView(allOf(withId(R.id.homeLayout), isDisplayed(), hasFocus()))
// onView(allOf(withId(R.id.toolbar), isDisplayed()))
// SystemClock.sleep(5000)
// Screengrab.screenshot("home-screen")
//
// onView(allOf(withId(R.id.privateBrowsingButton))).perform(click())
// Screengrab.screenshot("private-browsing-menu")
// onView(allOf(withId(R.id.privateBrowsingButton))).perform(click())
// }
//
// @Test
// fun scrollHomeScreen() {
// onView(withId(R.id.home_component)).perform(swipeUp())
// Screengrab.screenshot("home-screen2")
// SystemClock.sleep(3000)
//
// onView(withId(R.id.home_component)).perform(swipeUp())
// Screengrab.screenshot("home-screen3")
// SystemClock.sleep(3000)
//
// onView(withId(R.id.finish_button)).perform(click())
// SystemClock.sleep(3000)
//
// Screengrab.screenshot("finish-button")
// SystemClock.sleep(3000)
//
// onView(withId(R.id.home_component)).perform(swipeDown())
// SystemClock.sleep(3000)
//
// onView(withId(R.id.add_tab_button)).perform(click())
// Screengrab.screenshot("add_tab_button")
// }
// }

View File

@ -1,242 +0,0 @@
// /* 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
// * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
//
// package org.mozilla.fenix.ui.screenshots
//
// import android.os.SystemClock
// import android.widget.ImageView
// import androidx.test.espresso.Espresso
// import androidx.test.espresso.action.ViewActions.pressImeActionButton
// import androidx.test.espresso.action.ViewActions.replaceText
// import androidx.test.espresso.matcher.ViewMatchers
// import androidx.test.rule.ActivityTestRule
// import androidx.test.uiautomator.By
// import androidx.test.uiautomator.UiSelector
// import androidx.test.uiautomator.Until
// import br.com.concretesolutions.kappuccino.actions.ClickActions
// import br.com.concretesolutions.kappuccino.extensions.type
// import okhttp3.mockwebserver.MockWebServer
// import org.hamcrest.Matchers
// import org.junit.After
// import org.junit.Before
// import org.junit.Rule
// import org.junit.Test
// import org.mozilla.fenix.HomeActivity
// import org.mozilla.fenix.R
// import org.mozilla.fenix.helpers.AndroidAssetDispatcher
// import org.mozilla.fenix.helpers.ext.waitNotNull
// import org.mozilla.fenix.helpers.HomeActivityTestRule
// import org.mozilla.fenix.helpers.TestAssetHelper
// import org.mozilla.fenix.helpers.click
// import org.mozilla.fenix.ui.robots.homeScreen
// import org.mozilla.fenix.ui.robots.navigationToolbar
// import org.mozilla.fenix.ui.robots.swipeToBottom
// import tools.fastlane.screengrab.Screengrab
// import tools.fastlane.screengrab.locale.LocaleTestRule
//
// class MenuScreenShotTest : ScreenshotTest() {
//
// private lateinit var mockWebServer: MockWebServer
// @Rule @JvmField
// val localeTestRule = LocaleTestRule()
//
// @get:Rule
// var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
//
// @Before
// fun setUp() {
// mockWebServer = MockWebServer().apply {
// setDispatcher(AndroidAssetDispatcher())
// start()
// }
// }
//
// @After
// fun tearDown() {
// mActivityTestRule.getActivity().finishAndRemoveTask()
// mockWebServer.shutdown()
// }
//
// @Test
// fun threeDotMenu() {
// homeScreen {
// }.openThreeDotMenu { }
// Screengrab.screenshot("three-dot-menu")
// }
//
// @Test
// fun settingsTest() {
// homeScreen {
// }.openThreeDotMenu {
// }.openSettings { }
// Screengrab.screenshot("settings")
//
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
// settingsAccount()
// Screengrab.screenshot("settings-sync")
// device.pressBack()
//
// settingsTheme()
// Screengrab.screenshot("settings-theme")
// device.pressBack()
//
// settingsSearch()
// Screengrab.screenshot("settings-search")
// device.pressBack()
//
// settingsAccessibility()
// Screengrab.screenshot("settings-accessibility")
// device.pressBack()
//
// settingsTp()
// Screengrab.screenshot("settings-tp")
// }
//
// @Test
// fun settingsAfterScrollMenusTest() {
// homeScreen {
// }.openThreeDotMenu {
// }.openSettings {
// swipeToBottom()
// }
// Screengrab.screenshot("settings-scroll-to-bottom")
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
//
// settingsRemoveData()
// Screengrab.screenshot("settings-delete-browsing-data")
// device.pressBack()
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
//
// settingsTelemetry()
// Screengrab.screenshot("settings-telemetry")
// }
//
// @Test
// fun libraryTest() {
// homeScreen {
// }.openThreeDotMenu {
// }.openLibrary { }
// Screengrab.screenshot("library")
//
// bookmarksButton()
// Screengrab.screenshot("library-bookmarks")
// device.pressBack()
// historyButton()
// Screengrab.screenshot("library-history")
// }
//
// @Test
// fun bookmarksManagementTest() {
// homeScreen {
// }.openThreeDotMenu {
// }.openLibrary { }
// bookmarksButton()
// addBookmarkFolderButton()
// Screengrab.screenshot("add-folder-view")
//
// confirmAddFolderButton()
// Screengrab.screenshot("error-empty-folder-name")
//
// // Enter folder name and save
// addFolderName()
// confirmAddFolderButton()
// SystemClock.sleep(TestAssetHelper.waitingTimeShort)
//
// // Open folder menu
// bookmarkFolderMenu()
// Screengrab.screenshot("folder-menu")
//
// // Edit folder menu
// editBookmarkFolder()
// device.pressBack()
// Screengrab.screenshot("edit-bookmark-folder-menu")
//
// // Delete folder
// bookmarkFolderMenu()
// deleteBookmarkFolder()
// Screengrab.screenshot("delete-bookmark-folder-menu")
// }
//
// @Test
// fun collectionMenuTest() {
// val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
// navigationToolbar {
// }.enterURLAndEnterToBrowser(defaultWebPage.url) {
// }
// device.findObject(UiSelector()
// .instance(1)
// .className(ImageView::class.java)).click()
// // Homescreen with visited tabs
// mDevice.waitNotNull(device.wait(Until.findObjects(By.text("Save to collection")))
// openTabsMenu()
// Screengrab.screenshot("open-tabs-menu")
// device.pressBack()
// mDevice.waitNotNull(Until.findObjects(By.text("Save to collection")))
// Screengrab.screenshot("save-collection-button")
//
// // Save a collection
// saveToCollectionButton()
// Screengrab.screenshot("save-collection-view")
// mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/name_collection_edittext")))
// nameCollectionTextBox().perform(replaceText("CollectionName"),
// pressImeActionButton())
//
// // Homescreen after saving one collection
// mDevice.waitNotNull(Until.findObject(By.res("org.mozilla.fenix.debug:id/collection_title")))
// Screengrab.screenshot("saved-tab")
//
// // Open Collection menu
// collectionsButton()
// Screengrab.screenshot("saved-collections-menu")
// }
//
// @Test
// fun tabMenuTest() {
// val defaultWebPage = TestAssetHelper.getGenericAsset(mockWebServer, 1)
// navigationToolbar {
// }.enterURLAndEnterToBrowser(defaultWebPage.url) {
// }
// mDevice.waitNotNull(Until.findObjects(By.res("org.mozilla.fenix.debug:id/quick_action_sheet_handle")))
// openQuickActionMenu()
// Screengrab.screenshot("browser-tab-share-bookmark")
// // Open Browser tab menu
// device.findObject(UiSelector()
// .instance(2)
// .className(ImageView::class.java)).click()
// Screengrab.screenshot("browser-tab-menu")
// // Close menu and go back to Homescreen and remove the tab
// device.pressBack()
// device.findObject(UiSelector()
// .instance(1)
// .className(ImageView::class.java)).click()
// mDevice.waitNotNull(Until.findObjects(By.res("org.mozilla.fenix.debug:id/close_tab_button")))
// closeTabButton()
// Screengrab.screenshot("remove-tab")
// }
// }
//
// fun bookmarksButton() = ClickActions.click { text(R.string.library_bookmarks) }
// fun historyButton() = ClickActions.click { text(R.string.library_history) }
// fun settingsAccount() = ClickActions.click { text(R.string.preferences_sync) }
//
// fun settingsSearch() = ClickActions.click { text(R.string.preferences_search_engine) }
// fun settingsTheme() = ClickActions.click { text(R.string.preferences_theme) }
// fun settingsAccessibility() = ClickActions.click { text(R.string.preferences_accessibility) }
// fun settingsTp() = ClickActions.click { text(R.string.preferences_tracking_protection) }
// fun settingsRemoveData() = ClickActions.click { text(R.string.preferences_delete_browsing_data) }
// 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 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 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 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)))
// .type("folder")
// 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 deleteBookmarkFolder() = ClickActions.click { text(R.string.bookmark_menu_delete_button) }
// 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()

View File

@ -1,75 +0,0 @@
// /* 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
// * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
//
// package org.mozilla.fenix.ui.screenshots;
//
// import android.Manifest;
// import android.app.Instrumentation;
// import android.content.Context;
// import androidx.annotation.StringRes;
// import androidx.test.platform.app.InstrumentationRegistry;
// import androidx.test.rule.GrantPermissionRule;
// import androidx.test.uiautomator.UiDevice;
// import android.text.format.DateUtils;
//
// import org.junit.Before;
// import org.junit.Rule;
// import org.junit.rules.TestRule;
// import org.junit.rules.TestWatcher;
// import org.junit.runner.Description;
//
// import tools.fastlane.screengrab.Screengrab;
// import tools.fastlane.screengrab.UiAutomatorScreenshotStrategy;
//
// /**
// * Base class for tests that take screenshots.
// */
// public abstract class ScreenshotTest {
// final long waitingTime = DateUtils.SECOND_IN_MILLIS * 10;
//
// private Context targetContext;
//
// UiDevice device;
//
// @Rule
// public GrantPermissionRule permissionRule = GrantPermissionRule.grant(Manifest.permission.WRITE_EXTERNAL_STORAGE);
//
// @Rule
// public TestRule screenshotOnFailureRule = new TestWatcher() {
// @Override
// protected void failed(Throwable e, Description description) {
// // On error take a screenshot so that we can debug it easily
// Screengrab.screenshot("FAILURE-" + getScreenshotName(description));
// }
//
// private String getScreenshotName(Description description) {
// return description.getClassName().replace(".", "-")
// + "_"
// + description.getMethodName().replace(".", "-");
// }
// };
//
// @Before
// public void setUpScreenshots() {
// Instrumentation instrumentation = InstrumentationRegistry.getInstrumentation();
// targetContext = instrumentation.getTargetContext();
// device = UiDevice.getInstance(instrumentation);
//
// // Use this to switch between default strategy and HostScreencap strategy
// Screengrab.setDefaultScreenshotStrategy(new UiAutomatorScreenshotStrategy());
// }
//
// String getString(@StringRes int resourceId) {
// return targetContext.getString(resourceId).trim();
// }
//
// String getString(@StringRes int resourceId, Object... formatArgs) {
// return targetContext.getString(resourceId, formatArgs).trim();
// }
//
// public void takeScreenshotsAfterWait(String filename, int waitingTime) throws InterruptedException {
// Thread.sleep(waitingTime);
// Screengrab.screenshot(filename);
// }
// }