  
Test for metadata tracks from Apple HLS stream.


** Set video.src, wait for media data to load
RUN(video.src = 'http://127.0.0.1:8000/media/resources/hls/metadata/prog_index.m3u8')

EVENT(addtrack)
EXPECTED (tracks.length == '1') OK
RUN(track = video.textTracks[0])
EXPECTED (track.kind == 'metadata') OK
EXPECTED (track.mode == 'disabled') OK
RUN(track.mode = 'hidden')
EVENT(canplaythrough)

** Start playback, wait for all cues to load
RUN(video.play())
EVENT(cuechange)
EVENT(cuechange)
EVENT(cuechange)
EVENT(cuechange)
EVENT(cuechange)
EVENT(cuechange)

** Validate cue data
* 1
EXPECTED (typeof(cue) != 'undefined') OK
EXPECTED (cue.type == 'org.id3') OK
EXPECTED (cue.data == 'null') OK
EXPECTED (cue.value != 'null') OK
EXPECTED (cue.value.key == '"TIT2"') OK
EXPECTED (cue.value.data == '"Stream Counting"') OK

* 2
EXPECTED (typeof(cue) != 'undefined') OK
EXPECTED (cue.type == 'org.id3') OK
EXPECTED (cue.data == 'null') OK
EXPECTED (cue.value != 'null') OK
EXPECTED (cue.value.key == '"TPE1"') OK
EXPECTED (cue.value.data == '"Andy"') OK

* 3
EXPECTED (typeof(cue) != 'undefined') OK
EXPECTED (cue.type == 'org.id3') OK
EXPECTED (cue.data == 'null') OK
EXPECTED (cue.value != 'null') OK
EXPECTED (cue.value.key == '"TALB"') OK
EXPECTED (cue.value.data == '"Greatest Hits"') OK

* 4
EXPECTED (typeof(cue) != 'undefined') OK
EXPECTED (cue.type == 'org.id3') OK
EXPECTED (cue.data == 'null') OK
EXPECTED (cue.value != 'null') OK
EXPECTED (cue.value.key == '"GEOB"') OK
EXPECTED (cue.value.data == '{}') OK
EXPECTED (cue.value.type == '"image/png"') OK
EXPECTED (cue.value.info == '"Our Hero"') OK
EXPECTED (cue.value.name == '"abe.png"') OK

* 5
EXPECTED (typeof(cue) != 'undefined') OK
EXPECTED (cue.type == 'org.id3') OK
EXPECTED (cue.data == 'null') OK
EXPECTED (cue.value != 'null') OK
EXPECTED (cue.value.key == '"APIC"') OK
EXPECTED (cue.value.data == '{}') OK
EXPECTED (cue.value.type == '"image/png"') OK

* 6
EXPECTED (typeof(cue) != 'undefined') OK
EXPECTED (cue.type == 'org.id3') OK
EXPECTED (cue.data == 'null') OK
EXPECTED (cue.value != 'null') OK
EXPECTED (cue.value.key == '"TXXX"') OK
EXPECTED (cue.value.data == '"Text Blob"') OK

** Extract images from cue data, validate by setting img.src
RUN(cueImageData = track.cues[3].value.data)
EXPECTED (cueImageData instanceof ArrayBuffer == 'true') OK
RUN(blobUrl = URL.createObjectURL(new Blob([cueImageData], { type: 'image/png' })))
RUN(imageElement.src = blobUrl)
EVENT(load)
EXPECTED (imageElement.width == '76') OK
EXPECTED (imageElement.height == '103') OK

RUN(cueImageData = track.cues[4].value.data)
EXPECTED (cueImageData instanceof ArrayBuffer == 'true') OK
RUN(blobUrl = URL.createObjectURL(new Blob([cueImageData], { type: 'image/png' })))
RUN(imageElement.src = blobUrl)
EVENT(load)
EXPECTED (imageElement.width == '100') OK
EXPECTED (imageElement.height == '100') OK

END OF TEST

