Bug 1840061 - Adds PDF viewer - Open in app button UI tests

fenix/116.0
oana.horvath 12 months ago committed by mergify[bot]
parent a4f47731ce
commit 2fd034664b

@ -14,7 +14,6 @@ import org.mozilla.fenix.customannotations.SmokeTest
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.Constants.PackageName.GOOGLE_DOCS
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText
import org.mozilla.fenix.helpers.MatcherHelper.itemWithText
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestHelper.assertExternalAppOpens
@ -216,19 +215,6 @@ class DownloadTest {
deleteDownloadedFileOnStorage(downloadFile)
}
@SmokeTest
@Test
fun openPDFInBrowserTest() {
val genericURL =
TestAssetHelper.getGenericAsset(mockWebServer, 3)
navigationToolbar {
}.enterURLAndEnterToBrowser(genericURL.url) {
clickPageObject(itemContainingText("PDF form file"))
verifyPageContent("Washington Crossing the Delaware")
}
}
// Save PDF file from the share overlay
@SmokeTest
@Test
@ -251,24 +237,6 @@ class DownloadTest {
deleteDownloadedFileOnStorage(downloadFile)
}
// Download PDF file using the download toolbar button
@Test
fun pdfViewerDownloadButtonTest() {
val genericURL =
TestAssetHelper.getGenericAsset(mockWebServer, 3)
downloadFile = "pdfForm.pdf"
navigationToolbar {
}.enterURLAndEnterToBrowser(genericURL.url) {
clickPageObject(itemWithText("PDF form file"))
}.clickDownloadPDFButton {
verifyDownloadedFileName(downloadFile)
}.clickOpen("application/pdf") {
assertExternalAppOpens(GOOGLE_DOCS)
}
deleteDownloadedFileOnStorage(downloadFile)
}
@Test
fun deleteDownloadedFileTest() {
downloadFile = "smallZip.zip"

@ -0,0 +1,91 @@
/* 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
import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice
import okhttp3.mockwebserver.MockWebServer
import org.junit.After
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.customannotations.SmokeTest
import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.Constants.PackageName.GOOGLE_DOCS
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
import org.mozilla.fenix.helpers.MatcherHelper.itemContainingText
import org.mozilla.fenix.helpers.MatcherHelper.itemWithResIdAndText
import org.mozilla.fenix.helpers.MatcherHelper.itemWithText
import org.mozilla.fenix.helpers.TestAssetHelper
import org.mozilla.fenix.helpers.TestAssetHelper.getGenericAsset
import org.mozilla.fenix.helpers.TestHelper.assertExternalAppOpens
import org.mozilla.fenix.helpers.TestHelper.deleteDownloadedFileOnStorage
import org.mozilla.fenix.helpers.TestHelper.mDevice
import org.mozilla.fenix.ui.robots.clickPageObject
import org.mozilla.fenix.ui.robots.navigationToolbar
class PDFViewerTest {
private lateinit var mockWebServer: MockWebServer
@get:Rule
val activityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides()
@Before
fun setUp() {
mDevice = UiDevice.getInstance(InstrumentationRegistry.getInstrumentation())
mockWebServer = MockWebServer().apply {
dispatcher = AndroidAssetDispatcher()
start()
}
}
@After
fun tearDown() {
mockWebServer.shutdown()
}
@SmokeTest
@Test
fun openPDFInBrowserTest() {
val genericURL =
TestAssetHelper.getGenericAsset(mockWebServer, 3)
navigationToolbar {
}.enterURLAndEnterToBrowser(genericURL.url) {
clickPageObject(itemContainingText("PDF form file"))
verifyPageContent("Washington Crossing the Delaware")
}
}
@Test
fun pdfViewerOpenInAppTest() {
val genericURL = getGenericAsset(mockWebServer, 3)
navigationToolbar {
}.enterURLAndEnterToBrowser(genericURL.url) {
clickPageObject(itemWithText("PDF form file"))
verifyPDFReaderToolbarItems()
clickPageObject(itemWithResIdAndText("openInApp", "Open in app"))
assertExternalAppOpens(GOOGLE_DOCS)
}
}
// Download PDF file using the download toolbar button
@Test
fun pdfViewerDownloadButtonTest() {
val genericURL = getGenericAsset(mockWebServer, 3)
val downloadFile = "pdfForm.pdf"
navigationToolbar {
}.enterURLAndEnterToBrowser(genericURL.url) {
clickPageObject(itemWithText("PDF form file"))
}.clickDownloadPDFButton {
verifyDownloadedFileName(downloadFile)
}.clickOpen("application/pdf") {
assertExternalAppOpens(GOOGLE_DOCS)
}
deleteDownloadedFileOnStorage(downloadFile)
}
}

@ -318,6 +318,17 @@ class BrowserRobot {
fun longClickPDFImage() = longClickPageObject(itemWithResId("pdfjs_internal_id_13R"))
fun verifyPDFReaderToolbarItems() {
assertTrue(
itemWithResIdAndText("download", "Download")
.waitForExists(waitingTime),
)
assertTrue(
itemWithResIdAndText("openInApp", "Open in app")
.waitForExists(waitingTime),
)
}
fun clickSubmitLoginButton() {
clickPageObject(itemWithResId("submit"))
itemWithResId("submit").waitUntilGone(waitingTime)

Loading…
Cancel
Save