  
Test play and pause with "remote control" interface.

EVENT(canplaythrough)
EVENT(canplaythrough)

** Play both videos, the last one started (video[1]) should get focus...
RUN(videos[0].play())
RUN(videos[1].play())

EVENT(playing)
EVENT(playing)

** Send a pause command, it should go to video[1].
RUN(internals.postRemoteControlCommand('pause'))

EVENT(pause)
EXPECTED (event.target.id == 'two') OK
EXPECTED (videos[0].paused == 'false') OK
EXPECTED (videos[1].paused == 'true') OK

** Pause video[0], so they both stop playing...
RUN(videos[0].pause())

EVENT(pause)
EXPECTED (event.target.id == 'one') OK
EXPECTED (videos[0].paused == 'true') OK
EXPECTED (videos[1].paused == 'true') OK

** Seek so video[1] will pause automatically when playback ends.
RUN(videos[0].currentTime = 0)
RUN(videos[1].currentTime = 5.5)

EVENT(seeked)
EVENT(seeked)

** Send a play command, it should go to videos[0] because it was playing most recently.
RUN(internals.postRemoteControlCommand('play'))

EVENT(playing)
EXPECTED (event.target.id == 'one') OK

** Start videos[1], wait for it to pause at duration.
RUN(videos[1].play())

EVENT(playing)
EXPECTED (event.target.id == 'two') OK

EVENT(pause)
EXPECTED (event.target.id == 'two') OK
EXPECTED (videos[0].paused == 'false') OK
EXPECTED (videos[1].paused == 'true') OK

** Send a pause command, videos[0] is still playing so it should get the command.
RUN(internals.postRemoteControlCommand('pause'))

EVENT(pause)
EXPECTED (event.target.id == 'one') OK
EXPECTED (videos[0].paused == 'true') OK
EXPECTED (videos[1].paused == 'true') OK

END OF TEST

