1
0
Fork 0

Fixes #4324 - Add more l10n screenshots tests (#4350)

* Fixes #4324 - l10n Add more screenshots tests

* change test name

* final changes

* fixing reviewer comments
master
isabelrios 2019-08-01 17:35:47 +02:00 committed by Sawyer Blatz
parent b646e87d9e
commit f815ef1dd0
2 changed files with 243 additions and 114 deletions

View File

@ -0,0 +1,243 @@
/* 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 org.junit.After
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.helpers.TestAssetHelper
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule
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.Before
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
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
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
device.wait(Until.findObjects(By.text("Save to collection")), TestAssetHelper.waitingTimeShort)
openTabsMenu()
Screengrab.screenshot("open-tabs-menu")
device.pressBack()
device.wait(Until.findObjects(By.text("Save to collection")), TestAssetHelper.waitingTimeShort)
Screengrab.screenshot("save-collection-button")
// Save a collection
saveToCollectionButton()
Screengrab.screenshot("save-collection-view")
device.wait(Until.findObject(By.res("name_collection_edittext")), TestAssetHelper.waitingTimeShort)
nameCollectionTextBox().perform(replaceText("CollectionName"),
pressImeActionButton())
// Homescreen after saving one collection
device.wait(Until.findObject(By.res("collection_title")), TestAssetHelper.waitingTimeShort)
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) {
}
device.wait(Until.findObjects(By.res("quick_action_sheet_handle")), TestAssetHelper.waitingTimeShort)
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()
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.bookmark_add_folder_title_edit)))
.type("folder")
fun bookmarkFolderMenu() = Espresso.onView(Matchers.allOf(ViewMatchers.withId(R.id.bookmark_overflow))).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,114 +0,0 @@
package org.mozilla.fenix.ui.screenshots
import android.os.SystemClock
import androidx.test.rule.ActivityTestRule
import org.junit.After
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.HomeActivity
import org.mozilla.fenix.R
import org.mozilla.fenix.helpers.HomeActivityTestRule
import org.mozilla.fenix.helpers.TestAssetHelper
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule
import br.com.concretesolutions.kappuccino.actions.ClickActions
import org.mozilla.fenix.ui.robots.homeScreen
import org.mozilla.fenix.ui.robots.swipeToBottom
class ThreeDotMenuScreenShotTest : ScreenshotTest() {
@Rule @JvmField
val localeTestRule = LocaleTestRule()
@get:Rule
var mActivityTestRule: ActivityTestRule<HomeActivity> = HomeActivityTestRule()
@After
fun tearDown() {
mActivityTestRule.getActivity().finishAndRemoveTask()
}
@Test
fun threeDotMenu() {
homeScreen {
}.openThreeDotMenu { }
Screengrab.screenshot("three-dot-menu")
device.pressBack()
}
@Test
fun settingsTest() {
homeScreen {
}.openThreeDotMenu {
}.openSettings { }
Screengrab.screenshot("settings")
SystemClock.sleep(TestAssetHelper.waitingTime)
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")
device.pressBack()
}
@Test
fun settingsAfterScrollMenusTest() {
homeScreen {
}.openThreeDotMenu {
}.openSettings {
swipeToBottom()
}
Screengrab.screenshot("settings-scroll-to-bottom")
SystemClock.sleep(TestAssetHelper.waitingTime)
settingsRemoveData()
Screengrab.screenshot("settings-delete-browsing-data")
device.pressBack()
SystemClock.sleep(TestAssetHelper.waitingTime)
settingsTelemetry()
Screengrab.screenshot("settings-telemetry")
device.pressBack()
}
@Test
fun libraryTest() {
homeScreen {
}.openThreeDotMenu {
}.openLibrary { }
Screengrab.screenshot("library")
bookmarksButton()
Screengrab.screenshot("library-bookmarks")
device.pressBack()
historyButton()
Screengrab.screenshot("library-history")
}
}
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) }