@@ -43,6 +43,7 @@ import com.duckduckgo.app.statistics.pixels.Pixel
43
43
import com.duckduckgo.browser.api.UserBrowserProperties
44
44
import com.duckduckgo.common.test.CoroutineTestRule
45
45
import com.duckduckgo.common.utils.DispatcherProvider
46
+ import com.duckduckgo.daxprompts.api.DaxPrompts
46
47
import com.duckduckgo.feature.toggles.api.Toggle
47
48
import com.squareup.moshi.JsonAdapter
48
49
import com.squareup.moshi.Moshi
@@ -103,6 +104,8 @@ class AdditionalDefaultBrowserPromptsImplTest {
103
104
104
105
@Mock private lateinit var userBrowserPropertiesMock: UserBrowserProperties
105
106
107
+ @Mock private lateinit var daxPromptsMock: DaxPrompts
108
+
106
109
@Mock private lateinit var moshiMock: Moshi
107
110
108
111
@Mock private lateinit var featureSettingsJsonAdapterMock: JsonAdapter <FeatureSettingsConfigModel >
@@ -282,6 +285,17 @@ class AdditionalDefaultBrowserPromptsImplTest {
282
285
assertTrue(actualUpdates.isEmpty())
283
286
}
284
287
288
+ @Test
289
+ fun `evaluate - if a dax dialog was shown recently or will be shown then don't enroll` () = runTest {
290
+ val testee = createTestee()
291
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .SHOW_BROWSER_COMPARISON_PROMPT )
292
+
293
+ testee.onResume(lifecycleOwnerMock)
294
+
295
+ verify(dataStoreMock, never()).storeStage(any())
296
+ assertEquals(Stage .NOT_STARTED , dataStoreMock.stage.first())
297
+ }
298
+
285
299
@Test
286
300
fun `evaluate - if feature not enabled then don't enroll` () = runTest {
287
301
val testee = createTestee()
@@ -327,6 +341,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
327
341
val testee = createTestee()
328
342
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
329
343
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(true )
344
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
330
345
331
346
testee.onResume(lifecycleOwnerMock)
332
347
@@ -339,6 +354,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
339
354
val testee = createTestee()
340
355
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
341
356
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
357
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
342
358
mockFeatureSettings()
343
359
whenever(userBrowserPropertiesMock.daysSinceInstalled()).thenReturn(5 )
344
360
whenever(defaultBrowserPromptsAppUsageRepositoryMock.getActiveDaysUsedSinceStart()).thenReturn(Result .success(0 ))
@@ -388,6 +404,8 @@ class AdditionalDefaultBrowserPromptsImplTest {
388
404
)
389
405
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
390
406
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
407
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
408
+
391
409
mockFeatureSettings()
392
410
whenever(defaultBrowserPromptsAppUsageRepositoryMock.getActiveDaysUsedSinceStart()).thenReturn(Result .success(1 ))
393
411
val action = DefaultBrowserPromptsFlowStageAction (
@@ -466,6 +484,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
466
484
)
467
485
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
468
486
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
487
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
469
488
mockFeatureSettings()
470
489
whenever(defaultBrowserPromptsAppUsageRepositoryMock.getActiveDaysUsedSinceStart()).thenReturn(Result .success(3 ))
471
490
val action = DefaultBrowserPromptsFlowStageAction (
@@ -494,6 +513,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
494
513
)
495
514
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
496
515
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
516
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
497
517
mockFeatureSettings()
498
518
whenever(defaultBrowserPromptsAppUsageRepositoryMock.getActiveDaysUsedSinceStart()).thenReturn(Result .success(4 ))
499
519
val action = DefaultBrowserPromptsFlowStageAction (
@@ -521,6 +541,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
521
541
)
522
542
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
523
543
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(true )
544
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
524
545
525
546
testee.onResume(lifecycleOwnerMock)
526
547
@@ -538,6 +559,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
538
559
)
539
560
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
540
561
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(true )
562
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
541
563
542
564
testee.onResume(lifecycleOwnerMock)
543
565
@@ -555,6 +577,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
555
577
)
556
578
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
557
579
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(true )
580
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
558
581
559
582
testee.onResume(lifecycleOwnerMock)
560
583
@@ -572,6 +595,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
572
595
)
573
596
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
574
597
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
598
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
575
599
mockFeatureSettings()
576
600
val action = DefaultBrowserPromptsFlowStageAction (
577
601
showMessageDialog = true ,
@@ -598,6 +622,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
598
622
)
599
623
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
600
624
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
625
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
601
626
mockFeatureSettings()
602
627
val action = DefaultBrowserPromptsFlowStageAction (
603
628
showMessageDialog = false ,
@@ -626,6 +651,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
626
651
)
627
652
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
628
653
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
654
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
629
655
mockFeatureSettings()
630
656
val action = DefaultBrowserPromptsFlowStageAction (
631
657
showMessageDialog = false ,
@@ -654,6 +680,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
654
680
)
655
681
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
656
682
whenever(defaultBrowserDetectorMock.isDefaultBrowser()).thenReturn(false )
683
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
657
684
mockFeatureSettings()
658
685
whenever(defaultBrowserPromptsAppUsageRepositoryMock.getActiveDaysUsedSinceStart()).thenReturn(Result .success(3 ))
659
686
whenever(stageEvaluatorMock.evaluate(any())).thenReturn(mock())
@@ -752,6 +779,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
752
779
@Test
753
780
fun `when resumed and user established, record app usage` () = runTest {
754
781
whenever(userStageStoreMock.getUserAppStage()).thenReturn(AppStage .ESTABLISHED )
782
+ whenever(daxPromptsMock.evaluate()).thenReturn(DaxPrompts .ActionType .NONE )
755
783
val testee = createTestee()
756
784
757
785
testee.onResume(lifecycleOwnerMock)
@@ -771,6 +799,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
771
799
defaultBrowserPromptsDataStore : DefaultBrowserPromptsDataStore = dataStoreMock,
772
800
experimentStageEvaluator : DefaultBrowserPromptsFlowStageEvaluator = stageEvaluatorMock,
773
801
userBrowserProperties : UserBrowserProperties = userBrowserPropertiesMock,
802
+ daxPrompts : DaxPrompts = daxPromptsMock,
774
803
pixel : Pixel = pixelMock,
775
804
moshi : Moshi = moshiMock,
776
805
) = AdditionalDefaultBrowserPromptsImpl (
@@ -785,6 +814,7 @@ class AdditionalDefaultBrowserPromptsImplTest {
785
814
defaultBrowserPromptsDataStore = defaultBrowserPromptsDataStore,
786
815
stageEvaluator = experimentStageEvaluator,
787
816
userBrowserProperties = userBrowserProperties,
817
+ daxPrompts = daxPrompts,
788
818
pixel = pixel,
789
819
moshi = moshi,
790
820
)
0 commit comments