|
|
|
@ -8,11 +8,9 @@ import android.view.View
|
|
|
|
|
import okhttp3.mockwebserver.MockWebServer
|
|
|
|
|
import org.junit.After
|
|
|
|
|
import org.junit.Before
|
|
|
|
|
import org.junit.Ignore
|
|
|
|
|
import org.junit.Rule
|
|
|
|
|
import org.junit.Test
|
|
|
|
|
import org.mozilla.fenix.ui.robots.navigationToolbar
|
|
|
|
|
import org.mozilla.fenix.ui.robots.readerViewRobot
|
|
|
|
|
import androidx.test.espresso.IdlingRegistry
|
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
|
|
|
|
@ -30,10 +28,10 @@ import org.mozilla.fenix.ui.robots.mDevice
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
@Ignore("Temp disable - reader view page detection issues: https://github.com/mozilla-mobile/fenix/issues/9688 ")
|
|
|
|
|
// @Ignore("Temp disable - reader view page detection issues: https://github.com/mozilla-mobile/fenix/issues/9688 ")
|
|
|
|
|
class ReaderViewTest {
|
|
|
|
|
private lateinit var mockWebServer: MockWebServer
|
|
|
|
|
private var readerViewNotificationDot: ViewVisibilityIdlingResource? = null
|
|
|
|
|
private var readerViewNotification: ViewVisibilityIdlingResource? = null
|
|
|
|
|
|
|
|
|
|
@get:Rule
|
|
|
|
|
val activityIntentTestRule = HomeActivityIntentTestRule()
|
|
|
|
@ -44,24 +42,18 @@ class ReaderViewTest {
|
|
|
|
|
dispatcher = AndroidAssetDispatcher()
|
|
|
|
|
start()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
readerViewNotificationDot = ViewVisibilityIdlingResource(
|
|
|
|
|
activityIntentTestRule.activity.findViewById(R.id.notification_dot),
|
|
|
|
|
View.VISIBLE
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@After
|
|
|
|
|
fun tearDown() {
|
|
|
|
|
mockWebServer.shutdown()
|
|
|
|
|
IdlingRegistry.getInstance().unregister(readerViewNotificationDot)
|
|
|
|
|
IdlingRegistry.getInstance().unregister(readerViewNotification)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Verify that Reader View capable pages
|
|
|
|
|
*
|
|
|
|
|
* - Show blue notification in the three dot menu
|
|
|
|
|
* - Show the toggle button in the three dot menu
|
|
|
|
|
* - Show the toggle button in the navigation bar
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@Test
|
|
|
|
@ -74,23 +66,22 @@ class ReaderViewTest {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotificationDot)
|
|
|
|
|
readerViewNotification = ViewVisibilityIdlingResource(
|
|
|
|
|
activityIntentTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions),
|
|
|
|
|
View.VISIBLE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotification)
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(true)
|
|
|
|
|
}.closeBrowserMenuToBrowser { }
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Verify that non Reader View capable pages
|
|
|
|
|
*
|
|
|
|
|
* - Do not show a blue notification in the three dot menu
|
|
|
|
|
* - Reader View toggle should not be visible in the three dot menu
|
|
|
|
|
* - Reader View toggle should not be visible in the navigation toolbar
|
|
|
|
|
*
|
|
|
|
|
*/
|
|
|
|
|
@Test
|
|
|
|
@ -103,15 +94,9 @@ class ReaderViewTest {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
verifyReaderViewDetected(false)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(false)
|
|
|
|
|
verifyReaderViewAppearance(false)
|
|
|
|
|
}.closeBrowserMenuToBrowser { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@ -124,61 +109,25 @@ class ReaderViewTest {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotificationDot)
|
|
|
|
|
readerViewNotification = ViewVisibilityIdlingResource(
|
|
|
|
|
activityIntentTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions),
|
|
|
|
|
View.VISIBLE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotification)
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(true)
|
|
|
|
|
}.toggleReaderView {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
toggleReaderView()
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewAppearance(true)
|
|
|
|
|
}.toggleReaderView {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewAppearance(false)
|
|
|
|
|
}.close { }
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(false)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
|
fun verifyReaderViewAppearanceUI() {
|
|
|
|
|
val readerViewPage =
|
|
|
|
|
TestAssetHelper.getLoremIpsumAsset(mockWebServer)
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.enterURLAndEnterToBrowser(readerViewPage.url) {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotificationDot)
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
}.closeBrowserMenuToBrowser { }
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
toggleReaderView()
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(true)
|
|
|
|
|
}.toggleReaderView {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewAppearance(true)
|
|
|
|
|
}.openReaderViewAppearance {
|
|
|
|
|
verifyAppearanceFontGroup(true)
|
|
|
|
|
verifyAppearanceFontSansSerif(true)
|
|
|
|
|
verifyAppearanceFontSerif(true)
|
|
|
|
|
verifyAppearanceFontIncrease(true)
|
|
|
|
|
verifyAppearanceFontDecrease(true)
|
|
|
|
|
verifyAppearanceColorGroup(true)
|
|
|
|
|
verifyAppearanceColorDark(true)
|
|
|
|
|
verifyAppearanceColorLight(true)
|
|
|
|
|
verifyAppearanceColorSepia(true)
|
|
|
|
|
}
|
|
|
|
|
verifyReaderViewAppearance(false)
|
|
|
|
|
}.close { }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@ -191,16 +140,16 @@ class ReaderViewTest {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotificationDot)
|
|
|
|
|
readerViewNotification = ViewVisibilityIdlingResource(
|
|
|
|
|
activityIntentTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions),
|
|
|
|
|
View.VISIBLE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotification)
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(true)
|
|
|
|
|
}.toggleReaderView {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
toggleReaderView()
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewAppearance(true)
|
|
|
|
|
}.openReaderViewAppearance {
|
|
|
|
@ -226,16 +175,16 @@ class ReaderViewTest {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotificationDot)
|
|
|
|
|
readerViewNotification = ViewVisibilityIdlingResource(
|
|
|
|
|
activityIntentTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions),
|
|
|
|
|
View.VISIBLE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotification)
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(true)
|
|
|
|
|
}.toggleReaderView {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
toggleReaderView()
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewAppearance(true)
|
|
|
|
|
}.openReaderViewAppearance {
|
|
|
|
@ -267,16 +216,16 @@ class ReaderViewTest {
|
|
|
|
|
mDevice.waitForIdle()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotificationDot)
|
|
|
|
|
readerViewNotification = ViewVisibilityIdlingResource(
|
|
|
|
|
activityIntentTestRule.activity.findViewById(R.id.mozac_browser_toolbar_page_actions),
|
|
|
|
|
View.VISIBLE
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
readerViewRobot {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
}
|
|
|
|
|
IdlingRegistry.getInstance().register(readerViewNotification)
|
|
|
|
|
|
|
|
|
|
navigationToolbar {
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewToggle(true)
|
|
|
|
|
}.toggleReaderView {
|
|
|
|
|
verifyReaderViewDetected(true)
|
|
|
|
|
toggleReaderView()
|
|
|
|
|
}.openThreeDotMenu {
|
|
|
|
|
verifyReaderViewAppearance(true)
|
|
|
|
|
}.openReaderViewAppearance {
|
|
|
|
|