| <!DOCTYPE html><!-- webkit-test-runner [ enableModernMediaControls=false ] --> |
| <html> |
| <head> |
| <script src="../video-test.js"></script> |
| <script src="../media-file.js"></script> |
| <script src="../trackmenu-test.js"></script> |
| <script src="../media-controls.js"></script> |
| <script src="controls-test-helpers.js"></script> |
| <script> |
| var tester = new ControlsTest() |
| .whenReady(runTestsWithHiddenMenu) |
| .start(); |
| |
| function runTestsWithHiddenMenu() |
| { |
| findMediaElement(); |
| |
| var currentState = tester.currentState; |
| tester.test("We are using the apple idiom") |
| .value(currentState.idiom) |
| .isEqualTo("apple"); |
| |
| tester.startNewSection("Test when track menu is hidden"); |
| var statusState = tester.stateForControlsElement("Track Menu"); |
| |
| tester.test("Menu name is 'Track Menu'") |
| .value(statusState.name) |
| .isEqualTo("Track Menu"); |
| |
| tester.test("Menu does not exist") |
| .value(statusState.element) |
| .isEqualTo(null); |
| |
| tester.test("Text track not visible") |
| .value(tester.video.textTracks[0].mode) |
| .isEqualTo("disabled"); |
| |
| // Show the track menu. |
| internals.suspendAnimations(); |
| hideTrackMenu(); |
| showTrackMenu(); |
| window.setTimeout(runTestsWithVisibleMenu, 100); |
| } |
| |
| function runTestsWithVisibleMenu() |
| { |
| tester.startNewSection("Test with visible menu"); |
| var statusState = tester.stateForControlsElement("Track Menu", true); |
| |
| tester.test("Menu name is 'Track Menu'") |
| .value(statusState.name) |
| .isEqualTo("Track Menu"); |
| |
| var captionMenu = getTrackListElement(); |
| tester.test("Menu exists") |
| .value(captionMenu) |
| .isNotEqualTo(null); |
| |
| tester.test("id is 'audioAndTextTrackMenu'") |
| .value(captionMenu.id) |
| .isEqualTo("audioAndTextTrackMenu"); |
| |
| var menuList = captionMenu.firstChild.children[1]; |
| tester.test("Menu element contains <ul>") |
| .value(menuList.tagName) |
| .isEqualTo("UL"); |
| |
| var menuItem = menuList.firstChild; |
| tester.test("First menu item is selected") |
| .value(menuItem.className) |
| .isEqualTo("selected"); |
| |
| var checkImage = menuItem.children[0]; |
| tester.test("First menu item contains checkmark <img>") |
| .value(checkImage.tagName) |
| .isEqualTo("IMG"); |
| |
| tester.test("First menu item checkmark image is visible") |
| .value(getComputedStyle(checkImage).content) |
| .contains('url("data:image/svg+xml,<svg xmlns='); |
| |
| var menuItem = menuList.children[1]; |
| tester.test("Second menu item is not selected") |
| .value(menuItem.className) |
| .isNotEqualTo("selected"); |
| |
| var checkImage = menuItem.children[0]; |
| tester.test("Second menu item checkmark is not visible") |
| .value(getComputedStyle(checkImage).content) |
| .isEmptyString(); |
| |
| tester.end(); |
| } |
| |
| </script> |
| </head> |
| <body> |
| <p>This tests the track menu.</p> |
| <p>This test only runs in DRT!</p> |
| <video width="500" height="300" controls> |
| <track kind="captions" label="English Captions" src="../track/captions-webvtt/captions-fast.vtt" srclang="en"> |
| </video> |
| </body> |
| </html> |