From d8e724218f5b99ec5ccabfceda175395581d328d Mon Sep 17 00:00:00 2001 From: Charlie Humphreys Date: Mon, 21 Nov 2022 15:38:53 -0600 Subject: [PATCH] add Experimentation helper --- .../org/mozilla/fenix/helpers/Experimentation.kt | 16 ++++++++++++++++ .../java/org/mozilla/fenix/ui/NimbusEventTest.kt | 9 +++------ .../mozilla/fenix/ui/robots/HomeScreenRobot.kt | 9 --------- 3 files changed, 19 insertions(+), 15 deletions(-) create mode 100644 app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt diff --git a/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt b/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt new file mode 100644 index 000000000..c357b8f43 --- /dev/null +++ b/app/src/androidTest/java/org/mozilla/fenix/helpers/Experimentation.kt @@ -0,0 +1,16 @@ +package org.mozilla.fenix.helpers + +import org.mozilla.experiments.nimbus.GleanPlumbMessageHelper +import org.mozilla.fenix.ext.components +import org.mozilla.fenix.helpers.TestHelper.appContext + +object Experimentation { + private val nimbus = + appContext.components.analytics.experiments + + fun withHelper(block: GleanPlumbMessageHelper.() -> Unit) { + val helper = nimbus.createMessageHelper() + block(helper) + } + +} diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt index 3b36ceaf3..6ad368d05 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/NimbusEventTest.kt @@ -5,9 +5,7 @@ import androidx.test.platform.app.InstrumentationRegistry import androidx.test.uiautomator.UiDevice import okhttp3.mockwebserver.MockWebServer import org.junit.* -import org.mozilla.fenix.helpers.AndroidAssetDispatcher -import org.mozilla.fenix.helpers.HomeActivityIntentTestRule -import org.mozilla.fenix.helpers.RetryTestRule +import org.mozilla.fenix.helpers.* import org.mozilla.fenix.ui.robots.homeScreen class NimbusEventTest { @@ -43,9 +41,8 @@ class NimbusEventTest { fun homeScreenNimbusEventsTest() { homeScreen { }.dismissOnboarding() - homeScreen { - verifyHomeScreen() - Assert.assertTrue(evaluateAgainstNimbusTargetingHelper("'app_opened'|eventSum('Days', 28, 0) > 0")) + Experimentation.withHelper { + Assert.assertTrue(evalJexl("'app_opened'|eventSum('Days', 28, 0) > 0")) } } } diff --git a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt index 9ce36b07b..346788f34 100644 --- a/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt +++ b/app/src/androidTest/java/org/mozilla/fenix/ui/robots/HomeScreenRobot.kt @@ -90,7 +90,6 @@ class HomeScreenRobot { fun verifyDefaultSearchEngine(searchEngine: String) = verifySearchEngineIcon(searchEngine) fun verifyNoTabsOpened() = assertNoTabsOpened() fun verifyKeyboardVisible() = assertKeyboardVisibility(isExpectedToBeVisible = true) - fun evaluateAgainstNimbusTargetingHelper(jexl: String): Boolean = evaluateAgainstNimbus(jexl) fun verifyWallpaperImageApplied(isEnabled: Boolean) { if (isEnabled) { @@ -807,14 +806,6 @@ private fun verifySearchEngineIcon(searchEngineName: String) { verifySearchEngineIcon(defaultSearchEngine.icon, defaultSearchEngine.name) } -private fun getNimbus() = - appContext.components.analytics.experiments - -private fun evaluateAgainstNimbus(jexl: String): Boolean { - val helper = getNimbus().createMessageHelper() - return helper.evalJexl(jexl) -} - // First Run elements private fun assertWelcomeHeader() = assertTrue(