@@ -4,6 +4,8 @@ import com.mparticle.media.MediaSession
44import com.mparticle.media.events.*
55import com.mparticle.testutils.RandomUtils
66import junit.framework.Assert.*
7+ import org.junit.Assert
8+ import org.junit.Assert.assertNotEquals
79import org.junit.Test
810import java.lang.reflect.Method
911import java.util.*
@@ -477,6 +479,60 @@ class MediaSessionTest {
477479 loggedEvents.add(baseEvent)
478480 }
479481 }
482+
483+ @Test
484+ fun testLogMediaContentEnd () {
485+ val mparticle = MockMParticle ()
486+ val mediaSession = MediaSession .builder(mparticle) {
487+ title = " hello"
488+ mediaContentId = " 123"
489+ duration = 1000
490+ }
491+
492+ // logPlay is triggered to start media content time tracking.
493+ mediaSession.logPlay()
494+ // 1s delay added to account for the time spent on media content.
495+ Thread .sleep(1000 )
496+ mediaSession.logMediaContentEnd()
497+ // Another 1s delay added after logMediaContentEnd is triggered to
498+ // account for time spent on media session (total = 2s).
499+ Thread .sleep(1000 )
500+ mediaSession.logMediaSessionEnd()
501+
502+ val testContentTimeSpent = mediaSession.mediaContentTimeSpent
503+ val testTimeSpent = mediaSession.mediaTimeSpent
504+
505+ assertNotEquals(testContentTimeSpent, testTimeSpent)
506+ assertEquals(testContentTimeSpent, 1.0 )
507+ assertEquals(testTimeSpent, 2.0 )
508+ }
509+
510+ @Test
511+ fun testLogPause () {
512+ val mparticle = MockMParticle ()
513+ val mediaSession = MediaSession .builder(mparticle) {
514+ title = " hello"
515+ mediaContentId = " 123"
516+ duration = 1000
517+ }
518+
519+ // logPlay is triggered to start media content time tracking.
520+ mediaSession.logPlay()
521+ // 1s delay added to account for the time spent on media content.
522+ Thread .sleep(1000 )
523+ mediaSession.logPause()
524+ // Another 1s delay added after logPause is triggered to
525+ // account for time spent on media session (total = 2s).
526+ Thread .sleep(1000 )
527+ mediaSession.logMediaSessionEnd()
528+
529+ val testContentTimeSpent = mediaSession.mediaContentTimeSpent
530+ val testTimeSpent = mediaSession.mediaTimeSpent
531+
532+ assertNotEquals(testContentTimeSpent, testTimeSpent)
533+ assertEquals(testContentTimeSpent, 1.0 )
534+ assertEquals(testTimeSpent, 2.0 )
535+ }
480536}
481537
482538fun <T : Any > T.assertTrue (assertion : (T ) -> Boolean ) {
0 commit comments