<!DOCTYPE html>
<title>Test request Picture-in-Picture</title>
<script src="/common/media.js"></script>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/resources/testdriver.js"></script>
<script src="/resources/testdriver-vendor.js"></script>
<script src="resources/picture-in-picture-helpers.js"></script>
<body></body>
<script>
promise_test(async t => {
  const video = await loadVideo();
  return promise_rejects(t, 'NotAllowedError', video.requestPictureInPicture());
}, 'request Picture-in-Picture requires a user gesture');

promise_test(t => {
  const video = document.createElement('video');
  return promise_rejects(t, 'InvalidStateError',
      requestPictureInPictureWithTrustedClick(video));
}, 'request Picture-in-Picture requires loaded metadata for the video element');

promise_test(async t => {
  const video = document.createElement('video');
  await new Promise(resolve => {
    video.src = getAudioURI('/media/sound_5');
    video.onloadeddata = resolve;
  }).then(() => {
    return promise_rejects(t, 'InvalidStateError',
      requestPictureInPictureWithTrustedClick(video));
  })
}, 'request Picture-in-Picture requires video track for the video element');

promise_test(async t => {
  const video = await loadVideo();
  return requestPictureInPictureWithTrustedClick(video);
}, 'request Picture-in-Picture resolves on user click');
</script>
