This tests that the video element's controls in full screen mode flip the layout of the volume controls in RTL mode.


EVENT(webkitfullscreenchange)
EXPECTED (shadowRoot = internals.shadowRoot(video) != 'null') OK
EXPECTED (volumeBox = mediaControlsElement(shadowRoot.firstChild, '-webkit-media-controls-volume-slider-container') != 'null') OK
EXPECTED (volumeBox.classList.contains('uses-ltr-user-interface-layout-direction') == 'true') OK
EXPECTED (document.defaultView.getComputedStyle(volumeBox)['transform'] == 'none') OK
EXPECTED (volumeBox.classList.contains('uses-ltr-user-interface-layout-direction') == 'false') OK
EXPECTED (document.defaultView.getComputedStyle(volumeBox)['transform'] == 'matrix(-1, 0, 0, 1, 23, 0)') OK
EXPECTED (volumeBox.classList.contains('uses-ltr-user-interface-layout-direction') == 'true') OK
EXPECTED (document.defaultView.getComputedStyle(volumeBox)['transform'] == 'none') OK
END OF TEST

