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
27 changes: 27 additions & 0 deletions .run/Full Test and Lint.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Full Test and Lint" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="-PisRelease=true" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="test" />
<option value="lint" />
<option value="ktlintCheck" />
<option value=":android-kit-base:testRelease" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>true</RunAsTest>
<method v="2" />
</configuration>
</component>
25 changes: 25 additions & 0 deletions .run/Lint.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Lint" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="lint" />
<option value="ktlintCheck" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>false</RunAsTest>
<method v="2" />
</configuration>
</component>
24 changes: 24 additions & 0 deletions .run/Test.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Test" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value="test" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>true</RunAsTest>
<method v="2" />
</configuration>
</component>
24 changes: 24 additions & 0 deletions .run/Verify kits.run.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
<component name="ProjectRunConfigurationManager">
<configuration default="false" name="Verify kits" type="GradleRunConfiguration" factoryName="Gradle">
<ExternalSystemSettings>
<option name="executionName" />
<option name="externalProjectPath" value="$PROJECT_DIR$" />
<option name="externalSystemIdString" value="GRADLE" />
<option name="scriptParameters" value="-PisRelease=true" />
<option name="taskDescriptions">
<list />
</option>
<option name="taskNames">
<list>
<option value=":android-kit-base:testRelease" />
</list>
</option>
<option name="vmOptions" />
</ExternalSystemSettings>
<ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
<DebugAllEnabled>false</DebugAllEnabled>
<RunAsTest>true</RunAsTest>
<method v="2" />
</configuration>
</component>
2 changes: 2 additions & 0 deletions android-core/proguard.pro
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,8 @@
-keep class com.mparticle.MParticle$MpRoktEventCallback { *; }
-keep class com.mparticle.MParticle$UnloadReasons { *; }
-keep class com.mparticle.MParticle$Rokt { *; }
-keep class com.mparticle.WrapperSdk { *; }
-keep class com.mparticle.WrapperSdkVersion { *; }

-keep class com.mparticle.Session { *; }
-keep class com.mparticle.MPEvent { *; }
Expand Down
4 changes: 4 additions & 0 deletions android-core/src/main/java/com/mparticle/MParticle.java
Original file line number Diff line number Diff line change
Expand Up @@ -388,6 +388,10 @@ public void setWrapperSdk(@NotNull WrapperSdk wrapperSdk, @NotNull String versio
if (this.wrapperSdkVersion.getSdk() == WrapperSdk.WrapperNone && (wrapperSdk != WrapperSdk.WrapperNone && !version.isEmpty())) {
this.wrapperSdkVersion = new WrapperSdkVersion(wrapperSdk, version);
}

if (mConfigManager.isEnabled()) {
mKitManager.setWrapperSdkVersion(wrapperSdkVersion);
}
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import com.mparticle.MPEvent;
import com.mparticle.MParticle;
import com.mparticle.MParticleOptions;
import com.mparticle.WrapperSdkVersion;
import com.mparticle.consent.ConsentState;
import com.mparticle.identity.IdentityApiRequest;
import com.mparticle.identity.MParticleUser;
Expand Down Expand Up @@ -651,12 +652,12 @@ public void reset() {
}

@Override
public void execute(String viewName,
Map<String, String> attributes,
MParticle.MpRoktEventCallback mpRoktEventCallback,
Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
Map<String, WeakReference<Typeface>> fontTypefaces,
RoktConfig config) {
public void execute(@NonNull String viewName,
@NonNull Map<String, String> attributes,
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
@Nullable RoktConfig config) {
if (mKitManager != null) {
mKitManager.execute(viewName,
attributes,
Expand All @@ -667,6 +668,13 @@ public void execute(String viewName,
}
}

@Override
public void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion) {
if (mKitManager != null) {
mKitManager.setWrapperSdkVersion(wrapperSdkVersion);
}
}

@Override
public void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status) {
if (mKitManager != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.mparticle.AttributionResult;
import com.mparticle.BaseEvent;
import com.mparticle.MPEvent;
import com.mparticle.MParticle;
import com.mparticle.MParticleOptions;
import com.mparticle.WrapperSdkVersion;
import com.mparticle.consent.ConsentState;
import com.mparticle.identity.IdentityApiRequest;
import com.mparticle.identity.MParticleUser;
Expand Down Expand Up @@ -123,12 +125,14 @@ public interface KitManager {

void reset();

void execute(String viewName,
Map<String, String> attributes,
MParticle.MpRoktEventCallback mpRoktEventCallback,
Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
Map<String, WeakReference<Typeface>> fontTypefaces,
RoktConfig config);
void execute(@NonNull String viewName,
@NonNull Map<String, String> attributes,
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
@Nullable RoktConfig config);

void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion);

void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status);

Expand Down
3 changes: 2 additions & 1 deletion android-core/src/main/kotlin/com/mparticle/WrapperSdk.kt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@ enum class WrapperSdk(wrapperSdkId: Int, wrapperSdkName: String) {
WrapperSdkReactNative(2, "React Native"),
WrapperSdkCordova(3, "Cordova"),
WrapperXamarin(4, "Xamarin"),
WrapperFlutter(5, "Flutter");
WrapperFlutter(5, "Flutter"),
WrapperMaui(6, "Maui");
}

/**
Expand Down
25 changes: 25 additions & 0 deletions android-core/src/test/kotlin/com/mparticle/MParticleTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -530,6 +530,31 @@ class MParticleTest {
verify(instance.mKitManager, never()).execute(any(), any(), any(), any(), any(), any())
}

@Test
fun testRoktSetWrapperSdk_whenEnabled() {
val instance: MParticle = InnerMockMParticle()
MParticle.setInstance(instance)
`when`(instance.mConfigManager.isEnabled()).thenReturn(true)

val expectedSdk = WrapperSdk.WrapperFlutter
val expectedVersion = "1.0.0"

instance.setWrapperSdk(expectedSdk, expectedVersion)

verify(instance.mKitManager).setWrapperSdkVersion(WrapperSdkVersion(expectedSdk, expectedVersion))
}

@Test
fun testRoktSetWrapperSdk_whenDisabled_kitManagerNotCalled() {
val instance: MParticle = InnerMockMParticle()
MParticle.setInstance(instance)
`when`(instance.mConfigManager.isEnabled()).thenReturn(false)

instance.rokt.selectPlacements("basicView", HashMap())

verify(instance.mKitManager, never()).setWrapperSdkVersion(any())
}

@Test
fun testReportConversion_withBasicParams_whenEnabled() {
var instance: MParticle = InnerMockMParticle()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,20 @@ import com.mparticle.MPEvent
import com.mparticle.MParticle
import com.mparticle.MParticleOptions
import com.mparticle.MockMParticle
import com.mparticle.WrapperSdk
import com.mparticle.WrapperSdkVersion
import com.mparticle.commerce.CommerceEvent
import com.mparticle.internal.PushRegistrationHelper.PushRegistration
import com.mparticle.testutils.RandomUtils
import org.json.JSONArray
import org.junit.Assert
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.any
import org.mockito.Mockito
import org.mockito.Mockito.mock
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.powermock.api.mockito.PowerMockito
import org.powermock.core.classloader.annotations.PrepareForTest
import org.powermock.modules.junit4.PowerMockRunner
Expand Down Expand Up @@ -605,4 +611,45 @@ class KitFrameworkWrapperTest {
Assert.assertEquals(mockIntegrationAttributes1, coreCallbacks.getIntegrationAttributes(1))
Assert.assertEquals(mockIntegrationAttributes2, coreCallbacks.getIntegrationAttributes(2))
}

@Test
fun testSetWrapperSdkVersion_noCalls() {
val wrapper = KitFrameworkWrapper(
mock(
Context::class.java
),
mock(ReportingManager::class.java),
mock(ConfigManager::class.java),
mock(AppStateManager::class.java),
true,
mock(MParticleOptions::class.java)
)

val mockKitManager = mock(KitManager::class.java)
wrapper.setKitManager(mockKitManager)

verify(mockKitManager, times(0)).setWrapperSdkVersion(any())
}

@Test
fun testSetWrapperSdkVersion_kitManagerSet_setWrapperVersionCalled() {
val wrapper = KitFrameworkWrapper(
mock(
Context::class.java
),
mock(ReportingManager::class.java),
mock(ConfigManager::class.java),
mock(AppStateManager::class.java),
true,
mock(MParticleOptions::class.java)
)

val mockKitManager = mock(KitManager::class.java)
wrapper.setKitManager(mockKitManager)

val expectedSdkVersion = WrapperSdkVersion(WrapperSdk.WrapperFlutter, "1.0.0")
wrapper.setWrapperSdkVersion(expectedSdkVersion)

verify(mockKitManager).setWrapperSdkVersion(expectedSdkVersion)
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import com.mparticle.BaseEvent;
import com.mparticle.MPEvent;
import com.mparticle.MParticle;
import com.mparticle.WrapperSdkVersion;
import com.mparticle.commerce.CommerceEvent;
import com.mparticle.consent.ConsentState;
import com.mparticle.identity.MParticleUser;
Expand Down Expand Up @@ -613,13 +614,21 @@ public interface BatchListener {
}

public interface RoktListener {
void execute(String viewName,
Map<String, String> attributes,
MParticle.MpRoktEventCallback mpRoktEventCallback,
Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
Map<String, WeakReference<Typeface>> fontTypefaces,
FilteredMParticleUser user,
RoktConfig config);
void execute(@NonNull String viewName,
@NonNull Map<String, String> attributes,
@Nullable MParticle.MpRoktEventCallback mpRoktEventCallback,
@Nullable Map<String, WeakReference<RoktEmbeddedView>> placeHolders,
@Nullable Map<String, WeakReference<Typeface>> fontTypefaces,
@Nullable FilteredMParticleUser user,
@Nullable RoktConfig config);

/**
* Set the SDK version of the mParticle SDK.
* This should match the value set in MParticle.getWrapperSdkVersion()
*
* @param wrapperSdkVersion the version of the mParticle SDK
*/
void setWrapperSdkVersion(@NonNull WrapperSdkVersion wrapperSdkVersion);

void purchaseFinalized(@NonNull String placementId, @NonNull String catalogItemId, boolean status);
}
Expand Down
Loading
Loading