From a1bc4e0a19504245b0c779fd7602057b9722c036 Mon Sep 17 00:00:00 2001 From: Mohammed Mustafa Date: Thu, 11 Sep 2025 15:46:13 -0700 Subject: [PATCH] fix: Add missing consent defaults and mappings functionality --- build.gradle | 9 +- libs/java-json.jar | Bin 0 -> 84697 bytes libs/test-utils.aar | Bin 0 -> 104495 bytes .../kotlin/com/mparticle/kits/AppsFlyerKit.kt | 184 +++++- .../kotlin/com/appsflyer/AppsFlyerConsent.kt | 10 + src/test/kotlin/com/appsflyer/AppsFlyerLib.kt | 51 ++ .../com/mparticle/kits/AppsflyerKitTests.kt | 608 +++++++++++++++++- 7 files changed, 853 insertions(+), 9 deletions(-) create mode 100755 libs/java-json.jar create mode 100644 libs/test-utils.aar create mode 100644 src/test/kotlin/com/appsflyer/AppsFlyerConsent.kt create mode 100644 src/test/kotlin/com/appsflyer/AppsFlyerLib.kt diff --git a/build.gradle b/build.gradle index 8220292..ace5743 100644 --- a/build.gradle +++ b/build.gradle @@ -37,10 +37,17 @@ android { defaultConfig { minSdkVersion 19 } + testOptions { + unitTests.all { + jvmArgs += ['--add-opens', 'java.base/java.lang=ALL-UNNAMED'] + } + } } dependencies { - api 'com.appsflyer:af-android-sdk:6.16.0' + api 'com.appsflyer:af-android-sdk:6.17.3' + testImplementation files('libs/java-json.jar') + testImplementation files('libs/testutils.aar') } repositories { mavenCentral() diff --git a/libs/java-json.jar b/libs/java-json.jar new file mode 100755 index 0000000000000000000000000000000000000000..2f211e3660a0f7637cd055e3dfb011fcc5b4f167 GIT binary patch literal 84697 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%0A^eARL~vZq+#%}VrSrx_m=pVc%a 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

8NQ;9Ans?P}n^>gcO>e>oYyAlbCB*-T|9&C$M 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%0A{lnE||A9G*TwwATGQ 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 CY#!SH literal 0 HcmV?d00001 diff --git a/libs/test-utils.aar b/libs/test-utils.aar new file mode 100644 index 0000000000000000000000000000000000000000..a13382c7d880d4b793c0ca38bdd359e4f4179f69 GIT binary patch literal 104495 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 z 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

5a_^i>gI1 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 @@ -232,6 +237,37 @@ class AppsFlyerKit : KitIntegration(), KitIntegration.EventListener, override fun setUserAttribute(attributeKey: String, attributeValue: String) {} override fun setUserAttributeList(s: String, list: List) {} + override fun onIncrementUserAttribute( + key: String?, + incrementedBy: Number?, + value: String?, + user: FilteredMParticleUser? + ) { + } + + override fun onRemoveUserAttribute(key: String?, user: FilteredMParticleUser?) { + } + + override fun onSetUserAttribute(key: String?, value: Any?, user: FilteredMParticleUser?) { + } + + override fun onSetUserTag(key: String?, user: FilteredMParticleUser?) { + } + + override fun onSetUserAttributeList( + attributeKey: String?, + attributeValueList: MutableList?, + user: FilteredMParticleUser? + ) { + } + + override fun onSetAllUserAttributes( + userAttributes: MutableMap?, + userAttributeLists: MutableMap>?, + user: FilteredMParticleUser? + ) { + } + override fun supportsAttributeLists(): Boolean = true override fun setAllUserAttributes(map: Map, map1: Map>) {} override fun removeUserAttribute(key: String) {} @@ -257,6 +293,141 @@ class AppsFlyerKit : KitIntegration(), KitIntegration.EventListener, override fun logout(): List = emptyList() + private fun parseToNestedMap(jsonString: String): Map { + val topLevelMap = mutableMapOf() + try { + if (jsonString.isNullOrEmpty()) { + return topLevelMap + } + val jsonObject = JSONObject(jsonString) + + for (key in jsonObject.keys()) { + val value = jsonObject.get(key) + if (value is JSONObject) { + topLevelMap[key] = parseToNestedMap(value.toString()) + } else { + topLevelMap[key] = value + } + } + } catch (e: Exception) { + Logger.error( + e, + "The AppsFlyer kit was unable to parse the user's ConsentState, consent may not be set correctly on the AppsFlyer SDK" + ) + } + return topLevelMap + } + + private fun searchKeyInNestedMap(map: Map<*, *>, key: Any): Any? { + if (map.isNullOrEmpty()) { + return null + } + try { + for ((mapKey, mapValue) in map) { + if (mapKey.toString().equals(key.toString(), ignoreCase = true)) { + return mapValue + } + if (mapValue is Map<*, *>) { + val foundValue = searchKeyInNestedMap(mapValue, key) + if (foundValue != null) { + return foundValue + } + } + } + } catch (e: Exception) { + Logger.error( + e, + "The AppsFlyer kit threw an exception while searching for the configured consent purpose mapping in the current user's consent status." + ) + } + return null + } + + override fun onConsentStateUpdated( + consentState: ConsentState, + consentState1: ConsentState, + filteredMParticleUser: FilteredMParticleUser + ) { + setConsent(consentState1) + } + + private fun setConsent(consentState: ConsentState?) { + if (settings[GDPR_APPLIES].isNullOrEmpty()) { + return + } + val appsFlyerGDPRUser: AppsFlyerConsent + if (!settings[GDPR_APPLIES].toBoolean()) { + appsFlyerGDPRUser = AppsFlyerConsent(false, null, null, null) + } else { + var adStorageConsentValue: Boolean? = null + when (settings[DEFAULT_AD_STORAGE_CONSENT]) { + AppsFlyerConsentValues.GRANTED.consentValue -> adStorageConsentValue = true + AppsFlyerConsentValues.DENIED.consentValue -> adStorageConsentValue = false + } + + var adUserDataConsentValue: Boolean? = null + when (settings[DEFAULT_AD_USER_DATA_CONSENT]) { + AppsFlyerConsentValues.GRANTED.consentValue -> adUserDataConsentValue = true + AppsFlyerConsentValues.DENIED.consentValue -> adUserDataConsentValue = false + } + + var adPersonalizationConsentValue: Boolean? = null + when (settings[DEFAULT_AD_PERSONALIZATION_CONSENT]) { + AppsFlyerConsentValues.GRANTED.consentValue -> adPersonalizationConsentValue = true + AppsFlyerConsentValues.DENIED.consentValue -> adPersonalizationConsentValue = false + } + + val clientConsentSettings = parseToNestedMap(consentState.toString()) + + parseConsentMapping(settings[consentMapping]).iterator().forEach { currentConsent -> + + val isConsentAvailable = + searchKeyInNestedMap(clientConsentSettings, key = currentConsent.key) + + if (isConsentAvailable != null) { + val isConsentGranted: Boolean = + JSONObject(isConsentAvailable.toString()).opt("consented") as Boolean + + when (currentConsent.value) { + "ad_storage" -> adStorageConsentValue = isConsentGranted + + "ad_user_data" -> adUserDataConsentValue = isConsentGranted + + "ad_personalization" -> adPersonalizationConsentValue = isConsentGranted + } + } + } + appsFlyerGDPRUser = AppsFlyerConsent(true, adUserDataConsentValue, adPersonalizationConsentValue, adStorageConsentValue) + } + AppsFlyerLib.getInstance().setConsentData(appsFlyerGDPRUser) + } + + private fun parseConsentMapping(json: String?): Map { + if (json.isNullOrEmpty()) { + return emptyMap() + } + val jsonWithFormat = json.replace("\\", "") + + return try { + JSONArray(jsonWithFormat) + .let { jsonArray -> + (0 until jsonArray.length()) + .associate { + val jsonObject = jsonArray.getJSONObject(it) + val map = jsonObject.getString("map") + val value = jsonObject.getString("value") + map to value + } + } + } catch (jse: JSONException) { + Logger.error( + jse, + "The AppsFlyer kit threw an exception while searching for the configured consent purpose mapping in the current user's consent status." + ) + emptyMap() + } + } + override fun onConversionDataSuccess(conversionDataN: MutableMap?) { var conversionData = conversionDataN val jsonResult = JSONObject() @@ -389,5 +560,16 @@ class AppsFlyerKit : KitIntegration(), KitIntegration.EventListener, } else { null } } } + + private const val consentMapping = "consentMapping" + enum class AppsFlyerConsentValues(val consentValue: String) { + GRANTED("Granted"), + DENIED("Denied") + } + + val GDPR_APPLIES = "gdprApplies" + val DEFAULT_AD_STORAGE_CONSENT = "defaultAdStorageConsent" + val DEFAULT_AD_USER_DATA_CONSENT = "defaultAdUserDataConsent" + val DEFAULT_AD_PERSONALIZATION_CONSENT = "defaultAdPersonalizationConsent" } } diff --git a/src/test/kotlin/com/appsflyer/AppsFlyerConsent.kt b/src/test/kotlin/com/appsflyer/AppsFlyerConsent.kt new file mode 100644 index 0000000..c368b5c --- /dev/null +++ b/src/test/kotlin/com/appsflyer/AppsFlyerConsent.kt @@ -0,0 +1,10 @@ +package com.appsflyer + +class AppsFlyerConsent( + val isUserSubjectToGDPR: Boolean?, + val hasConsentForDataUsage: Boolean?, + val hasConsentForAdsPersonalization: Boolean?, + val hasConsentForAdStorage: Boolean? +) { + +} diff --git a/src/test/kotlin/com/appsflyer/AppsFlyerLib.kt b/src/test/kotlin/com/appsflyer/AppsFlyerLib.kt new file mode 100644 index 0000000..8406e93 --- /dev/null +++ b/src/test/kotlin/com/appsflyer/AppsFlyerLib.kt @@ -0,0 +1,51 @@ +package com.appsflyer + +import android.content.Context + +class AppsFlyerLib { + private var consentData: AppsFlyerConsent? = null + + fun setConsentData(consent: AppsFlyerConsent) { + consentData = consent + } + + fun getConsentData(): AppsFlyerConsent? { + return consentData + } + + fun getConsentState(): MutableMap { + val stateMap = mutableMapOf() + consentData?.let { consent -> + // Use property names directly instead of getter methods + consent.isUserSubjectToGDPR?.let { stateMap["isUserSubjectToGDPR"] = it } + consent.hasConsentForDataUsage?.let { stateMap["hasConsentForDataUsage"] = it } + consent.hasConsentForAdsPersonalization?.let { stateMap["hasConsentForAdsPersonalization"] = it } + consent.hasConsentForAdStorage?.let { stateMap["hasConsentForAdStorage"] = it } + } + return stateMap + } + + companion object { + private var _instance: AppsFlyerLib? = null + + @JvmStatic + fun getInstance(): AppsFlyerLib? { + if (_instance == null) { + _instance = AppsFlyerLib() + } + return _instance + } + + @JvmStatic + fun getInstance(context: Context?): AppsFlyerLib? { + return getInstance() + } + + /** + * Access Methods + */ + fun clearInstance() { + _instance = null + } + } +} diff --git a/src/test/kotlin/com/mparticle/kits/AppsflyerKitTests.kt b/src/test/kotlin/com/mparticle/kits/AppsflyerKitTests.kt index c28ee0f..9b1353d 100644 --- a/src/test/kotlin/com/mparticle/kits/AppsflyerKitTests.kt +++ b/src/test/kotlin/com/mparticle/kits/AppsflyerKitTests.kt @@ -1,20 +1,69 @@ package com.mparticle.kits +import android.app.Activity import android.content.Context +import android.net.Uri import com.mparticle.MParticle import com.mparticle.MParticleOptions import com.mparticle.commerce.CommerceEvent import com.mparticle.commerce.Product import com.mparticle.commerce.TransactionAttributes +import com.appsflyer.AppsFlyerLib +import com.mparticle.consent.ConsentState +import com.mparticle.consent.GDPRConsent +import com.mparticle.identity.IdentityApi +import com.mparticle.identity.MParticleUser +import com.mparticle.internal.CoreCallbacks +import com.mparticle.internal.CoreCallbacks.KitListener import junit.framework.Assert.assertEquals +import junit.framework.TestCase +import org.json.JSONArray +import org.json.JSONException +import org.json.JSONObject import org.junit.Assert +import org.junit.Before import org.junit.Test +import org.mockito.Mock import org.mockito.Mockito +import org.mockito.Mockito.mock +import org.mockito.MockitoAnnotations +import java.lang.ref.WeakReference +import java.lang.reflect.Method class AppsflyerKitTests { - private val kit = AppsFlyerKit() + private var kit = AppsFlyerKit() + private var appsflyer = AppsFlyerLib() + + @Mock + lateinit var filteredMParticleUser: FilteredMParticleUser + + @Mock + lateinit var user: MParticleUser + + @Before + @Throws(JSONException::class) + fun before() { + AppsFlyerLib.clearInstance() + kit = AppsFlyerKit() + MockitoAnnotations.initMocks(this) + MParticle.setInstance(mock(MParticle::class.java)) + Mockito.`when`(MParticle.getInstance()?.Identity()).thenReturn( + mock( + IdentityApi::class.java + ) + ) + val kitManager = KitManagerImpl( + mock( + Context::class.java + ), null, emptyCoreCallbacks, mock(MParticleOptions::class.java) + ) + kit.kitManager = kitManager + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("id", "-1")) + appsflyer = AppsFlyerLib.getInstance(null)!! + } @Test @Throws(Exception::class) @@ -32,9 +81,9 @@ class AppsflyerKitTests { fun testOnKitCreate() { var e: Throwable? = null try { - val settings = HashMap() + val settings = HashMap() settings["fake setting"] = "fake" - kit.onKitCreate(settings as Map, Mockito.mock(Context::class.java)) + kit.onKitCreate(settings as Map, mock(Context::class.java)) } catch (ex: Throwable) { e = ex } @@ -44,7 +93,7 @@ class AppsflyerKitTests { @Test @Throws(Exception::class) fun testClassName() { - val options = Mockito.mock(MParticleOptions::class.java) + val options = mock(MParticleOptions::class.java) val factory = KitIntegrationFactory(options) val integrations = factory.supportedKits.values val className = kit.javaClass.name @@ -59,7 +108,7 @@ class AppsflyerKitTests { @Test @Throws(Exception::class) fun testGenerateSkuString() { - MParticle.setInstance(Mockito.mock(MParticle::class.java)) + MParticle.setInstance(mock(MParticle::class.java)) Mockito.`when`(MParticle.getInstance()?.environment) .thenReturn(MParticle.Environment.Production) Assert.assertNull(AppsFlyerKit.generateProductIdList(null)) @@ -74,13 +123,558 @@ class AppsflyerKitTests { .transactionAttributes(TransactionAttributes("foo")) .build() assertEquals( - mutableListOf("foo-sku","foo-sku-2"), AppsFlyerKit.generateProductIdList(event2)) + mutableListOf("foo-sku", "foo-sku-2"), AppsFlyerKit.generateProductIdList(event2) + ) val product3 = Product.Builder("foo-name-3", "foo-sku-,3", 50.0).build() val event3 = CommerceEvent.Builder(Product.PURCHASE, product) .addProduct(product2) .addProduct(product3) .transactionAttributes(TransactionAttributes("foo")) .build() - assertEquals(mutableListOf("foo-sku","foo-sku-2","foo-sku-%2C3"), AppsFlyerKit.generateProductIdList(event3)) + assertEquals( + mutableListOf("foo-sku", "foo-sku-2", "foo-sku-%2C3"), + AppsFlyerKit.generateProductIdList(event3) + ) + } + + @Test + @Throws(Exception::class) + fun testConsentWhenGDPRNotApplied() { + val map = HashMap() + map["defaultAdStorageConsent"] = "Granted" + map["gdprApplies"] = "false" + map["consentMapping"] = + "[{\\\"jsmap\\\":null,\\\"map\\\":\\\"Performance\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_user_data\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"Marketing\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_personalization\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"testconsent\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_storage\\\"}]" + map["defaultAdUserDataConsent"] = "Denied" + map["defaultAdPersonalizationConsent"] = "Denied" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + + val marketingConsent = GDPRConsent.builder(false) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val state = ConsentState.builder() + .addGDPRConsentState("Marketing", marketingConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(false, expectedConsentValue) + + val notExpectedConsentKey = afConsentResults.containsKey("hasConsentForDataUsage") + TestCase.assertEquals(false, notExpectedConsentKey) + + val notExpectedConsentKey2 = afConsentResults.containsKey("hasConsentForAdsPersonalization") + TestCase.assertEquals(false, notExpectedConsentKey2) + + val notExpectedConsentKey3 = afConsentResults.containsKey("hasConsentForAdStorage") + TestCase.assertEquals(false, notExpectedConsentKey3) + } + + @Test + @Throws(Exception::class) + fun testConsentWhenGDPRAppliedWithoutConsentDefaults() { + val map = HashMap() + map["defaultAdStorageConsent"] = "Unspecified" + map["gdprApplies"] = "true" + map["consentMapping"] = + "[{\\\"jsmap\\\":null,\\\"map\\\":\\\"Performance\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_user_data\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"Marketing\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_personalization\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"testconsent\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_storage\\\"}]" + map["defaultAdUserDataConsent"] = "Unspecified" + map["defaultAdPersonalizationConsent"] = "Unspecified" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + + val marketingConsent = GDPRConsent.builder(false) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val state = ConsentState.builder() + .addGDPRConsentState("test1", marketingConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(true, expectedConsentValue) + + val notExpectedConsentKey = afConsentResults.containsKey("hasConsentForDataUsage") + TestCase.assertEquals(false, notExpectedConsentKey) + + val notExpectedConsentKey2 = afConsentResults.containsKey("hasConsentForAdsPersonalization") + TestCase.assertEquals(false, notExpectedConsentKey2) + + val notExpectedConsentKey3 = afConsentResults.containsKey("hasConsentForAdStorage") + TestCase.assertEquals(false, notExpectedConsentKey3) + } + + @Test + @Throws(Exception::class) + fun testConsentWhenGDPRAppliedWithConsentDefaults() { + val map = HashMap() + map["defaultAdStorageConsent"] = "Granted" + map["gdprApplies"] = "true" + map["consentMapping"] = + "[{\\\"jsmap\\\":null,\\\"map\\\":\\\"Performance\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_user_data\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"Marketing\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_personalization\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"testconsent\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_storage\\\"}]" + map["defaultAdUserDataConsent"] = "Denied" + map["defaultAdPersonalizationConsent"] = "Granted" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + + val marketingConsent = GDPRConsent.builder(false) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val state = ConsentState.builder() + .addGDPRConsentState("test1", marketingConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(true, expectedConsentValue) + + val expectedConsentValue2 = + afConsentResults.getValue("hasConsentForDataUsage") + TestCase.assertEquals(false, expectedConsentValue2) + + val expectedConsentValue3 = + afConsentResults.getValue("hasConsentForAdsPersonalization") + TestCase.assertEquals(true, expectedConsentValue3) + + val expectedConsentValue4 = + afConsentResults.getValue("hasConsentForAdStorage") + TestCase.assertEquals(true, expectedConsentValue4) + } + + @Test + @Throws(Exception::class) + fun testConsentMapping() { + val map = HashMap() + map["defaultAdStorageConsent"] = "Granted" + map["gdprApplies"] = "true" + map["consentMapping"] = + "[{\\\"jsmap\\\":null,\\\"map\\\":\\\"Performance\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_user_data\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"Marketing\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_personalization\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"testconsent\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_storage\\\"}]" + map["defaultAdUserDataConsent"] = "Denied" + map["defaultAdPersonalizationConsent"] = "Granted" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + + val performanceConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val marketingConsent = GDPRConsent.builder(false) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val testConsent = GDPRConsent.builder(false) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val state = ConsentState.builder() + .addGDPRConsentState("Performance", performanceConsent) + .addGDPRConsentState("Marketing", marketingConsent) + .addGDPRConsentState("testconsent", testConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(true, expectedConsentValue) + + val expectedConsentValue2 = + afConsentResults.getValue("hasConsentForDataUsage") + TestCase.assertEquals(true, expectedConsentValue2) + + val expectedConsentValue3 = + afConsentResults.getValue("hasConsentForAdsPersonalization") + TestCase.assertEquals(false, expectedConsentValue3) + + val expectedConsentValue4 = + afConsentResults.getValue("hasConsentForAdStorage") + TestCase.assertEquals(false, expectedConsentValue4) + } + + @Test + fun onConsentStateUpdatedTestPerformance_And_Marketing_are_true() { + val map = HashMap() + map["defaultAdStorageConsent"] = "Granted" + map["gdprApplies"] = "true" + map["consentMapping"] = + "[{\\\"jsmap\\\":null,\\\"map\\\":\\\"Performance\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_user_data\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"Marketing\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_personalization\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"testconsent\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_storage\\\"}]" + map["defaultAdUserDataConsent"] = "Denied" + map["defaultAdPersonalizationConsent"] = "Granted" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + + val performanceConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val marketingConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val state = ConsentState.builder() + .addGDPRConsentState("Performance", performanceConsent) + .addGDPRConsentState("Marketing", marketingConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(true, expectedConsentValue) + + val expectedConsentValue2 = + afConsentResults.getValue("hasConsentForDataUsage") + TestCase.assertEquals(true, expectedConsentValue2) + + val expectedConsentValue3 = + afConsentResults.getValue("hasConsentForAdsPersonalization") + TestCase.assertEquals(true, expectedConsentValue3) + + val expectedConsentValue4 = + afConsentResults.getValue("hasConsentForAdStorage") + TestCase.assertEquals(true, expectedConsentValue4) + } + + @Test + fun onConsentStateUpdatedTest_When_No_Defaults_Values() { + val map = HashMap() + map["gdprApplies"] = "true" + map["consentMapping"] = + "[{\\\"jsmap\\\":null,\\\"map\\\":\\\"Performance\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_user_data\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"Marketing\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_personalization\\\"},{\\\"jsmap\\\":null,\\\"map\\\":\\\"testconsent\\\",\\\"maptype\\\":\\\"ConsentPurposes\\\",\\\"value\\\":\\\"ad_storage\\\"}]" + + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + val marketingConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val performanceConsent = GDPRConsent.builder(true) + .document("parental_consent_agreement_v2") + .location("17 Cherry Tree Lan 3") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val state = ConsentState.builder() + .addGDPRConsentState("Marketing", marketingConsent) + .addGDPRConsentState("Performance", performanceConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(true, expectedConsentValue) + + val expectedConsentValue2 = + afConsentResults.getValue("hasConsentForDataUsage") + TestCase.assertEquals(true, expectedConsentValue2) + + val expectedConsentValue3 = + afConsentResults.getValue("hasConsentForAdsPersonalization") + TestCase.assertEquals(true, expectedConsentValue3) + + val notExpectedConsentKey = + afConsentResults.containsKey("hasConsentForAdStorage") + TestCase.assertEquals(false, notExpectedConsentKey) + } + + @Test + fun onConsentStateUpdatedTest_When_No_DATA_From_Server() { + + val marketingConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val performanceConsent = GDPRConsent.builder(true) + .document("parental_consent_agreement_v2") + .location("17 Cherry Tree Lan 3") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val state = ConsentState.builder() + .addGDPRConsentState("Marketing", marketingConsent) + .addGDPRConsentState("Performance", performanceConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + TestCase.assertEquals(0, appsflyer.getConsentState().size) + } + + @Test + fun onConsentStateUpdatedTest_No_consentMappingSDK() { + val map = HashMap() + map["gdprApplies"] = "true" + map["defaultAdStorageConsent"] = "Granted" + map["defaultAdUserDataConsent"] = "Denied" + map["defaultAdPersonalizationConsent"] = "Denied" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + val marketingConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val performanceConsent = GDPRConsent.builder(true) + .document("parental_consent_agreement_v2") + .location("17 Cherry Tree Lan 3") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val state = ConsentState.builder() + .addGDPRConsentState("Marketing", marketingConsent) + .addGDPRConsentState("Performance", performanceConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(true, expectedConsentValue) + + val expectedConsentValue2 = + afConsentResults.getValue("hasConsentForDataUsage") + TestCase.assertEquals(false, expectedConsentValue2) + + val expectedConsentValue3 = + afConsentResults.getValue("hasConsentForAdsPersonalization") + TestCase.assertEquals(false, expectedConsentValue3) + + val expectedConsentValue4 = + afConsentResults.getValue("hasConsentForAdStorage") + TestCase.assertEquals(true, expectedConsentValue4) + + } + + @Test + fun onConsentStateUpdatedTest_When_default_is_Unspecified_And_No_consentMappingSDK_And_GDPR_Not_Applied() { + val map = HashMap() + map["gdprApplies"] = "false" + map["defaultAdStorageConsent"] = "Unspecified" + map["defaultAdUserDataConsent"] = "Unspecified" + map["defaultAdPersonalizationConsent"] = "Unspecified" + + kit.configuration = + KitConfiguration.createKitConfiguration(JSONObject().put("as", map.toMutableMap())) + + val marketingConsent = GDPRConsent.builder(true) + .document("Test consent") + .location("17 Cherry Tree Lane") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + + val performanceConsent = GDPRConsent.builder(true) + .document("parental_consent_agreement_v2") + .location("17 Cherry Tree Lan 3") + .hardwareId("IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702") + .build() + val state = ConsentState.builder() + .addGDPRConsentState("Marketing", marketingConsent) + .addGDPRConsentState("Performance", performanceConsent) + .build() + filteredMParticleUser = FilteredMParticleUser.getInstance(user, kit) + + kit.onConsentStateUpdated(state, state, filteredMParticleUser) + + TestCase.assertEquals(1, appsflyer.getConsentState().size) + val afConsentResults = appsflyer.getConsentState() + val expectedConsentValue = + afConsentResults.getValue("isUserSubjectToGDPR") + TestCase.assertEquals(false, expectedConsentValue) + } + + @Test + fun testParseToNestedMap_When_JSON_Is_INVALID() { + var jsonInput = + "{'GDPR':{'marketing':'{:false,'timestamp':1711038269644:'Test consent','location':'17 Cherry Tree Lane','hardware_id':'IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702'}','performance':'{'consented':true,'timestamp':1711038269644,'document':'parental_consent_agreement_v2','location':'17 Cherry Tree Lan 3','hardware_id':'IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702'}'},'CCPA':'{'consented':true,'timestamp':1711038269644,'document':'ccpa_consent_agreement_v3','location':'17 Cherry Tree Lane','hardware_id':'IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702'}'}" + + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "parseToNestedMap", + String::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, jsonInput) + Assert.assertEquals(mutableMapOf(), result) + } + + @Test + fun testParseToNestedMap_When_JSON_Is_Empty() { + var jsonInput = "" + + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "parseToNestedMap", + String::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, jsonInput) + Assert.assertEquals(mutableMapOf(), result) + } + + @Test + fun testSearchKeyInNestedMap_When_Input_Key_Is_Empty_String() { + val map = mapOf( + "GDPR" to true, + "marketing" to mapOf( + "consented" to false, + "document" to mapOf( + "timestamp" to 1711038269644 + ) + ) + ) + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "searchKeyInNestedMap", Map::class.java, + Any::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, map, "") + Assert.assertEquals(null, result) + } + + @Test + fun testSearchKeyInNestedMap_When_Input_Is_Empty_Map() { + val emptyMap: Map = emptyMap() + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "searchKeyInNestedMap", Map::class.java, + Any::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, emptyMap, "1") + Assert.assertEquals(null, result) + } + + @Test + fun testParseConsentMapping_When_Input_Is_Empty_Json() { + val emptyJson = "" + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "parseConsentMapping", + String::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, emptyJson) + Assert.assertEquals(emptyMap(), result) + } + + @Test + fun testParseConsentMapping_When_Input_Is_Invalid_Json() { + var jsonInput = + "{'GDPR':{'marketing':'{:false,'timestamp':1711038269644:'Test consent','location':'17 Cherry Tree Lane','hardware_id':'IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702'}','performance':'{'consented':true,'timestamp':1711038269644,'document':'parental_consent_agreement_v2','location':'17 Cherry Tree Lan 3','hardware_id':'IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702'}'},'CCPA':'{'consented':true,'timestamp':1711038269644,'document':'ccpa_consent_agreement_v3','location':'17 Cherry Tree Lane','hardware_id':'IDFA:a5d934n0-232f-4afc-2e9a-3832d95zc702'}'}" + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "parseConsentMapping", + String::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, jsonInput) + Assert.assertEquals(emptyMap(), result) + } + + @Test + fun testParseConsentMapping_When_Input_Is_NULL() { + val method: Method = AppsFlyerKit::class.java.getDeclaredMethod( + "parseConsentMapping", + String::class.java + ) + method.isAccessible = true + val result = method.invoke(kit, null) + Assert.assertEquals(emptyMap(), result) + } + + private var emptyCoreCallbacks: CoreCallbacks = object : CoreCallbacks { + var activity = Activity() + override fun isBackgrounded(): Boolean = false + + override fun getUserBucket(): Int = 0 + + override fun isEnabled(): Boolean = false + + override fun setIntegrationAttributes(i: Int, map: Map) {} + + override fun getIntegrationAttributes(i: Int): Map? = null + + override fun getCurrentActivity(): WeakReference = WeakReference(activity) + + override fun getLatestKitConfiguration(): JSONArray? = null + + override fun getDataplanOptions(): MParticleOptions.DataplanOptions? = null + + override fun isPushEnabled(): Boolean = false + + override fun getPushSenderId(): String? = null + + override fun getPushInstanceId(): String? = null + + override fun getLaunchUri(): Uri? = null + + override fun getLaunchAction(): String? = null + + override fun getKitListener(): KitListener { + return object : KitListener { + override fun kitFound(kitId: Int) {} + override fun kitConfigReceived(kitId: Int, configuration: String?) {} + override fun kitExcluded(kitId: Int, reason: String?) {} + override fun kitStarted(kitId: Int) {} + override fun onKitApiCalled(kitId: Int, used: Boolean?, vararg objects: Any?) {} + override fun onKitApiCalled( + methodName: String?, + kitId: Int, + used: Boolean?, + vararg objects: Any? + ) { + } + } + } + } } \ No newline at end of file