
Tests that adding a text track does not make controls visible.

EVENT(canplaythrough)

** Initial state: no text tracks, controls should not be visible **
EXPECTED (video.textTracks.length == '0') OK
EXPECTED (video.controls == 'false') OK
EXPECTED (internals.shadowRoot(video) == 'null') OK

** Add a text track, controls should not become visible **
RUN(video.addTextTrack('captions'))
EXPECTED (video.textTracks.length == '1') OK
EXPECTED (video.controls == 'false') OK
EXPECTED (internals.shadowRoot(video) == 'null') OK

** Enable controls **
RUN(video.setAttribute('controls','controls'))
EXPECTED (video.textTracks.length == '1') OK
EXPECTED (video.controls == 'true') OK
EXPECTED (internals.shadowRoot(video) != 'null') OK
EXPECTED (controlsElement.style['display'] != 'none') OK

END OF TEST

