This test checks if the playing event fires when the ready state changes from HAVE_METADATA to HAVE_FUTURE_DATA or higher.

EXPECTED (source.readyState == 'closed') OK
EVENT(loadstart)
EVENT(sourceopen)
RUN(sourceBuffer.appendBuffer(initSegment))
EVENT(loadedmetadata)
EVENT(updateend)
video.readyState : HAVE_METADATA
RUN(sourceBuffer.appendBuffer(sample))
EVENT(updateend)
video.readyState : HAVE_FUTURE_DATA
RUN(sourceBuffer.appendBuffer(sample))
EVENT(loadeddata)
EVENT(canplay)
EVENT(updateend)
EVENT(canplaythrough)
EVENT(playing)
video.readyState : HAVE_ENOUGH_DATA
RUN(sourceBuffer.remove(0,10))
EVENT(updateend)
EVENT(waiting)
video.readyState : HAVE_METADATA
RUN(sourceBuffer.appendBuffer(sample))
EVENT(updateend)
video.readyState : HAVE_METADATA
RUN(sourceBuffer.appendBuffer(sample))
EVENT(updateend)
EVENT(canplay)
EVENT(playing)
video.readyState : HAVE_ENOUGH_DATA
END OF TEST

