add Experimentation helper

This commit is contained in:
Charlie Humphreys 2022-11-21 15:38:53 -06:00 committed by mergify[bot]
parent f709036636
commit d8e724218f
3 changed files with 19 additions and 15 deletions

View File

@ -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)
}
}

View File

@ -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"))
}
}
}

View File

@ -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(