diff --git a/app/src/test/java/com/duckduckgo/app/browser/newtab/NewTabLegacyPageViewModelTest.kt b/app/src/test/java/com/duckduckgo/app/browser/newtab/NewTabLegacyPageViewModelTest.kt index a3e9b6003618..6233ba277d59 100644 --- a/app/src/test/java/com/duckduckgo/app/browser/newtab/NewTabLegacyPageViewModelTest.kt +++ b/app/src/test/java/com/duckduckgo/app/browser/newtab/NewTabLegacyPageViewModelTest.kt @@ -101,7 +101,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenViewModelIsInitializedThenViewStateShouldEmitInitialState() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(mockDismissedCtaDao.exists(DAX_END)).thenReturn(false) @@ -119,7 +119,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageAvailableAndOnboardingNotCompleteThenMessageNotShown() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(mockDismissedCtaDao.exists(DAX_END)).thenReturn(false) @@ -137,7 +137,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageAvailableAndOnboardingCompleteThenMessageShown() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(mockDismissedCtaDao.exists(DAX_END)).thenReturn(true) @@ -155,7 +155,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageShownThenFirePixelAndMarkAsShown() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) testee.onStart(mockLifecycleOwner) @@ -167,7 +167,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageCloseButtonClickedThenFirePixelAndDismiss() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) testee.onStart(mockLifecycleOwner) @@ -179,7 +179,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessagePrimaryButtonClickedThenFirePixelAndDismiss() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) val action = Action.Dismiss @@ -199,7 +199,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageSecondaryButtonClickedThenFirePixelAndDismiss() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) val action = Action.Dismiss @@ -219,7 +219,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageActionButtonClickedThenFirePixelAndDismiss() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) val action = Action.Dismiss @@ -252,7 +252,7 @@ class NewTabLegacyPageViewModelTest { @Test fun whenRemoteMessageAvailableAndLowPriorityMessageAvailableThenLowPriorityMessageIsNull() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) val lowPriorityMessage = LowPriorityMessage.DefaultBrowserMessage( message = MessageCta.Message( topIllustration = R.drawable.ic_device_mobile_default, @@ -372,7 +372,7 @@ class NewTabLegacyPageViewModelTest { @Test fun `when onboarding complete and RMF available, then hide logo`() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(mockRemoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(mockDismissedCtaDao.exists(DAX_END)).thenReturn(true) diff --git a/remote-messaging/remote-messaging-api/src/main/java/com/duckduckgo/remote/messaging/api/RemoteMessage.kt b/remote-messaging/remote-messaging-api/src/main/java/com/duckduckgo/remote/messaging/api/RemoteMessage.kt index b8eceb590e71..f5a5e784e56d 100644 --- a/remote-messaging/remote-messaging-api/src/main/java/com/duckduckgo/remote/messaging/api/RemoteMessage.kt +++ b/remote-messaging/remote-messaging-api/src/main/java/com/duckduckgo/remote/messaging/api/RemoteMessage.kt @@ -36,8 +36,14 @@ data class RemoteMessage( val content: Content, val matchingRules: List, val exclusionRules: List, + val surfaces: List, ) +enum class Surface(val jsonValue: String) { + MODAL("modal"), + NEW_TAB_PAGE("new_tab_page"), +} + sealed class Content(val messageType: MessageType) { data class Small(val titleText: String, val descriptionText: String) : Content(SMALL) data class Medium(val titleText: String, val descriptionText: String, val placeholder: Placeholder) : Content(MEDIUM) diff --git a/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepository.kt b/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepository.kt index 17691f103204..95691965121e 100644 --- a/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepository.kt +++ b/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepository.kt @@ -69,6 +69,7 @@ class AppRemoteMessagingRepository( content = remoteMessage.content, emptyList(), emptyList(), + emptyList(), ) return remoteMessage } @@ -83,6 +84,7 @@ class AppRemoteMessagingRepository( content = message.content, emptyList(), emptyList(), + emptyList(), ) } } diff --git a/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/mappers/JsonRemoteMessageMapper.kt b/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/mappers/JsonRemoteMessageMapper.kt index 93bf4dfb0571..08a08bdb95b3 100644 --- a/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/mappers/JsonRemoteMessageMapper.kt +++ b/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/mappers/JsonRemoteMessageMapper.kt @@ -27,6 +27,7 @@ import com.duckduckgo.remote.messaging.api.Content.Small import com.duckduckgo.remote.messaging.api.JsonMessageAction import com.duckduckgo.remote.messaging.api.MessageActionMapperPlugin import com.duckduckgo.remote.messaging.api.RemoteMessage +import com.duckduckgo.remote.messaging.api.Surface import com.duckduckgo.remote.messaging.impl.models.* import com.duckduckgo.remote.messaging.impl.models.JsonMessageType.BIG_SINGLE_ACTION import com.duckduckgo.remote.messaging.impl.models.JsonMessageType.BIG_TWO_ACTION @@ -109,6 +110,7 @@ private fun JsonRemoteMessage.map( content = this.content!!.mapToContent(this.content.messageType, actionMappers), matchingRules = this.matchingRules.orEmpty(), exclusionRules = this.exclusionRules.orEmpty(), + surfaces = this.surfaces.toSurfaceList(), ) remoteMessage.localizeMessage(this.translations, locale) }.onFailure { @@ -116,6 +118,11 @@ private fun JsonRemoteMessage.map( }.getOrNull() } +private fun List?.toSurfaceList(): List { + return this?.mapNotNull { value -> + Surface.entries.firstOrNull { it.jsonValue == value } + } ?: listOf(Surface.NEW_TAB_PAGE) +} private fun RemoteMessage.localizeMessage(translations: Map?, locale: Locale): RemoteMessage { if (translations == null) return this diff --git a/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/models/JsonRemoteMessagingConfig.kt b/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/models/JsonRemoteMessagingConfig.kt index bdf9706179da..689445046a35 100644 --- a/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/models/JsonRemoteMessagingConfig.kt +++ b/remote-messaging/remote-messaging-impl/src/main/java/com/duckduckgo/remote/messaging/impl/models/JsonRemoteMessagingConfig.kt @@ -31,6 +31,7 @@ data class JsonRemoteMessage( val exclusionRules: List, val matchingRules: List, val translations: Map, + val surfaces: List?, ) data class JsonContent( diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/JsonRemoteMessageOM.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/JsonRemoteMessageOM.kt index f704c01373e6..0026ca328041 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/JsonRemoteMessageOM.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/JsonRemoteMessageOM.kt @@ -111,12 +111,14 @@ object JsonRemoteMessageOM { exclusionRules: List = emptyList(), matchingRules: List = emptyList(), translations: Map = emptyMap(), + surfaces: List? = null, ) = JsonRemoteMessage( id = id, content = content, exclusionRules = exclusionRules, matchingRules = matchingRules, translations = translations, + surfaces = surfaces, ) fun aJsonRemoteMessagingConfig( diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/RemoteMessageOM.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/RemoteMessageOM.kt index cde470a37ab4..cf21c1b03c38 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/RemoteMessageOM.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/fixtures/RemoteMessageOM.kt @@ -22,6 +22,7 @@ import com.duckduckgo.remote.messaging.api.Content.Placeholder import com.duckduckgo.remote.messaging.api.Content.Placeholder.ANNOUNCE import com.duckduckgo.remote.messaging.api.Content.Placeholder.MAC_AND_WINDOWS import com.duckduckgo.remote.messaging.api.RemoteMessage +import com.duckduckgo.remote.messaging.api.Surface @Suppress("MemberVisibilityCanBePrivate") object RemoteMessageOM { @@ -98,12 +99,14 @@ object RemoteMessageOM { content: Content = smallContent(), exclusionRules: List = emptyList(), matchingRules: List = emptyList(), + surfaces: List = emptyList(), ): RemoteMessage { return RemoteMessage( id = id, content = content, exclusionRules = exclusionRules, matchingRules = matchingRules, + surfaces = surfaces, ) } @@ -112,12 +115,14 @@ object RemoteMessageOM { content: Content = mediumContent(), exclusionRules: List = emptyList(), matchingRules: List = emptyList(), + surfaces: List = emptyList(), ): RemoteMessage { return RemoteMessage( id = id, content = content, exclusionRules = exclusionRules, matchingRules = matchingRules, + surfaces = surfaces, ) } @@ -126,12 +131,14 @@ object RemoteMessageOM { content: Content = bigSingleActionContent(), exclusionRules: List = emptyList(), matchingRules: List = emptyList(), + surfaces: List = emptyList(), ): RemoteMessage { return RemoteMessage( id = id, content = content, exclusionRules = exclusionRules, matchingRules = matchingRules, + surfaces = surfaces, ) } @@ -140,12 +147,14 @@ object RemoteMessageOM { content: Content = bigTwoActionsContent(), exclusionRules: List = emptyList(), matchingRules: List = emptyList(), + surfaces: List = emptyList(), ): RemoteMessage { return RemoteMessage( id = id, content = content, exclusionRules = exclusionRules, matchingRules = matchingRules, + surfaces = surfaces, ) } @@ -154,12 +163,14 @@ object RemoteMessageOM { content: Content = promoSingleActionContent(), exclusionRules: List = emptyList(), matchingRules: List = emptyList(), + surfaces: List = emptyList(), ): RemoteMessage { return RemoteMessage( id = id, content = content, exclusionRules = exclusionRules, matchingRules = matchingRules, + surfaces = surfaces, ) } } diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepositoryTest.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepositoryTest.kt index 172d647a05aa..771cdf2e037c 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepositoryTest.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/AppRemoteMessagingRepositoryTest.kt @@ -86,6 +86,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), ) @@ -102,6 +103,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), message, ) @@ -120,6 +122,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), ) @@ -135,6 +138,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), message, ) @@ -156,6 +160,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), ) @@ -174,6 +179,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), message, ) @@ -197,6 +203,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), ) @@ -217,6 +224,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), message, ) @@ -238,6 +246,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), ) @@ -256,6 +265,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ), message, ) @@ -426,6 +436,7 @@ class AppRemoteMessagingRepositoryTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ) } } diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/JsonRemoteMessageMapperTest.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/JsonRemoteMessageMapperTest.kt index d341ba6c6c56..9eaae30cbdd2 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/JsonRemoteMessageMapperTest.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/JsonRemoteMessageMapperTest.kt @@ -17,6 +17,7 @@ package com.duckduckgo.remote.messaging.impl import com.duckduckgo.remote.messaging.api.RemoteMessage +import com.duckduckgo.remote.messaging.api.Surface.NEW_TAB_PAGE import com.duckduckgo.remote.messaging.fixtures.JsonRemoteMessageOM.aJsonMessage import com.duckduckgo.remote.messaging.fixtures.JsonRemoteMessageOM.bigSingleActionJsonContent import com.duckduckgo.remote.messaging.fixtures.JsonRemoteMessageOM.bigTwoActionJsonContent @@ -67,11 +68,11 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { aJsonMessage(id = "id5", content = promoSingleActionJsonContent()), ), listOf( - aSmallMessage(id = "id1"), - aMediumMessage(id = "id2"), - aBigSingleActionMessage(id = "id3"), - aBigTwoActionsMessage(id = "id4"), - aPromoSingleActionMessage(id = "id5"), + aSmallMessage(id = "id1", surfaces = listOf(NEW_TAB_PAGE)), + aMediumMessage(id = "id2", surfaces = listOf(NEW_TAB_PAGE)), + aBigSingleActionMessage(id = "id3", surfaces = listOf(NEW_TAB_PAGE)), + aBigTwoActionsMessage(id = "id4", surfaces = listOf(NEW_TAB_PAGE)), + aPromoSingleActionMessage(id = "id5", surfaces = listOf(NEW_TAB_PAGE)), ), ), TestCase( @@ -84,11 +85,11 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { aJsonMessage(id = "id6", content = promoSingleActionJsonContent()), ), listOf( - aSmallMessage(id = "id2"), - aMediumMessage(id = "id3"), - aBigSingleActionMessage(id = "id4"), - aBigTwoActionsMessage(id = "id5"), - aPromoSingleActionMessage(id = "id6"), + aSmallMessage(id = "id2", surfaces = listOf(NEW_TAB_PAGE)), + aMediumMessage(id = "id3", surfaces = listOf(NEW_TAB_PAGE)), + aBigSingleActionMessage(id = "id4", surfaces = listOf(NEW_TAB_PAGE)), + aBigTwoActionsMessage(id = "id5", surfaces = listOf(NEW_TAB_PAGE)), + aPromoSingleActionMessage(id = "id6", surfaces = listOf(NEW_TAB_PAGE)), ), ), TestCase( @@ -139,6 +140,7 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { aSmallMessage( id = "id1", smallContent(titleText = frenchTranslations().titleText, descriptionText = frenchTranslations().descriptionText), + surfaces = listOf(NEW_TAB_PAGE), ), aMediumMessage( id = "id2", @@ -146,6 +148,7 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { titleText = frenchTranslations().titleText, descriptionText = frenchTranslations().descriptionText, ), + surfaces = listOf(NEW_TAB_PAGE), ), aBigSingleActionMessage( id = "id3", @@ -154,6 +157,7 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { descriptionText = frenchTranslations().descriptionText, primaryActionText = frenchTranslations().primaryActionText, ), + surfaces = listOf(NEW_TAB_PAGE), ), aBigTwoActionsMessage( id = "id4", @@ -163,6 +167,7 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { primaryActionText = frenchTranslations().primaryActionText, secondaryActionText = frenchTranslations().secondaryActionText, ), + surfaces = listOf(NEW_TAB_PAGE), ), aPromoSingleActionMessage( id = "id5", @@ -171,6 +176,7 @@ class JsonRemoteMessageMapperTest(private val testCase: TestCase) { descriptionText = frenchTranslations().descriptionText, actionText = frenchTranslations().actionText, ), + surfaces = listOf(NEW_TAB_PAGE), ), ), ), diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingConfigJsonMapperTest.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingConfigJsonMapperTest.kt index ef00c05a58d4..abb230e3c99e 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingConfigJsonMapperTest.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingConfigJsonMapperTest.kt @@ -24,6 +24,7 @@ import com.duckduckgo.remote.messaging.api.Content.Placeholder.ANNOUNCE import com.duckduckgo.remote.messaging.api.Content.Placeholder.APP_UPDATE import com.duckduckgo.remote.messaging.api.Content.Placeholder.CRITICAL_UPDATE import com.duckduckgo.remote.messaging.api.RemoteMessage +import com.duckduckgo.remote.messaging.api.Surface.NEW_TAB_PAGE import com.duckduckgo.remote.messaging.fixtures.jsonMatchingAttributeMappers import com.duckduckgo.remote.messaging.fixtures.messageActionPlugins import com.duckduckgo.remote.messaging.impl.mappers.RemoteMessagingConfigJsonMapper @@ -72,6 +73,7 @@ class RemoteMessagingConfigJsonMapperTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = listOf(NEW_TAB_PAGE), ) assertEquals(bigSingleActionMessage, config.messages[0]) @@ -83,6 +85,7 @@ class RemoteMessagingConfigJsonMapperTest { ), matchingRules = listOf(5, 6), exclusionRules = listOf(7, 8, 9), + surfaces = listOf(NEW_TAB_PAGE), ) assertEquals(smallMessage, config.messages[2]) @@ -95,6 +98,7 @@ class RemoteMessagingConfigJsonMapperTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = listOf(NEW_TAB_PAGE), ) assertEquals(mediumMessage, config.messages[3]) @@ -113,6 +117,7 @@ class RemoteMessagingConfigJsonMapperTest { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = listOf(NEW_TAB_PAGE), ) assertEquals(bigTwoActions, config.messages[4]) } @@ -192,6 +197,7 @@ class RemoteMessagingConfigJsonMapperTest { ), matchingRules = listOf(5, 6), exclusionRules = listOf(7, 8, 9), + surfaces = listOf(NEW_TAB_PAGE), ) assertEquals(smallMessage, config.messages[0]) } diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingModelTests.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingModelTests.kt index 09ad75ffb59e..fd613866f3dd 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingModelTests.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/impl/RemoteMessagingModelTests.kt @@ -42,7 +42,7 @@ class RemoteMessagingModelTests { private lateinit var testee: RealRemoteMessageModel - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) @Before fun setup() { @@ -108,6 +108,7 @@ class RemoteMessagingModelTests { ), matchingRules = emptyList(), exclusionRules = emptyList(), + surfaces = emptyList(), ) val result = testee.onActionClicked(remoteMessage) diff --git a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/newtab/RemoteMessageViewModelTest.kt b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/newtab/RemoteMessageViewModelTest.kt index 9da05a21de65..01523d702ee6 100644 --- a/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/newtab/RemoteMessageViewModelTest.kt +++ b/remote-messaging/remote-messaging-impl/src/test/java/com/duckduckgo/remote/messaging/newtab/RemoteMessageViewModelTest.kt @@ -87,7 +87,7 @@ class RemoteMessageViewModelTest { @Test fun whenMessageShownThenRemoteMessagingModelUpdated() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(remoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) testee.onStart(mockLifecycleOwner) @@ -105,7 +105,7 @@ class RemoteMessageViewModelTest { @Test fun whenMessagePrimaryButtonCLickedThenRemoteMessagingModelDismissed() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(remoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(remoteMessageModel.onPrimaryActionClicked(remoteMessage)).thenReturn(DefaultBrowser) testee.onStart(mockLifecycleOwner) @@ -120,7 +120,7 @@ class RemoteMessageViewModelTest { @Test fun whenMessageSecondaryButtonCLickedThenRemoteMessagingModelDismissed() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(remoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(remoteMessageModel.onSecondaryActionClicked(remoteMessage)).thenReturn(DefaultBrowser) testee.onStart(mockLifecycleOwner) @@ -135,7 +135,7 @@ class RemoteMessageViewModelTest { @Test fun whenMessageActionCLickedThenRemoteMessagingModelDismissed() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(remoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(remoteMessageModel.onActionClicked(remoteMessage)).thenReturn(DefaultBrowser) testee.onStart(mockLifecycleOwner) @@ -150,7 +150,7 @@ class RemoteMessageViewModelTest { @Test fun whenMessageActionClickedIsSurveyThenSubmitUrlCommandSent() = runTest { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(surveyParameterManager.buildSurveyUrl("https://example.com", listOf("atb"))).thenReturn("https://example.com?atb") whenever(remoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) whenever(remoteMessageModel.onPrimaryActionClicked(remoteMessage)).thenReturn( @@ -175,7 +175,7 @@ class RemoteMessageViewModelTest { } private fun whenRemoteMessageAvailable(): RemoteMessage { - val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList()) + val remoteMessage = RemoteMessage("id1", Content.Small("", ""), emptyList(), emptyList(), emptyList()) whenever(remoteMessageModel.getActiveMessages()).thenReturn(flowOf(remoteMessage)) testee.onStart(mockLifecycleOwner) return remoteMessage