fix tests and linting

fork
Charlie Humphreys 2 years ago committed by mergify[bot]
parent 41f7698bfa
commit e400a8ed8d

@ -175,7 +175,7 @@ class HomeActivityIntentTestRule internal constructor(
} }
override fun getActivityIntent(): Intent { override fun getActivityIntent(): Intent {
return if(this::intent.isInitialized) { return if (this::intent.isInitialized) {
this.intent this.intent
} else { } else {
super.getActivityIntent() super.getActivityIntent()

@ -3,14 +3,21 @@ package org.mozilla.fenix.ui
import android.content.Intent import android.content.Intent
import androidx.test.platform.app.InstrumentationRegistry import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.uiautomator.UiDevice import androidx.test.uiautomator.UiDevice
import mozilla.components.concept.sync.* import io.mockk.mockk
import mozilla.components.concept.sync.AuthType
import okhttp3.mockwebserver.MockWebServer import okhttp3.mockwebserver.MockWebServer
import org.junit.* import org.junit.After
import org.junit.Assert.assertTrue
import org.junit.Before
import org.junit.Rule
import org.junit.Test
import org.mozilla.fenix.components.TelemetryAccountObserver import org.mozilla.fenix.components.TelemetryAccountObserver
import org.mozilla.fenix.helpers.* import org.mozilla.fenix.helpers.AndroidAssetDispatcher
import org.mozilla.fenix.helpers.Experimentation
import org.mozilla.fenix.helpers.HomeActivityIntentTestRule
import org.mozilla.fenix.helpers.RetryTestRule
import org.mozilla.fenix.helpers.TestHelper.appContext import org.mozilla.fenix.helpers.TestHelper.appContext
import org.mozilla.fenix.ui.robots.homeScreen import org.mozilla.fenix.ui.robots.homeScreen
import io.mockk.mockk
class NimbusEventTest { class NimbusEventTest {
private lateinit var mDevice: UiDevice private lateinit var mDevice: UiDevice
@ -18,9 +25,11 @@ class NimbusEventTest {
@get:Rule @get:Rule
val homeActivityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides() val homeActivityTestRule = HomeActivityIntentTestRule.withDefaultSettingsOverrides()
.withIntent(Intent().apply { .withIntent(
action = Intent.ACTION_VIEW Intent().apply {
}) action = Intent.ACTION_VIEW
},
)
@Rule @Rule
@JvmField @JvmField
@ -46,7 +55,7 @@ class NimbusEventTest {
homeScreen { }.dismissOnboarding() homeScreen { }.dismissOnboarding()
Experimentation.withHelper { Experimentation.withHelper {
Assert.assertTrue(evalJexl("'app_opened'|eventSum('Days', 28, 0) > 0")) assertTrue(evalJexl("'app_opened'|eventSum('Days', 28, 0) > 0"))
} }
} }
@ -56,7 +65,7 @@ class NimbusEventTest {
observer.onAuthenticated(mockk(), AuthType.Signin) observer.onAuthenticated(mockk(), AuthType.Signin)
Experimentation.withHelper { Experimentation.withHelper {
Assert.assertTrue(evalJexl("'sync_auth_sign_in'|eventSum('Days', 28, 0) > 0")) assertTrue(evalJexl("'sync_auth_sign_in'|eventSum('Days', 28, 0) > 0"))
} }
} }
} }

@ -126,7 +126,7 @@ class BackgroundServices(
} }
private val telemetryAccountObserver = TelemetryAccountObserver( private val telemetryAccountObserver = TelemetryAccountObserver(
context context,
) )
val accountAbnormalities = AccountAbnormalities(context, crashReporter, strictMode) val accountAbnormalities = AccountAbnormalities(context, crashReporter, strictMode)
@ -218,7 +218,7 @@ private class AccountManagerReadyObserver(
@VisibleForTesting(otherwise = PRIVATE) @VisibleForTesting(otherwise = PRIVATE)
internal class TelemetryAccountObserver( internal class TelemetryAccountObserver(
private val context: Context private val context: Context,
) : AccountObserver { ) : AccountObserver {
override fun onAuthenticated(account: OAuthAccount, authType: AuthType) { override fun onAuthenticated(account: OAuthAccount, authType: AuthType) {
context.settings().signedInFxaAccount = true context.settings().signedInFxaAccount = true

@ -4,6 +4,7 @@
package org.mozilla.fenix.components package org.mozilla.fenix.components
import android.content.Context
import io.mockk.MockKAnnotations import io.mockk.MockKAnnotations
import io.mockk.Runs import io.mockk.Runs
import io.mockk.confirmVerified import io.mockk.confirmVerified
@ -15,6 +16,7 @@ import io.mockk.verify
import mozilla.components.concept.sync.AccountObserver import mozilla.components.concept.sync.AccountObserver
import mozilla.components.concept.sync.AuthType import mozilla.components.concept.sync.AuthType
import mozilla.components.concept.sync.OAuthAccount import mozilla.components.concept.sync.OAuthAccount
import mozilla.components.service.nimbus.NimbusApi
import mozilla.components.support.base.observer.ObserverRegistry import mozilla.components.support.base.observer.ObserverRegistry
import mozilla.components.support.test.robolectric.testContext import mozilla.components.support.test.robolectric.testContext
import mozilla.telemetry.glean.testing.GleanTestRule import mozilla.telemetry.glean.testing.GleanTestRule
@ -24,6 +26,7 @@ import org.junit.Rule
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mozilla.fenix.GleanMetrics.SyncAuth import org.mozilla.fenix.GleanMetrics.SyncAuth
import org.mozilla.fenix.ext.components
import org.mozilla.fenix.helpers.FenixRobolectricTestRunner import org.mozilla.fenix.helpers.FenixRobolectricTestRunner
import org.mozilla.fenix.utils.Settings import org.mozilla.fenix.utils.Settings
@ -34,9 +37,15 @@ class BackgroundServicesTest {
@get:Rule @get:Rule
val gleanTestRule = GleanTestRule(testContext) val gleanTestRule = GleanTestRule(testContext)
@MockK
private lateinit var context: Context
@MockK @MockK
private lateinit var settings: Settings private lateinit var settings: Settings
@MockK
private lateinit var nimbus: NimbusApi
private lateinit var observer: TelemetryAccountObserver private lateinit var observer: TelemetryAccountObserver
private lateinit var registry: ObserverRegistry<AccountObserver> private lateinit var registry: ObserverRegistry<AccountObserver>
@ -45,7 +54,15 @@ class BackgroundServicesTest {
MockKAnnotations.init(this) MockKAnnotations.init(this)
every { settings.signedInFxaAccount = any() } just Runs every { settings.signedInFxaAccount = any() } just Runs
observer = TelemetryAccountObserver(settings) val mockComponents: Components = mockk()
every { mockComponents.settings } returns settings
every { mockComponents.analytics } returns mockk {
every { experiments } returns nimbus
}
every { context.components } returns mockComponents
every { nimbus.recordEvent(any()) } returns Unit
observer = TelemetryAccountObserver(context)
registry = ObserverRegistry<AccountObserver>().apply { register(observer) } registry = ObserverRegistry<AccountObserver>().apply { register(observer) }
} }
@ -123,4 +140,13 @@ class BackgroundServicesTest {
verify { settings.signedInFxaAccount = false } verify { settings.signedInFxaAccount = false }
confirmVerified(settings) confirmVerified(settings)
} }
@Test
fun `telemetry account observer records nimbus event for logins`() {
observer.onAuthenticated(mockk(), AuthType.Signin)
verify {
nimbus.recordEvent("sync_auth_sign_in")
}
confirmVerified(nimbus)
}
} }

Loading…
Cancel
Save