@@ -30,6 +30,7 @@ import com.scribd.armadillo.models.DownloadState
30
30
import com.scribd.armadillo.models.DrmState
31
31
import com.scribd.armadillo.models.DrmType
32
32
import com.scribd.armadillo.models.InternalState
33
+ import com.scribd.armadillo.models.MediaControlState
33
34
import com.scribd.armadillo.models.PlaybackProgress
34
35
import com.scribd.armadillo.models.PlaybackState
35
36
import com.scribd.armadillo.time.milliseconds
@@ -157,7 +158,7 @@ class ReducerTest {
157
158
val identicalActions = listOf (MockModels .progressAction(), MockModels .progressAction())
158
159
var appState2 = MockModels .appState()
159
160
identicalActions.forEach {
160
- appState2 = Reducer .reduce(appState2 , it)
161
+ appState2 = Reducer .reduce(appState1 , it)
161
162
}
162
163
163
164
assertThat(appState1).isEqualTo(appState2)
@@ -200,8 +201,8 @@ class ReducerTest {
200
201
201
202
@Test
202
203
fun reduce_skipNext_clearsOtherSeekControls () {
203
- Reducer .reduce(MockModels .appState(), SkipPrevAction (100 .milliseconds))
204
- val secondSeek = Reducer .reduce(MockModels .appState() , SkipNextAction (4000 .milliseconds))
204
+ val firstState = Reducer .reduce(MockModels .appState(), SkipPrevAction (100 .milliseconds))
205
+ val secondSeek = Reducer .reduce(firstState , SkipNextAction (4000 .milliseconds))
205
206
206
207
assertThat(secondSeek.playbackInfo?.controlState?.isFastForwarding ? : true ).isFalse
207
208
assertThat(secondSeek.playbackInfo?.controlState?.isRewinding ? : true ).isFalse
@@ -212,8 +213,8 @@ class ReducerTest {
212
213
213
214
@Test
214
215
fun reduce_skipPrev_clearsOtherSeekControls () {
215
- Reducer .reduce(MockModels .appState(), SkipNextAction (100 .milliseconds))
216
- val secondSeek = Reducer .reduce(MockModels .appState() , SkipPrevAction (4000 .milliseconds))
216
+ val firstState = Reducer .reduce(MockModels .appState(), SkipNextAction (100 .milliseconds))
217
+ val secondSeek = Reducer .reduce(firstState , SkipPrevAction (4000 .milliseconds))
217
218
218
219
assertThat(secondSeek.playbackInfo?.controlState?.isFastForwarding ? : true ).isFalse
219
220
assertThat(secondSeek.playbackInfo?.controlState?.isRewinding ? : true ).isFalse
@@ -224,8 +225,8 @@ class ReducerTest {
224
225
225
226
@Test
226
227
fun reduce_fastForward_clearsOtherSeekControls () {
227
- Reducer .reduce(MockModels .appState(), RewindAction (100 .milliseconds))
228
- val secondSeek = Reducer .reduce(MockModels .appState() , FastForwardAction (4000 .milliseconds))
228
+ val firstState = Reducer .reduce(MockModels .appState(), RewindAction (100 .milliseconds))
229
+ val secondSeek = Reducer .reduce(firstState , FastForwardAction (4000 .milliseconds))
229
230
230
231
assertThat(secondSeek.playbackInfo?.controlState?.isPrevChapter ? : true ).isFalse
231
232
assertThat(secondSeek.playbackInfo?.controlState?.isRewinding ? : true ).isFalse
@@ -236,8 +237,8 @@ class ReducerTest {
236
237
237
238
@Test
238
239
fun reduce_rewind_clearsOtherSeekControls () {
239
- Reducer .reduce(MockModels .appState(), FastForwardAction (100 .milliseconds))
240
- val secondSeek = Reducer .reduce(MockModels .appState() , RewindAction (4000 .milliseconds))
240
+ val firstState = Reducer .reduce(MockModels .appState(), FastForwardAction (100 .milliseconds))
241
+ val secondSeek = Reducer .reduce(firstState , RewindAction (4000 .milliseconds))
241
242
242
243
assertThat(secondSeek.playbackInfo?.controlState?.isPrevChapter ? : true ).isFalse
243
244
assertThat(secondSeek.playbackInfo?.controlState?.isFastForwarding ? : true ).isFalse
@@ -246,22 +247,33 @@ class ReducerTest {
246
247
assertThat(secondSeek.playbackInfo?.controlState?.isSeeking).isTrue
247
248
}
248
249
250
+ @Test
251
+ fun reduce_seekStart_setsSeekControls () {
252
+ val initialState = MockModels .appState()
253
+ val seekState = Reducer .reduce(initialState, SeekAction (true , 300 .milliseconds))
254
+
255
+ assertThat(seekState.playbackInfo?.progress).isEqualTo(initialState.playbackInfo?.progress)
256
+ assertThat(seekState.playbackInfo?.controlState?.isSeeking).isTrue
257
+ assertThat(seekState.playbackInfo?.controlState?.seekTarget).isEqualTo(300 .milliseconds)
258
+ }
259
+
249
260
@Test
250
261
fun reduce_seekFinish_allSeekControlsFalse () {
251
- Reducer .reduce(MockModels .appState(), FastForwardAction (100 .milliseconds))
252
- val secondSeek = Reducer .reduce(MockModels .appState() , SeekAction (false , null ))
262
+ val firstState = Reducer .reduce(MockModels .appState(), FastForwardAction (100 .milliseconds))
263
+ val secondSeek = Reducer .reduce(firstState , SeekAction (false , 300 .milliseconds ))
253
264
254
265
assertThat(secondSeek.playbackInfo?.controlState?.isFastForwarding ? : true ).isFalse
255
266
assertThat(secondSeek.playbackInfo?.controlState?.isRewinding ? : true ).isFalse
256
267
assertThat(secondSeek.playbackInfo?.controlState?.isPrevChapter ? : true ).isFalse
257
268
assertThat(secondSeek.playbackInfo?.controlState?.isNextChapter ? : true ).isFalse
258
269
assertThat(secondSeek.playbackInfo?.controlState?.isSeeking).isFalse
270
+ assertThat(secondSeek.playbackInfo?.progress?.positionInDuration).isEqualTo(300 .milliseconds)
259
271
}
260
272
261
273
@Test
262
274
fun reduce_playbackStopDuringSeek_clearSeekControls () {
263
- Reducer .reduce(MockModels .appState(), FastForwardAction (100000 .milliseconds))
264
- val state = Reducer .reduce(MockModels .appState() , PlayerStateAction (PlaybackState .NONE ))
275
+ val firstState = Reducer .reduce(MockModels .appState(), FastForwardAction (100000 .milliseconds))
276
+ val state = Reducer .reduce(firstState , PlayerStateAction (PlaybackState .NONE ))
265
277
266
278
assertThat(state.playbackInfo?.controlState?.isStopping).isTrue
267
279
assertThat(state.playbackInfo?.controlState?.isFastForwarding ? : true ).isFalse
0 commit comments