From b50b9a94a25909eae0d8ca3d83be5ced692244ca Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Fri, 23 May 2025 12:27:32 -0400 Subject: [PATCH 1/2] fix: Correct the mapping of the mediaContentId key in the segment summary event --- media/src/main/java/com/mparticle/media/MediaSession.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/media/src/main/java/com/mparticle/media/MediaSession.kt b/media/src/main/java/com/mparticle/media/MediaSession.kt index dd720fa..7eb875b 100644 --- a/media/src/main/java/com/mparticle/media/MediaSession.kt +++ b/media/src/main/java/com/mparticle/media/MediaSession.kt @@ -545,7 +545,7 @@ class MediaSession protected constructor(builder: Builder) { sessionId?.let { customAttributes[mediaSessionIdKey] = it } - customAttributes[mediaContentId] = mediaContentId + customAttributes[contentIdKey] = mediaContentId customAttributes[segmentIndexKey] = segmentSummary.index.toString() segmentSummary.title?.let { customAttributes[segmentTitleKey] = it From aa9da0bb766d68bd42a794838b97354c3c206863 Mon Sep 17 00:00:00 2001 From: Mansi Pandya Date: Tue, 3 Jun 2025 14:40:04 -0400 Subject: [PATCH 2/2] Added Test cases --- .../java/com/mparticle/MediaSessionTest.kt | 59 +++++++++++++++++++ 1 file changed, 59 insertions(+) diff --git a/media/src/test/java/com/mparticle/MediaSessionTest.kt b/media/src/test/java/com/mparticle/MediaSessionTest.kt index 1e0e352..538f59d 100644 --- a/media/src/test/java/com/mparticle/MediaSessionTest.kt +++ b/media/src/test/java/com/mparticle/MediaSessionTest.kt @@ -1,5 +1,6 @@ package com.mparticle +import com.mparticle.media.MediaSegmentSummary import com.mparticle.media.MediaSession import com.mparticle.media.events.* import com.mparticle.testutils.RandomUtils @@ -464,6 +465,64 @@ class MediaSessionTest { events[9].assertTrue { it.eventName == MediaEventName.AD_BREAK_END} } + @Test + fun testLogSegmentSummary() { + val mparticle = MockMParticle() + val mediaSession = MediaSession.builder(mparticle) { + title = "hello" + mediaContentId ="123" + duration =1000 + } + + val events = mutableListOf() + mediaSession.mediaEventListener = { event -> + events.add(event) + } + + mediaSession.logSegmentStart{} + + mediaSession.logSegmentEnd() + assertEquals(2, events.size) + events.forEach { + it.mediaContent.apply { + assertEquals("hello", name) + assertEquals("123", contentId) + assertEquals(1000L, duration) + } + } + assertNotNull(mparticle.loggedEvents[2].customAttributes) + assertNotNull(mparticle.loggedEvents[2].customAttributes?.get("content_id")) + assertEquals("123",mparticle.loggedEvents[2].customAttributes?.get("content_id")) + } + + @Test + fun testLogSegmentSummary_When_Content_ID_IS_NULL() { + val mparticle = MockMParticle() + val mediaSession = MediaSession.builder(mparticle) { + title = "hello" + duration =1000 + } + + val events = mutableListOf() + mediaSession.mediaEventListener = { event -> + events.add(event) + } + + mediaSession.logSegmentStart{} + + mediaSession.logSegmentEnd() + assertEquals(2, events.size) + events.forEach { + it.mediaContent.apply { + assertEquals("hello", name) + assertEquals(1000L, duration) + } + } + assertNotNull(mparticle.loggedEvents[2].customAttributes) + assertNotNull(mparticle.loggedEvents[2].customAttributes?.get("content_id")) + assertEquals("",mparticle.loggedEvents[2].customAttributes?.get("content_id")) + } + fun BaseEvent.isPlayheadEvent(): Boolean { return if (this is MediaEvent) { eventName == MediaEventName.UPDATE_PLAYHEAD_POSITION