| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="../resources/media-controls-loader.js" type="text/javascript"></script> |
| <body> |
| <style type="text/css" media="screen"> |
| |
| .media-controls { |
| position: absolute; |
| top: 0; |
| left: 0; |
| } |
| |
| </style> |
| <script type="text/javascript"> |
| |
| window.jsTestIsAsync = true; |
| |
| description("Selecting a track in a <code>TracksPanel</code> with the keyboard."); |
| |
| const mediaControls = new MacOSInlineMediaControls({ width: 680, height: 300 }); |
| |
| mediaControls.tracksPanel.dataSource = { |
| tracksPanelNumberOfSections: function() |
| { |
| return 1; |
| }, |
| |
| tracksPanelTitleForSection: function(sectionIndex) |
| { |
| return `Title`; |
| }, |
| |
| tracksPanelNumberOfTracksInSection: function(sectionIndex) |
| { |
| return 3; |
| }, |
| |
| tracksPanelTitleForTrackInSection: function(trackIndex, sectionIndex) |
| { |
| return `Track`; |
| }, |
| |
| tracksPanelIsTrackInSectionSelected: function(trackIndex, sectionIndex) |
| { |
| return false; |
| } |
| }; |
| |
| mediaControls.tracksPanel.uiDelegate = { |
| tracksPanelSelectionDidChange: function(trackIndex, sectionIndex) |
| { |
| debug("mediaControls.tracksPanel.uiDelegate.tracksPanelSelectionDidChange() called"); |
| debug(`sectionIndex = ${sectionIndex}`); |
| debug(`trackIndex = ${trackIndex}`); |
| |
| debug(""); |
| mediaControls.element.remove(); |
| finishJSTest(); |
| } |
| }; |
| |
| document.body.appendChild(mediaControls.element); |
| |
| let trackElement; |
| |
| debug("mediaControls.showTracksPanel()"); |
| mediaControls.showTracksPanel(); |
| |
| scheduler.frameDidFire = function() |
| { |
| window.requestAnimationFrame(() => { |
| debug(""); |
| debug("Focusing the second track by pressing the down arrow key twice"); |
| |
| trackElement = mediaControls.tracksPanel.element.querySelectorAll("li")[1]; |
| trackElement.addEventListener("focus", () => { |
| debug("Obtained focus event"); |
| |
| debug(""); |
| debug("Activating the focused track by pressing the Enter key"); |
| window.requestAnimationFrame(() => eventSender.keyDown("Enter")); |
| }); |
| |
| eventSender.keyDown("ArrowDown"); |
| eventSender.keyDown("ArrowDown"); |
| }); |
| scheduler.frameDidFire = null; |
| } |
| |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |