|
|
@ -10,6 +10,7 @@ import androidx.lifecycle.LifecycleRegistry
|
|
|
|
import androidx.navigation.NavController
|
|
|
|
import androidx.navigation.NavController
|
|
|
|
import io.mockk.every
|
|
|
|
import io.mockk.every
|
|
|
|
import io.mockk.mockk
|
|
|
|
import io.mockk.mockk
|
|
|
|
|
|
|
|
import io.mockk.spyk
|
|
|
|
import io.mockk.verify
|
|
|
|
import io.mockk.verify
|
|
|
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
|
|
|
import kotlinx.coroutines.ExperimentalCoroutinesApi
|
|
|
|
import kotlinx.coroutines.test.TestCoroutineDispatcher
|
|
|
|
import kotlinx.coroutines.test.TestCoroutineDispatcher
|
|
|
@ -24,9 +25,6 @@ import org.junit.After
|
|
|
|
import org.junit.Before
|
|
|
|
import org.junit.Before
|
|
|
|
import org.junit.Rule
|
|
|
|
import org.junit.Rule
|
|
|
|
import org.junit.Test
|
|
|
|
import org.junit.Test
|
|
|
|
import org.mozilla.fenix.R
|
|
|
|
|
|
|
|
import org.mozilla.fenix.browser.BrowserFragmentDirections
|
|
|
|
|
|
|
|
import org.mozilla.fenix.ext.nav
|
|
|
|
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
|
import org.mozilla.fenix.utils.Settings
|
|
|
|
|
|
|
|
|
|
|
|
@ExperimentalCoroutinesApi
|
|
|
|
@ExperimentalCoroutinesApi
|
|
|
@ -54,17 +52,19 @@ class PwaOnboardingObserverTest {
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
)
|
|
|
|
lifecycleOwner = MockedLifecycleOwner(Lifecycle.State.STARTED)
|
|
|
|
lifecycleOwner = MockedLifecycleOwner(Lifecycle.State.STARTED)
|
|
|
|
|
|
|
|
|
|
|
|
navigationController = mockk(relaxed = true)
|
|
|
|
navigationController = mockk(relaxed = true)
|
|
|
|
settings = mockk(relaxed = true)
|
|
|
|
settings = mockk(relaxed = true)
|
|
|
|
webAppUseCases = mockk(relaxed = true)
|
|
|
|
webAppUseCases = mockk(relaxed = true)
|
|
|
|
|
|
|
|
|
|
|
|
pwaOnboardingObserver = PwaOnboardingObserver(
|
|
|
|
pwaOnboardingObserver = spyk(PwaOnboardingObserver(
|
|
|
|
store = store,
|
|
|
|
store = store,
|
|
|
|
lifecycleOwner = lifecycleOwner,
|
|
|
|
lifecycleOwner = lifecycleOwner,
|
|
|
|
navController = navigationController,
|
|
|
|
navController = navigationController,
|
|
|
|
settings = settings,
|
|
|
|
settings = settings,
|
|
|
|
webAppUseCases = webAppUseCases
|
|
|
|
webAppUseCases = webAppUseCases
|
|
|
|
)
|
|
|
|
))
|
|
|
|
|
|
|
|
every { pwaOnboardingObserver.navigateToPwaOnboarding() } returns Unit
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@After
|
|
|
|
@After
|
|
|
@ -81,10 +81,7 @@ class PwaOnboardingObserverTest {
|
|
|
|
|
|
|
|
|
|
|
|
store.dispatch(ContentAction.UpdateWebAppManifestAction("1", mockk())).joinBlocking()
|
|
|
|
store.dispatch(ContentAction.UpdateWebAppManifestAction("1", mockk())).joinBlocking()
|
|
|
|
verify { settings.incrementVisitedInstallableCount() }
|
|
|
|
verify { settings.incrementVisitedInstallableCount() }
|
|
|
|
verify(exactly = 0) { navigationController.nav(
|
|
|
|
verify(exactly = 0) { pwaOnboardingObserver.navigateToPwaOnboarding() }
|
|
|
|
R.id.browserFragment,
|
|
|
|
|
|
|
|
BrowserFragmentDirections.actionBrowserFragmentToPwaOnboardingDialogFragment())
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
@ -96,10 +93,7 @@ class PwaOnboardingObserverTest {
|
|
|
|
|
|
|
|
|
|
|
|
store.dispatch(ContentAction.UpdateWebAppManifestAction("1", mockk())).joinBlocking()
|
|
|
|
store.dispatch(ContentAction.UpdateWebAppManifestAction("1", mockk())).joinBlocking()
|
|
|
|
verify { settings.incrementVisitedInstallableCount() }
|
|
|
|
verify { settings.incrementVisitedInstallableCount() }
|
|
|
|
verify { navigationController.nav(
|
|
|
|
verify { pwaOnboardingObserver.navigateToPwaOnboarding() }
|
|
|
|
R.id.browserFragment,
|
|
|
|
|
|
|
|
BrowserFragmentDirections.actionBrowserFragmentToPwaOnboardingDialogFragment())
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Test
|
|
|
|
@Test
|
|
|
@ -111,10 +105,7 @@ class PwaOnboardingObserverTest {
|
|
|
|
|
|
|
|
|
|
|
|
store.dispatch(ContentAction.UpdateWebAppManifestAction("1", mockk())).joinBlocking()
|
|
|
|
store.dispatch(ContentAction.UpdateWebAppManifestAction("1", mockk())).joinBlocking()
|
|
|
|
verify(exactly = 0) { settings.incrementVisitedInstallableCount() }
|
|
|
|
verify(exactly = 0) { settings.incrementVisitedInstallableCount() }
|
|
|
|
verify(exactly = 0) { navigationController.nav(
|
|
|
|
verify(exactly = 0) { pwaOnboardingObserver.navigateToPwaOnboarding() }
|
|
|
|
R.id.browserFragment,
|
|
|
|
|
|
|
|
BrowserFragmentDirections.actionBrowserFragmentToPwaOnboardingDialogFragment())
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
internal class MockedLifecycleOwner(initialState: Lifecycle.State) : LifecycleOwner {
|
|
|
|
internal class MockedLifecycleOwner(initialState: Lifecycle.State) : LifecycleOwner {
|
|
|
|