commit 62ca2bbf25b7988daa2d59a59a91f969ab1638d2 parent ff272e528d69eb99a91d8d6ad9928a8c74168ae0 Author: Titouan Thibaud <tthibaud@mozilla.com> Date: Thu, 6 Nov 2025 09:48:21 +0000 Bug 1998246 - Simplify Focus TestAssetHelper with MockWebServer extension r=android-reviewers,calu Differential Revision: https://phabricator.services.mozilla.com/D271376 Diffstat:
21 files changed, 177 insertions(+), 180 deletions(-)
diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/AddToHomescreenTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/AddToHomescreenTest.kt @@ -55,7 +55,7 @@ class AddToHomescreenTest : TestSetup() { @SmokeTest @Test fun addPageToHomeScreenTest() { - val pageUrl = getGenericTabAsset(webServer, 1).url + val pageUrl = webServer.getGenericTabAsset(1).url val pageTitle = randomString(5) searchScreen { @@ -73,7 +73,7 @@ class AddToHomescreenTest : TestSetup() { @SmokeTest @Test fun noNameShortcutTest() { - val pageUrl = getGenericTabAsset(webServer, 1).url + val pageUrl = webServer.getGenericTabAsset(1).url searchScreen { }.loadPage(pageUrl) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ContextMenusTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ContextMenusTest.kt @@ -19,7 +19,7 @@ import org.mozilla.focus.helpers.MockWebServerHelper import org.mozilla.focus.helpers.RetryTestRule import org.mozilla.focus.helpers.StringsHelper import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset -import org.mozilla.focus.helpers.TestAssetHelper.getImageTestAsset +import org.mozilla.focus.helpers.TestAssetHelper.imageTestAsset import org.mozilla.focus.helpers.TestHelper import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens import org.mozilla.focus.helpers.TestHelper.getTargetContext @@ -59,7 +59,7 @@ class ContextMenusTest : TestSetup() { @SmokeTest @Test fun linkedImageContextMenuItemsTest() { - val imagesTestPage = getImageTestAsset(webServer) + val imagesTestPage = webServer.imageTestAsset val imageAssetUrl = webServer.url("download.jpg").toString() searchScreen { @@ -72,7 +72,7 @@ class ContextMenusTest : TestSetup() { @SmokeTest @Test fun simpleImageContextMenuItemsTest() { - val imagesTestPage = getImageTestAsset(webServer) + val imagesTestPage = webServer.imageTestAsset val imageAssetUrl = webServer.url("rabbit.jpg").toString() searchScreen { @@ -85,8 +85,8 @@ class ContextMenusTest : TestSetup() { @SmokeTest @Test fun linkContextMenuItemsTest() { - val tab1Page = getGenericTabAsset(webServer, 1) - val tab2Page = getGenericTabAsset(webServer, 2) + val tab1Page = webServer.getGenericTabAsset(1) + val tab2Page = webServer.getGenericTabAsset(2) searchScreen { }.loadPage(tab1Page.url) { @@ -100,8 +100,8 @@ class ContextMenusTest : TestSetup() { @SmokeTest @Test fun copyLinkAddressTest() { - val tab1Page = getGenericTabAsset(webServer, 1) - val tab2Page = getGenericTabAsset(webServer, 2) + val tab1Page = webServer.getGenericTabAsset(1) + val tab2Page = webServer.getGenericTabAsset(2) searchScreen { }.loadPage(tab1Page.url) { @@ -120,8 +120,8 @@ class ContextMenusTest : TestSetup() { @SmokeTest @Test fun shareLinkTest() { - val tab1Page = getGenericTabAsset(webServer, 1) - val tab2Page = getGenericTabAsset(webServer, 2) + val tab1Page = webServer.getGenericTabAsset(1) + val tab2Page = webServer.getGenericTabAsset(2) searchScreen { }.loadPage(tab1Page.url) { @@ -134,7 +134,7 @@ class ContextMenusTest : TestSetup() { @Test fun copyImageLocationTest() { - val imagesTestPage = getImageTestAsset(webServer) + val imagesTestPage = webServer.imageTestAsset val imageAssetUrl = webServer.url("rabbit.jpg").toString() searchScreen { @@ -154,11 +154,11 @@ class ContextMenusTest : TestSetup() { @SmokeTest @Test fun saveImageTest() { - val imagesTestPage = getImageTestAsset(webServer) + val imagesTestPage = webServer.imageTestAsset val fileName = "rabbit.jpg" searchScreen { - }.loadPage(imagesTestPage.url) { + }.loadPage(imagesTestPage.url.toString()) { longPressLink(fileName) }.clickSaveImage { // If permission dialog appears on devices with API<30, grant it @@ -177,7 +177,7 @@ class ContextMenusTest : TestSetup() { @Test fun shareImageTest() { - val imagesTestPage = getImageTestAsset(webServer) + val imagesTestPage = webServer.imageTestAsset searchScreen { }.loadPage(imagesTestPage.url) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/CustomTabTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/CustomTabTest.kt @@ -21,7 +21,7 @@ import org.mozilla.focus.activity.robots.browserScreen import org.mozilla.focus.activity.robots.customTab import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MockWebServerHelper -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset import org.mozilla.focus.helpers.TestHelper.createCustomTabIntent import org.mozilla.focus.helpers.TestHelper.mDevice @@ -69,7 +69,7 @@ class CustomTabTest : TestSetup() { @SmokeTest @Test fun testCustomTabUI() { - val customTabPage = getGenericAsset(webServer) + val customTabPage = webServer.genericAsset val customTabActivity = launchActivity<IntentReceiverActivity>( createCustomTabIntent(customTabPage.url, menuItemTestLabel, actionButtonDescription), @@ -97,7 +97,7 @@ class CustomTabTest : TestSetup() { @SmokeTest @Test fun openCustomTabInFocusTest() { - val customTabPage = getGenericTabAsset(webServer, 1) + val customTabPage = webServer.getGenericTabAsset(1) launchActivity<IntentReceiverActivity>(createCustomTabIntent(customTabPage.url)) customTab { @@ -112,8 +112,8 @@ class CustomTabTest : TestSetup() { @SmokeTest @Test fun customTabNavigationButtonsTest() { - val firstPage = getGenericTabAsset(webServer, 1) - val secondPage = getGenericTabAsset(webServer, 2) + val firstPage = webServer.getGenericTabAsset(1) + val secondPage = webServer.getGenericTabAsset(2) launchActivity<IntentReceiverActivity>(createCustomTabIntent(firstPage.url)) customTab { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/DownloadFileTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/DownloadFileTest.kt @@ -19,7 +19,7 @@ import org.mozilla.focus.helpers.MainActivityIntentsTestRule import org.mozilla.focus.helpers.MockWebServerHelper import org.mozilla.focus.helpers.RetryTestRule import org.mozilla.focus.helpers.StringsHelper.GOOGLE_PHOTOS -import org.mozilla.focus.helpers.TestAssetHelper.getImageTestAsset +import org.mozilla.focus.helpers.TestAssetHelper.imageTestAsset import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens import org.mozilla.focus.helpers.TestHelper.getTargetContext import org.mozilla.focus.helpers.TestHelper.mDevice @@ -69,7 +69,7 @@ class DownloadFileTest : TestSetup() { @SmokeTest @Test fun downloadNotificationTest() { - val downloadPageUrl = getImageTestAsset(webServer).url + val downloadPageUrl = webServer.imageTestAsset.url downloadFileName = "download.jpg" notificationTray { @@ -100,7 +100,7 @@ class DownloadFileTest : TestSetup() { @SmokeTest @Test fun cancelDownloadTest() { - val downloadPageUrl = getImageTestAsset(webServer).url + val downloadPageUrl = webServer.imageTestAsset.url searchScreen { }.loadPage(downloadPageUrl) { } @@ -119,7 +119,7 @@ class DownloadFileTest : TestSetup() { @SmokeTest @Test fun downloadAndOpenJpgFileTest() { - val downloadPageUrl = getImageTestAsset(webServer).url + val downloadPageUrl = webServer.imageTestAsset.url downloadFileName = "download.jpg" // Load website with service worker diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EnhancedTrackingProtectionSettingsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EnhancedTrackingProtectionSettingsTest.kt @@ -17,8 +17,8 @@ import org.mozilla.focus.activity.robots.searchScreen import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityFirstrunTestRule import org.mozilla.focus.helpers.MockWebServerHelper +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset import org.mozilla.focus.helpers.TestAssetHelper.getEnhancedTrackingProtectionAsset -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset import org.mozilla.focus.helpers.TestHelper.exitToBrowser import org.mozilla.focus.helpers.TestHelper.exitToTop import org.mozilla.focus.helpers.TestHelper.waitingTime @@ -76,11 +76,11 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun blockAdTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "adsTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("adsTrackers") searchScreen { - }.loadPage(genericPage.url) { + }.loadPage(genericPage.url.toString()) { // loading a generic page to allow GV to fully load on first run verifyPageContent(genericPage.content) }.openMainMenu { @@ -97,8 +97,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun allowAdTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "adsTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("adsTrackers") homeScreen { }.openMainMenu { @@ -127,8 +127,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun blockAnalyticsTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "analyticsTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("analyticsTrackers") searchScreen { }.loadPage(genericPage.url) { @@ -148,8 +148,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun allowAnalyticsTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "analyticsTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("analyticsTrackers") homeScreen { }.openMainMenu { @@ -178,8 +178,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun blockSocialTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "socialTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("socialTrackers") searchScreen { }.loadPage(genericPage.url) { @@ -199,8 +199,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun allowSocialTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "socialTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("socialTrackers") homeScreen { }.openMainMenu { @@ -225,8 +225,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun allowOtherContentTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("otherTrackers") searchScreen { }.loadPage(genericPage.url) { @@ -247,8 +247,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun blockOtherContentTrackersTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("otherTrackers") searchScreen { }.loadPage(genericPage.url) { @@ -273,8 +273,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun addURLToTPExceptionsListTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("otherTrackers") searchScreen { }.loadPage(genericPage.url) { @@ -296,8 +296,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun removeOneExceptionURLTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("otherTrackers") searchScreen { }.loadPage(genericPage.url) { @@ -325,8 +325,8 @@ class EnhancedTrackingProtectionSettingsTest : TestSetup() { @SmokeTest @Test fun removeAllExceptionURLTest() { - val genericPage = getGenericAsset(webServer) - val trackingPage = getEnhancedTrackingProtectionAsset(webServer, "otherTrackers") + val genericPage = webServer.genericAsset + val trackingPage = webServer.getEnhancedTrackingProtectionAsset("otherTrackers") searchScreen { }.loadPage(genericPage.url) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EraseBrowsingDataTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/EraseBrowsingDataTest.kt @@ -65,7 +65,7 @@ class EraseBrowsingDataTest : TestSetup() { @SmokeTest @Test fun trashButtonTest() { - val testPage = getGenericTabAsset(webServer, 1) + val testPage = webServer.getGenericTabAsset(1) searchScreen { }.loadPage(testPage.url) { @@ -80,7 +80,7 @@ class EraseBrowsingDataTest : TestSetup() { @SmokeTest @Test fun notificationEraseAndOpenButtonTest() { - val testPage = getGenericTabAsset(webServer, 1) + val testPage = webServer.getGenericTabAsset(1) notificationTray { mDevice.openNotification() @@ -106,7 +106,7 @@ class EraseBrowsingDataTest : TestSetup() { @SmokeTest @Test fun deleteHistoryOnRestartTest() { - val testPage = getGenericTabAsset(webServer, 1) + val testPage = webServer.getGenericTabAsset(1) searchScreen { }.loadPage(testPage.url) {} @@ -119,7 +119,7 @@ class EraseBrowsingDataTest : TestSetup() { @SmokeTest @Test fun systemBarHomeViewTest() { - val testPage = getGenericTabAsset(webServer, 1) + val testPage = webServer.getGenericTabAsset(1) val launcherLoadTimeoutMillis = 5000 val launcherPackage = mDevice.launcherPackageName diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MediaPlaybackTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MediaPlaybackTest.kt @@ -45,7 +45,7 @@ class MediaPlaybackTest : TestSetup() { @SmokeTest @Test fun testVideoPlayback() { - val videoPageUrl = getMediaTestAsset(webServer, "videoPage").url + val videoPageUrl = webServer.getMediaTestAsset("videoPage").url searchScreen { }.loadPage(videoPageUrl) { @@ -61,7 +61,7 @@ class MediaPlaybackTest : TestSetup() { @SmokeTest @Test fun testAudioPlayback() { - val audioPageUrl = getMediaTestAsset(webServer, "audioPage").url + val audioPageUrl = webServer.getMediaTestAsset("audioPage").url searchScreen { }.loadPage(audioPageUrl) { @@ -77,7 +77,7 @@ class MediaPlaybackTest : TestSetup() { @SmokeTest @Test fun testMediaContentNotification() { - val audioPageUrl = getMediaTestAsset(webServer, "audioPage").url + val audioPageUrl = webServer.getMediaTestAsset("audioPage").url val notificationMessage = "A site is playing media" searchScreen { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MultitaskingTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/MultitaskingTest.kt @@ -21,7 +21,7 @@ import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityFirstrunTestRule import org.mozilla.focus.helpers.MockWebServerHelper import org.mozilla.focus.helpers.RetryTestRule -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset import org.mozilla.focus.helpers.TestHelper.clickSnackBarActionButton import org.mozilla.focus.helpers.TestHelper.getStringResource @@ -71,11 +71,11 @@ class MultitaskingTest : TestSetup() { @SmokeTest @Test fun testVisitingMultipleSites() { - val tab1 = getGenericTabAsset(webServer, 1) - val tab2 = getGenericTabAsset(webServer, 2) - val tab3 = getGenericTabAsset(webServer, 3) + val tab1 = webServer.getGenericTabAsset(1) + val tab2 = webServer.getGenericTabAsset(2) + val tab3 = webServer.getGenericTabAsset(3) val eraseBrowsingSnackBarText = getStringResource(R.string.feedback_erase2) - val customTabPage = getGenericAsset(webServer) + val customTabPage = webServer.genericAsset // Load website: Erase button visible, Tabs button not searchScreen { @@ -107,9 +107,9 @@ class MultitaskingTest : TestSetup() { @SmokeTest @Test fun closeTabButtonTest() { - val tab1 = getGenericTabAsset(webServer, 1) - val tab2 = getGenericTabAsset(webServer, 2) - val tab3 = getGenericTabAsset(webServer, 3) + val tab1 = webServer.getGenericTabAsset(1) + val tab2 = webServer.getGenericTabAsset(2) + val tab3 = webServer.getGenericTabAsset(3) searchScreen { }.loadPage(tab1.url) { @@ -132,8 +132,8 @@ class MultitaskingTest : TestSetup() { @SmokeTest @Test fun verifyTabsTrayListTest() { - val tab1 = getGenericTabAsset(webServer, 1) - val tab2 = getGenericTabAsset(webServer, 2) + val tab1 = webServer.getGenericTabAsset(1) + val tab2 = webServer.getGenericTabAsset(2) searchScreen { }.loadPage(tab1.url) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OpenInExternalBrowserDialogueTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/OpenInExternalBrowserDialogueTest.kt @@ -15,7 +15,7 @@ import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityIntentsTestRule import org.mozilla.focus.helpers.MockWebServerHelper import org.mozilla.focus.helpers.StringsHelper.GOOGLE_CHROME -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens import org.mozilla.focus.helpers.TestSetup import org.mozilla.focus.testAnnotations.SmokeTest @@ -49,7 +49,7 @@ class OpenInExternalBrowserDialogueTest : TestSetup() { @SmokeTest @Test fun openPageInExternalAppTest() { - val pageUrl = getGenericAsset(webServer).url + val pageUrl = webServer.genericAsset.url searchScreen { }.loadPage(pageUrl) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/PDFViewerTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/PDFViewerTest.kt @@ -10,8 +10,8 @@ import org.mozilla.focus.helpers.DeleteFilesHelper.deleteFileUsingDisplayName import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityIntentsTestRule import org.mozilla.focus.helpers.MockWebServerHelper -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset -import org.mozilla.focus.helpers.TestAssetHelper.getPDFTestAsset +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset +import org.mozilla.focus.helpers.TestAssetHelper.pdfTestAsset import org.mozilla.focus.helpers.TestHelper.getTargetContext import org.mozilla.focus.helpers.TestHelper.permAllowBtn import org.mozilla.focus.helpers.TestHelper.verifyDownloadedFileOnStorage @@ -47,8 +47,8 @@ class PDFViewerTest : TestSetup() { @SmokeTest @Test fun openPdfFileTest() { - val genericPageUrl = getGenericAsset(webServer).url - val pdfDoc = getPDFTestAsset(webServer) + val genericPageUrl = webServer.genericAsset.url + val pdfDoc = webServer.pdfTestAsset searchScreen { }.loadPage(genericPageUrl) { @@ -62,7 +62,7 @@ class PDFViewerTest : TestSetup() { @SmokeTest @Test fun downloadPdfTest() { - val pdfDoc = getPDFTestAsset(webServer) + val pdfDoc = webServer.pdfTestAsset searchScreen { }.loadPage(pdfDoc.url) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsAdvancedTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsAdvancedTest.kt @@ -49,7 +49,7 @@ class SettingsAdvancedTest : TestSetup() { @SmokeTest @Test fun openLinksInAppsTest() { - val tab3Url = getGenericTabAsset(webServer, 3).url + val tab3Url = webServer.getGenericTabAsset(3).url val youtubeLink = "https://www.youtube.com/c/MozillaChannel/videos" homeScreen { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsPrivacyTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SettingsPrivacyTest.kt @@ -72,8 +72,8 @@ class SettingsPrivacyTest : TestSetup() { @SmokeTest @Test fun verifyAllCookiesBlockedTest() { - val sameSiteCookiesUrl = getStorageTestAsset(webServer, "same-site-cookies.html").url - val thirdPartyCookiesUrl = getStorageTestAsset(webServer, "cross-site-cookies.html").url + val sameSiteCookiesUrl = webServer.getStorageTestAsset("same-site-cookies.html").url + val thirdPartyCookiesUrl = webServer.getStorageTestAsset("cross-site-cookies.html").url homeScreen { }.openMainMenu { @@ -98,8 +98,8 @@ class SettingsPrivacyTest : TestSetup() { @SmokeTest @Test fun verify3rdPartyCookiesBlockedTest() { - val sameSiteCookiesUrl = getStorageTestAsset(webServer, "same-site-cookies.html").url - val thirdPartyCookiesURL = getStorageTestAsset(webServer, "cross-site-cookies.html").url + val sameSiteCookiesUrl = webServer.getStorageTestAsset("same-site-cookies.html").url + val thirdPartyCookiesURL = webServer.getStorageTestAsset("cross-site-cookies.html").url homeScreen { }.openMainMenu { @@ -123,8 +123,8 @@ class SettingsPrivacyTest : TestSetup() { @Ignore("Failing on Beta, see https://bugzilla.mozilla.org/show_bug.cgi?id=1906806") @Test fun verifyCrossSiteCookiesBlockedTest() { - val sameSiteCookiesUrl = getStorageTestAsset(webServer, "same-site-cookies.html").url - val crossSiteCookiesURL = getStorageTestAsset(webServer, "cross-site-cookies.html").url + val sameSiteCookiesUrl = webServer.getStorageTestAsset("same-site-cookies.html").url + val crossSiteCookiesURL = webServer.getStorageTestAsset("cross-site-cookies.html").url searchScreen { }.loadPage(crossSiteCookiesURL) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ShortcutsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ShortcutsTest.kt @@ -17,8 +17,8 @@ import org.mozilla.focus.activity.robots.searchScreen import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityFirstrunTestRule import org.mozilla.focus.helpers.MockWebServerHelper -import org.mozilla.focus.helpers.TestAssetHelper -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset +import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset import org.mozilla.focus.helpers.TestSetup import org.mozilla.focus.testAnnotations.SmokeTest import java.io.IOException @@ -55,9 +55,9 @@ class ShortcutsTest : TestSetup() { @Test fun renameShortcutTest() { val webPage = object { - val url = getGenericAsset(webServer).url - val title = getGenericAsset(webServer).title - val content = getGenericAsset(webServer).content + val url = webServer.genericAsset.url + val title = webServer.genericAsset.title + val content = webServer.genericAsset.content val newTitle = "TestShortcut" } @@ -80,8 +80,8 @@ class ShortcutsTest : TestSetup() { @SmokeTest @Test fun shortcutsDoNotOpenInNewTabTest() { - val tab1 = TestAssetHelper.getGenericTabAsset(webServer, 1) - val tab2 = TestAssetHelper.getGenericTabAsset(webServer, 2) + val tab1 = webServer.getGenericTabAsset(1) + val tab2 = webServer.getGenericTabAsset(2) searchScreen { }.loadPage(tab1.url) { @@ -107,7 +107,7 @@ class ShortcutsTest : TestSetup() { @SmokeTest @Test fun searchBarShowsPageShortcutsTest() { - val webPage = getGenericAsset(webServer) + val webPage = webServer.genericAsset searchScreen { }.loadPage(webPage.url) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SitePermissionsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SitePermissionsTest.kt @@ -7,6 +7,7 @@ package org.mozilla.focus.activity import android.Manifest import android.content.Context import android.hardware.camera2.CameraManager +import androidx.test.platform.app.InstrumentationRegistry import androidx.test.rule.GrantPermissionRule import kotlinx.coroutines.runBlocking import mozilla.components.support.ktx.util.PromptAbuserDetector @@ -23,10 +24,9 @@ import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityFirstrunTestRule import org.mozilla.focus.helpers.MockLocationUpdatesRule import org.mozilla.focus.helpers.MockWebServerHelper -import org.mozilla.focus.helpers.TestAssetHelper.getGenericAsset +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset import org.mozilla.focus.helpers.TestAssetHelper.getMediaTestAsset import org.mozilla.focus.helpers.TestHelper.exitToTop -import org.mozilla.focus.helpers.TestHelper.getTargetContext import org.mozilla.focus.helpers.TestHelper.grantAppPermission import org.mozilla.focus.helpers.TestHelper.mDevice import org.mozilla.focus.helpers.TestHelper.packageName @@ -41,7 +41,7 @@ class SitePermissionsTest : TestSetup() { // Test page created and handled by the Mozilla mobile test-eng team private val permissionsPage = "https://mozilla-mobile.github.io/testapp/permissions" private val permissionsPageHost = "mozilla-mobile.github.io" - private val cameraManager = getTargetContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager + private val cameraManager = (InstrumentationRegistry.getInstrumentation().targetContext.getSystemService(Context.CAMERA_SERVICE) as CameraManager) @get:Rule val mActivityTestRule = MainActivityFirstrunTestRule(showFirstRun = false) @@ -101,7 +101,7 @@ class SitePermissionsTest : TestSetup() { @SmokeTest @Test fun blockAudioAutoplayPermissionTest() { - val videoPage = getMediaTestAsset(webServer, "videoPage") + val videoPage = webServer.getMediaTestAsset("videoPage") searchScreen { }.loadPage(videoPage.url) { @@ -116,7 +116,7 @@ class SitePermissionsTest : TestSetup() { @SmokeTest @Test fun blockAudioAutoplayPermissionOnMutedVideoTest() { - val mutedVideoPage = getMediaTestAsset(webServer, "mutedVideoPage") + val mutedVideoPage = webServer.getMediaTestAsset("mutedVideoPage") searchScreen { }.loadPage(mutedVideoPage.url) { @@ -130,7 +130,7 @@ class SitePermissionsTest : TestSetup() { @SmokeTest @Test fun allowAudioVideoAutoplayPermissionTest() { - val videoPage = getMediaTestAsset(webServer, "videoPage") + val videoPage = webServer.getMediaTestAsset("videoPage") homeScreen { }.openMainMenu { @@ -151,8 +151,8 @@ class SitePermissionsTest : TestSetup() { @SmokeTest @Test fun allowAudioVideoAutoplayPermissionOnMutedVideoTest() { - val genericPage = getGenericAsset(webServer) - val mutedVideoPage = getMediaTestAsset(webServer, "mutedVideoPage") + val genericPage = webServer.genericAsset + val mutedVideoPage = webServer.getMediaTestAsset("mutedVideoPage") homeScreen { }.openMainMenu { @@ -176,7 +176,7 @@ class SitePermissionsTest : TestSetup() { @SmokeTest @Test fun blockAudioVideoAutoplayPermissionTest() { - val videoPage = getMediaTestAsset(webServer, "videoPage") + val videoPage = webServer.getMediaTestAsset("videoPage") homeScreen { }.openMainMenu { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SwitchContextTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/SwitchContextTest.kt @@ -21,7 +21,7 @@ import org.mozilla.focus.activity.robots.searchScreen import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityFirstrunTestRule import org.mozilla.focus.helpers.MockWebServerHelper -import org.mozilla.focus.helpers.TestAssetHelper +import org.mozilla.focus.helpers.TestAssetHelper.genericAsset import org.mozilla.focus.helpers.TestHelper.mDevice import org.mozilla.focus.helpers.TestHelper.pressHomeKey import org.mozilla.focus.helpers.TestHelper.waitingTime @@ -66,7 +66,7 @@ class SwitchContextTest : TestSetup() { @SmokeTest @Test fun notificationOpenButtonTest() { - val testPage = TestAssetHelper.getGenericAsset(webServer) + val testPage = webServer.genericAsset searchScreen { }.loadPage(testPage.url) { @@ -99,7 +99,7 @@ class SwitchContextTest : TestSetup() { val context = InstrumentationRegistry.getInstrumentation().targetContext.applicationContext val intent = context.packageManager .getLaunchIntentForPackage(settingsPackage) - val testPage = TestAssetHelper.getGenericAsset(webServer) + val testPage = webServer.genericAsset // Open a webpage searchScreen { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ThreeDotMainMenuTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/ThreeDotMainMenuTest.kt @@ -14,9 +14,8 @@ import org.mozilla.focus.helpers.FeatureSettingsHelper import org.mozilla.focus.helpers.MainActivityFirstrunTestRule import org.mozilla.focus.helpers.MockWebServerHelper import org.mozilla.focus.helpers.RetryTestRule -import org.mozilla.focus.helpers.TestAssetHelper -import org.mozilla.focus.helpers.TestHelper.mDevice -import org.mozilla.focus.helpers.TestHelper.waitingTime +import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset +import org.mozilla.focus.helpers.TestHelper import org.mozilla.focus.helpers.TestSetup import org.mozilla.focus.testAnnotations.SmokeTest @@ -63,7 +62,7 @@ class ThreeDotMainMenuTest : TestSetup() { @SmokeTest @Test fun browserMenuItemsTest() { - val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url + val pageUrl = webServer.getGenericTabAsset(1).url searchScreen { }.loadPage(pageUrl) { @@ -82,26 +81,26 @@ class ThreeDotMainMenuTest : TestSetup() { @SmokeTest @Test fun shareTabTest() { - val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url + val pageUrl = webServer.getGenericTabAsset(1).url searchScreen { }.loadPage(pageUrl) { - progressBar.waitUntilGone(waitingTime) + progressBar.waitUntilGone(TestHelper.waitingTime) }.openMainMenu { }.openShareScreen { verifyShareAppsListOpened() - mDevice.pressBack() + TestHelper.mDevice.pressBack() } } @SmokeTest @Test fun findInPageTest() { - val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url + val pageUrl = webServer.getGenericTabAsset(1).url searchScreen { }.loadPage(pageUrl) { - progressBar.waitUntilGone(waitingTime) + progressBar.waitUntilGone(TestHelper.waitingTime) }.openMainMenu { }.openFindInPage { enterFindInPageQuery("tab") @@ -121,15 +120,15 @@ class ThreeDotMainMenuTest : TestSetup() { @SmokeTest @Test fun switchDesktopModeTest() { - val pageUrl = TestAssetHelper.getGenericTabAsset(webServer, 1).url + val pageUrl = webServer.getGenericTabAsset(1).url searchScreen { }.loadPage(pageUrl) { - progressBar.waitUntilGone(waitingTime) + progressBar.waitUntilGone(TestHelper.waitingTime) verifyPageContent("mobile-site") }.openMainMenu { }.switchDesktopSiteMode { - progressBar.waitUntilGone(waitingTime) + progressBar.waitUntilGone(TestHelper.waitingTime) verifyPageContent("desktop-site") }.openMainMenu { verifyRequestDesktopSiteIsEnabled(true) diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/WebControlsTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/WebControlsTest.kt @@ -18,7 +18,8 @@ import org.mozilla.focus.helpers.MockWebServerHelper import org.mozilla.focus.helpers.RetryTestRule import org.mozilla.focus.helpers.StringsHelper.GMAIL_APP import org.mozilla.focus.helpers.StringsHelper.PHONE_APP -import org.mozilla.focus.helpers.TestAssetHelper +import org.mozilla.focus.helpers.TestAssetHelper.getGenericTabAsset +import org.mozilla.focus.helpers.TestAssetHelper.htmlControlsPageAsset import org.mozilla.focus.helpers.TestHelper.assertNativeAppOpens import org.mozilla.focus.helpers.TestHelper.waitingTime import org.mozilla.focus.helpers.TestSetup @@ -58,7 +59,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun verifyTextInputTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { @@ -72,7 +73,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun verifyDropdownMenuTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { @@ -87,7 +88,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun verifyExternalLinksTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { @@ -101,7 +102,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun emailLinkTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { @@ -114,7 +115,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun telephoneLinkTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { @@ -127,8 +128,8 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun verifyDismissTextSelectionToolbarTest() { - val tab1Url = TestAssetHelper.getGenericTabAsset(webServer, 1).url - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val tab1Url = webServer.getGenericTabAsset(1).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(tab1Url) { @@ -146,7 +147,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun verifySelectTextTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { @@ -161,7 +162,7 @@ class WebControlsTest : TestSetup() { @SmokeTest @Test fun verifyCalendarFormTest() { - val htmlControlsPage = TestAssetHelper.getHTMLControlsPageAsset(webServer).url + val htmlControlsPage = webServer.htmlControlsPageAsset.url searchScreen { }.loadPage(htmlControlsPage) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/BrowserRobot.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/activity/robots/BrowserRobot.kt @@ -25,7 +25,6 @@ import androidx.test.uiautomator.Until import org.hamcrest.Matchers.not import org.junit.Assert.assertFalse import org.junit.Assert.assertTrue -import org.mozilla.focus.R import org.mozilla.focus.helpers.Constants.RETRY_COUNT import org.mozilla.focus.helpers.TestHelper.mDevice import org.mozilla.focus.helpers.TestHelper.packageName diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestAssetHelper.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/helpers/TestAssetHelper.kt @@ -4,6 +4,8 @@ package org.mozilla.focus.helpers +import android.net.Uri +import androidx.core.net.toUri import okhttp3.mockwebserver.MockWebServer /** @@ -20,58 +22,54 @@ object TestAssetHelper { * Content for these pages all follow the same pattern. See [tab1.html] for * content implementation details. */ - fun getGenericTabAsset(server: MockWebServer, pageNum: Int): TestAsset { - val url = server.url("tab$pageNum.html").toString() - val content = "Tab $pageNum" - val title = "tab$pageNum" - - return TestAsset(url, content, title) - } - - fun getGenericAsset(server: MockWebServer): TestAsset { - val url = server.url("genericPage.html").toString() - val content = "focus test page" - val title = "GenericPage" - - return TestAsset(url, content, title) - } - - fun getHTMLControlsPageAsset(server: MockWebServer): TestAsset { - val url = server.url("htmlControls.html").toString() - val content = "" - val title = "Html_Control_Form" - - return TestAsset(url, content, title) - } - - fun getEnhancedTrackingProtectionAsset(server: MockWebServer, pageTitle: String): TestAsset { - val url = server.url("etpPages/$pageTitle.html").toString() - val content = "" - - return TestAsset(url, content, pageTitle) - } - - fun getImageTestAsset(server: MockWebServer): TestAsset { - val url = server.url("image_test.html").toString() - - return TestAsset(url, "", "") - } - - fun getStorageTestAsset(server: MockWebServer, pageTitle: String): TestAsset { - val url = server.url(pageTitle).toString() - - return TestAsset(url, "", "") - } - - fun getMediaTestAsset(server: MockWebServer, pageTitle: String): TestAsset { - val url = server.url("$pageTitle.html").toString() - - return TestAsset(url, "", pageTitle) - } - - fun getPDFTestAsset(server: MockWebServer): TestAsset { - val url = server.url("/resources/pdfFile.pdf").toString() - - return TestAsset(url, "Page 1", "pdfFile.pdf") - } + fun MockWebServer.getGenericTabAsset(pageNum: Int) = createTestAsset( + path = "tab$pageNum.html", + content = "Tab $pageNum", + title = "tab$pageNum", + ) + + val MockWebServer.genericAsset + get() = createTestAsset( + path = "genericPage.html", + content = "focus test page", + title = "GenericPage", + ) + + val MockWebServer.htmlControlsPageAsset + get() = createTestAsset( + path = "htmlControls.html", + title = "Html_Control_Form", + ) + + fun MockWebServer.getEnhancedTrackingProtectionAsset(pageTitle: String) = createTestAsset( + path = "etpPages/$pageTitle.html", + title = pageTitle, + ) + + val MockWebServer.imageTestAsset + get() = createTestAsset("image_test.html") + + fun MockWebServer.getStorageTestAsset(pageTitle: String) = createTestAsset(pageTitle) + + fun MockWebServer.getMediaTestAsset(pageTitle: String) = createTestAsset( + path = "$pageTitle.html", + title = pageTitle, + ) + + val MockWebServer.pdfTestAsset + get() = createTestAsset( + path = "/resources/pdfFile.pdf", + content = "Page 1", + title = "pdfFile.pdf", + ) + + private fun MockWebServer.createTestAsset( + path: String, + content: String = "", + title: String = "", + ) = TestAsset( + url(path).toString(), + content, + title, + ) } diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/GlobalPrivacyControlTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/GlobalPrivacyControlTest.kt @@ -52,7 +52,7 @@ class GlobalPrivacyControlTest : TestSetup() { @Test fun gpcTest() { - val storageStartUrl = getStorageTestAsset(webServer, "global_privacy_control.html").url + val storageStartUrl = webServer.getStorageTestAsset("global_privacy_control.html").url searchScreen { }.loadPage(storageStartUrl) { diff --git a/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/LocalSessionStorageTest.kt b/mobile/android/focus-android/app/src/androidTest/java/org/mozilla/focus/privacy/LocalSessionStorageTest.kt @@ -59,8 +59,8 @@ class LocalSessionStorageTest : TestSetup() { @SmokeTest @Test fun testLocalAndSessionStorageIsWrittenAndRemoved() { - val storageStartUrl = getStorageTestAsset(webServer, "storage_start.html").url - val storageCheckUrl = getStorageTestAsset(webServer, "storage_check.html").url + val storageStartUrl = webServer.getStorageTestAsset("storage_start.html").url + val storageCheckUrl = webServer.getStorageTestAsset("storage_check.html").url searchScreen { }.loadPage(storageStartUrl) { @@ -82,7 +82,7 @@ class LocalSessionStorageTest : TestSetup() { @SmokeTest @Test fun eraseCookiesTest() { - val storageStartUrl = getStorageTestAsset(webServer, "storage_start.html").url + val storageStartUrl = webServer.getStorageTestAsset("storage_start.html").url searchScreen { }.loadPage(storageStartUrl) {