blob: 4e9941a788375acaad2fe963c7250c1e6710af24 [file] [log] [blame]
<!doctype html>
<title>activation behavior with shadow children</title>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script>
internals.settings.setMediaControlsOverlayPlayButtonEnabled(true);
</script>
<video controls></video>
<script>
function shouldTogglePlayState(shadowChild)
{
var id = internals.shadowPseudoId(shadowChild);
if (id == "-webkit-media-controls")
return true;
if (id == "-webkit-media-controls-play-button")
return true;
if (id == "-webkit-media-controls-overlay-play-button")
return true;
if (id == "-webkit-media-controls-panel")
return false;
return shouldTogglePlayState(shadowChild.parentNode);
}
function shouldClick(shadowChild)
{
var id = internals.shadowPseudoId(shadowChild);
// The cast buttons are only visible if there are remote routes. Clicking
// when not visible violates sound assumptions made in HTMLMediaElement.
if (id == "-internal-media-controls-cast-button")
return false;
if (id == "-internal-media-controls-overlay-cast-button")
return false;
return true;
}
test(function()
{
var v = document.querySelector("video");
var shadowChildren = internals.shadowRoot(v).querySelectorAll("*");
shadowChildren = Array.prototype.filter.call(shadowChildren, shouldClick);
shadowChildren.forEach(function(shadowChild)
{
v.pause();
shadowChild.click();
assert_equals(v.paused, !shouldTogglePlayState(shadowChild),
"paused state after click element with pseudo id '"
+ internals.shadowPseudoId(shadowChild) + "'");
});
});
</script>