Skip to content

Commit

Permalink
Add PlayLog test 15
Browse files Browse the repository at this point in the history
  • Loading branch information
stoyicker committed Jun 28, 2024
1 parent 6df8c18 commit b37f002
Showing 1 changed file with 52 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -773,6 +773,58 @@ internal class SingleMediaProductPlayLogTest {
eq(emptyMap()),
)
}

@Test
fun seekBeyondBounds() = runTest {
val gson = Gson()

player.playbackEngine.load(mediaProduct)
player.playbackEngine.play()
withContext(Dispatchers.Default.limitedParallelism(1)) {
delay(2.seconds)
while (player.playbackEngine.assetPosition < 2) {
delay(10.milliseconds)
}
player.playbackEngine.seek(10_000F)
withTimeout(8.seconds) {
player.playbackEngine.events.filter { it is Event.MediaProductEnded }.first()
}
}

eventReporterCoroutineScope.advanceUntilIdle()
verify(eventSender).sendEvent(
eq("playback_session"),
eq(ConsentCategory.NECESSARY),
argThat {
with(gson.fromJson(this, JsonObject::class.java)["payload"].asJsonObject) {
assertThat(get("startAssetPosition").asDouble).isAssetPositionEqualTo(0.0)
assertThat(get("endAssetPosition").asDouble)
.isAssetPositionEqualTo(MEDIA_PRODUCT_DURATION_SECONDS)
assertThat(get("actualProductId").asString).isEqualTo(mediaProduct.productId)
assertThat(get("sourceType")?.asString).isEqualTo(mediaProduct.sourceType)
assertThat(get("sourceId")?.asString).isEqualTo(mediaProduct.sourceId)
with(get("actions").asJsonArray) {
val stopAction =
gson.fromJson(this[0], PlaybackSession.Payload.Action::class.java)
assertThat(stopAction.actionType)
.isEqualTo(PlaybackSession.Payload.Action.Type.PLAYBACK_STOP)
assertThat(stopAction.assetPositionSeconds).isAssetPositionEqualTo(2.0)
val startAction =
gson.fromJson(this[1], PlaybackSession.Payload.Action::class.java)
assertThat(startAction.actionType)
.isEqualTo(PlaybackSession.Payload.Action.Type.PLAYBACK_START)
assertThat(startAction.assetPositionSeconds)
.isAssetPositionEqualTo(MEDIA_PRODUCT_DURATION_SECONDS)
val perfectResumeTimestamp = stopAction.timestamp
assertThat(startAction.timestamp)
.isBetween(perfectResumeTimestamp - 500, perfectResumeTimestamp + 500)
}
}
true
},
eq(emptyMap()),
)
}
}

private const val MEDIA_PRODUCT_DURATION_SECONDS = 5.055

0 comments on commit b37f002

Please sign in to comment.