|
function getTrackListElement()
a/LayoutTests/media/trackmenu-test.js_sec1
|
| 42 |
return trackListElement; |
42 |
return trackListElement; |
| 43 |
} |
43 |
} |
| 44 |
|
44 |
|
| 45 |
function trackMenuList() |
45 |
function trackMenuListByLabel(label) |
| 46 |
{ |
46 |
{ |
| 47 |
trackListElement = getTrackListElement(); |
47 |
trackListElement = getTrackListElement(); |
| 48 |
if (!trackListElement){ |
48 |
if (!trackListElement){ |
|
function trackMenuList()
a/LayoutTests/media/trackmenu-test.js_sec2
|
| 50 |
return; |
50 |
return; |
| 51 |
} |
51 |
} |
| 52 |
|
52 |
|
|
|
53 |
var trackLists = trackListElement.querySelectorAll("ul"); |
| 54 |
var trackList = Array.prototype.find.call(trackLists, function(item) { |
| 55 |
return item.getAttribute('aria-labelledby') === label; |
| 56 |
}); |
| 57 |
|
| 58 |
|
| 53 |
// Track list should have a <ul> with <li> children. |
59 |
// Track list should have a <ul> with <li> children. |
| 54 |
var trackList = trackListElement.querySelector("ul"); |
|
|
| 55 |
if (!trackList) { |
60 |
if (!trackList) { |
| 56 |
failTest("Could not find a child ul element in track list menu"); |
61 |
failTest("Could not find a child ul element in track list menu"); |
| 57 |
return; |
62 |
return; |
|
function trackMenuList()
a/LayoutTests/media/trackmenu-test.js_sec3
|
| 65 |
return trackListItems; |
70 |
return trackListItems; |
| 66 |
} |
71 |
} |
| 67 |
|
72 |
|
| 68 |
function indexOfMenuItemBeginningWith(title) |
73 |
function captionTrackMenuList() |
|
|
74 |
{ |
| 75 |
return trackMenuListByLabel('webkitMediaControlsClosedCaptionsHeading'); |
| 76 |
} |
| 77 |
|
| 78 |
function audioTrackMenuList() |
| 79 |
{ |
| 80 |
return trackMenuListByLabel('webkitMediaControlsAudioTrackHeading'); |
| 81 |
} |
| 82 |
|
| 83 |
function indexOfMenuItemBeginningWith(title, trackMenuItems) |
| 69 |
{ |
84 |
{ |
| 70 |
var trackMenuItems = trackMenuList(); |
|
|
| 71 |
for (i = 0; i < trackMenuItems.length; ++i) { |
85 |
for (i = 0; i < trackMenuItems.length; ++i) { |
| 72 |
if (trackMenuItems[i].textContent.indexOf(title) == 0) |
86 |
if (trackMenuItems[i].textContent.indexOf(title) == 0) |
| 73 |
break; |
87 |
break; |
|
function indexOfMenuItemBeginningWith(title)
a/LayoutTests/media/trackmenu-test.js_sec4
|
| 75 |
return (i < trackMenuItems.length) ? i : -1; |
89 |
return (i < trackMenuItems.length) ? i : -1; |
| 76 |
} |
90 |
} |
| 77 |
|
91 |
|
| 78 |
function selectCaptionMenuItem(title) |
92 |
function indexOfCaptionMenuItemBeginningWith(title) |
| 79 |
{ |
93 |
{ |
| 80 |
var trackMenuItems = trackMenuList(); |
94 |
return indexOfMenuItemBeginningWith(title, captionTrackMenuList()); |
| 81 |
var index = indexOfMenuItemBeginningWith(title); |
95 |
} |
| 82 |
if (index < 0) { |
|
|
| 83 |
failTest("Menu item " + title + " not found in track list menu."); |
| 84 |
return; |
| 85 |
} |
| 86 |
|
96 |
|
|
|
97 |
function indexOfAudioTrackMenuItemBeginningWith(title) |
| 98 |
{ |
| 99 |
return indexOfMenuItemBeginningWith(title, audioTrackMenuList()); |
| 100 |
} |
| 101 |
|
| 102 |
function selectMenuItemFromList(title, trackMenuItems, index) |
| 103 |
{ |
| 87 |
consoleWrite("- click on '" + title + "' menu item."); |
104 |
consoleWrite("- click on '" + title + "' menu item."); |
| 88 |
var selectedTrackItem = trackMenuItems[index]; |
105 |
var selectedTrackItem = trackMenuItems[index]; |
| 89 |
var boundingRect = selectedTrackItem.getBoundingClientRect(); |
106 |
var boundingRect = selectedTrackItem.getBoundingClientRect(); |
|
function selectCaptionMenuItem(title)
a/LayoutTests/media/trackmenu-test.js_sec5
|
| 94 |
eventSender.mouseUp(); |
111 |
eventSender.mouseUp(); |
| 95 |
} |
112 |
} |
| 96 |
|
113 |
|
|
|
114 |
function selectCaptionMenuItem(title) |
| 115 |
{ |
| 116 |
var index = indexOfCaptionMenuItemBeginningWith(title); |
| 117 |
if (index < 0) { |
| 118 |
failTest("Menu item " + title + " not found in track list menu."); |
| 119 |
return; |
| 120 |
} |
| 121 |
|
| 122 |
selectMenuItemFromList(title, captionTrackMenuList(), index); |
| 123 |
} |
| 124 |
|
| 125 |
function selectAudioTrackMenuItem(title) |
| 126 |
{ |
| 127 |
var index = indexOfAudioTrackMenuItemBeginningWith(title); |
| 128 |
if (index < 0) { |
| 129 |
failTest("Menu item " + title + " not found in track list menu."); |
| 130 |
return; |
| 131 |
} |
| 132 |
|
| 133 |
selectMenuItemFromList(title, audioTrackMenuList(), index); |
| 134 |
} |
| 135 |
|
| 97 |
function showTrackMenu() |
136 |
function showTrackMenu() |
| 98 |
{ |
137 |
{ |
| 99 |
clickCCButton(); |
138 |
clickCCButton(); |
|
function hideTrackMenu()
a/LayoutTests/media/trackmenu-test.js_sec6
|
| 111 |
|
150 |
|
| 112 |
function listTrackMenu() |
151 |
function listTrackMenu() |
| 113 |
{ |
152 |
{ |
| 114 |
var trackListItems = trackMenuList(); |
153 |
var trackListItems = captionTrackMenuList(); |
| 115 |
consoleWrite("Track menu:"); |
154 |
consoleWrite("Track menu:"); |
| 116 |
for (i = 0; i < trackListItems.length; i++) { |
155 |
for (i = 0; i < trackListItems.length; i++) { |
| 117 |
var logString = i + ": \"" + trackListItems[i].textContent + "\""; |
156 |
var logString = i + ": \"" + trackListItems[i].textContent + "\""; |