<script src="../../../resources/js-test-pre.js"></script>
<script src="../resources/media-controls-loader.js" type="text/javascript"></script>
<script src="../resources/media-controls-utils.js" type="text/javascript"></script>
<body>
<script type="text/javascript">

window.jsTestIsAsync = true;

description("Testing that text selection is turned off for <code>PiPPlacard</code>.");

const mediaControls = new MacOSInlineMediaControls({ width: 600, height: 300 });
mediaControls.placard = mediaControls.pipPlacard;
document.body.appendChild(mediaControls.element);

scheduler.frameDidFire = function()
{
    shouldBeEqualToString("window.getComputedStyle(document.querySelector('.description')).webkitUserSelect", "none");
    shouldBeEqualToString("window.getComputedStyle(document.querySelector('.description')).cursor", "default");

    mediaControls.element.remove();
    debug("");
    finishMediaControlsTest();
};

</script>
<script src="../../../resources/js-test-post.js"></script>
</body>
