mirror of
https://github.com/fork-maintainers/iceraven-browser
synced 2024-11-03 23:15:31 +00:00
[fenix] No issue: New UI smoke test for the Language menu
This commit is contained in:
parent
42bfec3846
commit
1fa807ca1f
@ -48,6 +48,7 @@ object TestHelper {
|
||||
|
||||
fun scrollToElementByText(text: String): UiScrollable {
|
||||
val appView = UiScrollable(UiSelector().scrollable(true))
|
||||
appView.waitForExists(waitingTime)
|
||||
appView.scrollTextIntoView(text)
|
||||
return appView
|
||||
}
|
||||
|
@ -48,6 +48,9 @@ import org.mozilla.fenix.ui.robots.notificationShade
|
||||
import org.mozilla.fenix.ui.robots.openEditURLView
|
||||
import org.mozilla.fenix.ui.robots.searchScreen
|
||||
import org.mozilla.fenix.ui.robots.tabDrawer
|
||||
import org.mozilla.fenix.ui.util.FRENCH_LANGUAGE_HEADER
|
||||
import org.mozilla.fenix.ui.util.FRENCH_SYSTEM_LOCALE_OPTION
|
||||
import org.mozilla.fenix.ui.util.ROMANIAN_LANGUAGE_HEADER
|
||||
import org.mozilla.fenix.ui.util.STRING_ONBOARDING_TRACKING_PROTECTION_HEADER
|
||||
|
||||
/**
|
||||
@ -66,6 +69,7 @@ class SmokeTest {
|
||||
private val downloadFileName = "Globe.svg"
|
||||
private val collectionName = "First Collection"
|
||||
private var bookmarksListIdlingResource: RecyclerViewIdlingResource? = null
|
||||
private var localeListIdlingResource: RecyclerViewIdlingResource? = null
|
||||
private val customMenuItem = "TestMenuItem"
|
||||
|
||||
// This finds the dialog fragment child of the homeFragment, otherwise the awesomeBar would return null
|
||||
@ -133,6 +137,10 @@ class SmokeTest {
|
||||
if (readerViewNotification != null) {
|
||||
IdlingRegistry.getInstance().unregister(readerViewNotification)
|
||||
}
|
||||
|
||||
if (localeListIdlingResource != null) {
|
||||
IdlingRegistry.getInstance().unregister(localeListIdlingResource)
|
||||
}
|
||||
}
|
||||
|
||||
// Verifies the first run onboarding screen
|
||||
@ -1375,4 +1383,26 @@ class SmokeTest {
|
||||
verifyPastedToolbarText("Page content: 1")
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
fun switchLanguageTest() {
|
||||
homeScreen {
|
||||
}.openThreeDotMenu {
|
||||
}.openSettings {
|
||||
}.openLanguageSubMenu {
|
||||
localeListIdlingResource =
|
||||
RecyclerViewIdlingResource(
|
||||
activityTestRule.activity.findViewById(R.id.locale_list),
|
||||
2
|
||||
)
|
||||
IdlingRegistry.getInstance().register(localeListIdlingResource)
|
||||
selectLanguage("Romanian")
|
||||
verifyLanguageHeaderIsTranslated(ROMANIAN_LANGUAGE_HEADER)
|
||||
selectLanguage("Français")
|
||||
verifyLanguageHeaderIsTranslated(FRENCH_LANGUAGE_HEADER)
|
||||
selectLanguage(FRENCH_SYSTEM_LOCALE_OPTION)
|
||||
verifyLanguageHeaderIsTranslated("Language")
|
||||
IdlingRegistry.getInstance().unregister(localeListIdlingResource)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -9,9 +9,24 @@ import androidx.test.espresso.action.ViewActions
|
||||
import androidx.test.espresso.matcher.ViewMatchers
|
||||
import androidx.test.platform.app.InstrumentationRegistry
|
||||
import androidx.test.uiautomator.UiDevice
|
||||
import androidx.test.uiautomator.UiScrollable
|
||||
import androidx.test.uiautomator.UiSelector
|
||||
import junit.framework.TestCase.assertTrue
|
||||
import org.hamcrest.CoreMatchers
|
||||
import org.mozilla.fenix.helpers.TestAssetHelper.waitingTime
|
||||
import org.mozilla.fenix.helpers.TestHelper.packageName
|
||||
|
||||
class SettingsSubMenuLanguageRobot {
|
||||
fun selectLanguage(language: String) {
|
||||
languagesList.waitForExists(waitingTime)
|
||||
languagesList
|
||||
.getChildByText(UiSelector().text(language), language)
|
||||
.click()
|
||||
}
|
||||
|
||||
fun verifyLanguageHeaderIsTranslated(translation: String) =
|
||||
assertTrue(mDevice.findObject(UiSelector().text(translation)).waitForExists(waitingTime))
|
||||
|
||||
class Transition {
|
||||
val mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
|
||||
|
||||
@ -27,3 +42,10 @@ class SettingsSubMenuLanguageRobot {
|
||||
|
||||
private fun goBackButton() =
|
||||
onView(CoreMatchers.allOf(ViewMatchers.withContentDescription("Navigate up")))
|
||||
|
||||
private val languagesList =
|
||||
UiScrollable(
|
||||
UiSelector()
|
||||
.resourceId("$packageName:id/locale_list")
|
||||
.scrollable(true)
|
||||
)
|
||||
|
@ -7,3 +7,6 @@ package org.mozilla.fenix.ui.util
|
||||
const val STRING_ONBOARDING_ACCOUNT_SIGN_IN_HEADER = "Sync Firefox between devices"
|
||||
const val STRING_ONBOARDING_TRACKING_PROTECTION_HEADER = "Always-on privacy"
|
||||
const val STRING_ONBOARDING_TOOLBAR_PLACEMENT_HEADER = "Pick your toolbar placement"
|
||||
const val FRENCH_LANGUAGE_HEADER = "Langues"
|
||||
const val ROMANIAN_LANGUAGE_HEADER = "Limbă"
|
||||
const val FRENCH_SYSTEM_LOCALE_OPTION = "Utiliser la langue de l’appareil"
|
||||
|
Loading…
Reference in New Issue
Block a user