Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,7 @@ package com.duckduckgo.app.onboarding.ui
import android.arch.core.executor.testing.InstantTaskExecutorRule
import com.duckduckgo.app.browser.defaultBrowsing.DefaultBrowserDetector
import com.duckduckgo.app.onboarding.store.OnboardingStore
import com.duckduckgo.app.statistics.Variant
import com.duckduckgo.app.statistics.VariantManager
import com.duckduckgo.app.statistics.VariantManager.VariantFeature.DefaultBrowserFeature.ShowInOnboarding
import com.nhaarman.mockito_kotlin.mock
import com.nhaarman.mockito_kotlin.never
import com.nhaarman.mockito_kotlin.verify
Expand All @@ -43,7 +41,7 @@ class OnboardingViewModelTest {
private var variantManager: VariantManager = mock()

private val testee: OnboardingViewModel by lazy {
OnboardingViewModel(onboardingStore, mockDefaultBrowserDetector, variantManager)
OnboardingViewModel(onboardingStore, mockDefaultBrowserDetector)
}

@Test
Expand All @@ -66,33 +64,17 @@ class OnboardingViewModelTest {
}

@Test
fun whenThirdPageRequestedWithFeatureEnabledAndDefaultBrowserCapableThenDefaultBrowserPageReturned() {
whenever(variantManager.getVariant()).thenReturn(variantWithOnboardingEnabled())
fun whenThirdPageRequestedWithDefaultBrowserCapableThenDefaultBrowserPageReturned() {
whenever(mockDefaultBrowserDetector.deviceSupportsDefaultBrowserConfiguration()).thenReturn(true)
val page = testee.getItem(2)
assertTrue(page is OnboardingPageFragment.DefaultBrowserPage)
}

@Test
fun whenThirdPageRequestedWithFeatureDisabledAndDefaultBrowserCapableThenNoPageReturned() {
whenever(variantManager.getVariant()).thenReturn(variantWithOnboardingDisabled())
whenever(mockDefaultBrowserDetector.deviceSupportsDefaultBrowserConfiguration()).thenReturn(true)
val page = testee.getItem(2)
assertNull(page)
}

@Test
fun whenThirdPageRequestedButDefaultBrowserNotCapableThenNoPageReturned() {
whenever(variantManager.getVariant()).thenReturn(variantWithOnboardingEnabled())
whenever(mockDefaultBrowserDetector.deviceSupportsDefaultBrowserConfiguration()).thenReturn(false)
val page = testee.getItem(2)
assertNull(page)
}

private fun variantWithOnboardingEnabled(): Variant =
Variant("", 0.0, listOf(ShowInOnboarding))

private fun variantWithOnboardingDisabled(): Variant =
Variant("", 0.0, listOf())

}
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ class ViewModelFactory @Inject constructor(
with(modelClass) {
when {
isAssignableFrom(LaunchViewModel::class.java) -> LaunchViewModel(onboaringStore)
isAssignableFrom(OnboardingViewModel::class.java) -> OnboardingViewModel(onboaringStore, defaultBrowserDetector, variantManager)
isAssignableFrom(OnboardingViewModel::class.java) -> OnboardingViewModel(onboaringStore, defaultBrowserDetector)
isAssignableFrom(BrowserViewModel::class.java) -> BrowserViewModel(tabRepository, queryUrlConverter)
isAssignableFrom(BrowserTabViewModel::class.java) -> browserTabViewModel()
isAssignableFrom(TabSwitcherViewModel::class.java) -> TabSwitcherViewModel(tabRepository, webViewSessionStorage)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,10 @@ package com.duckduckgo.app.onboarding.ui
import android.arch.lifecycle.ViewModel
import com.duckduckgo.app.browser.defaultBrowsing.DefaultBrowserDetector
import com.duckduckgo.app.onboarding.store.OnboardingStore
import com.duckduckgo.app.statistics.VariantManager
import com.duckduckgo.app.statistics.VariantManager.VariantFeature.DefaultBrowserFeature

class OnboardingViewModel(
private val onboardingStore: OnboardingStore,
private val defaultWebBrowserCapability: DefaultBrowserDetector,
private val variantManager: VariantManager
private val defaultWebBrowserCapability: DefaultBrowserDetector
) : ViewModel() {

fun pageCount(): Int {
Expand All @@ -50,10 +47,6 @@ class OnboardingViewModel(
}

private fun shouldShowDefaultBrowserPage(): Boolean {
val deviceSupported =
defaultWebBrowserCapability.deviceSupportsDefaultBrowserConfiguration()
val featureEnabled = variantManager.getVariant().hasFeature(DefaultBrowserFeature.ShowInOnboarding)

return deviceSupported && featureEnabled
return defaultWebBrowserCapability.deviceSupportsDefaultBrowserConfiguration()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ interface VariantManager {
sealed class VariantFeature {

sealed class DefaultBrowserFeature : VariantFeature() {
object ShowInOnboarding : DefaultBrowserFeature()
object ShowBanner : DefaultBrowserFeature()
object ShowHomeScreenCallToActionSimpleButton : DefaultBrowserFeature()
object ShowHomeScreenCallToActionBottomSheet : DefaultBrowserFeature()
Expand Down