chromium/third_party/blink/web_tests/media/picture-in-picture/controls/picture-in-picture-button.html

<!DOCTYPE html>
<title>media controls picture in picture button</title>
<script src="../../../resources/testharness.js"></script>
<script src="../../../resources/testharnessreport.js"></script>
<script src="../../media-file.js"></script>
<script src="../../media-controls.js"></script>
<script src="../utils.js"></script>
<body>
<video controls></video>
<script>
async_test(t => {
  var video = document.querySelector("video");
  video.src = "../../content/test.ogv";
  enableTestMode(video);

  video.onloadedmetadata = t.step_func(function() {
    assert_true(isPictureInPictureButtonEnabled(video), "button should exist");

    video.addEventListener('enterpictureinpicture', t.step_func(() => {
      setTimeout(t.step_func(() => {
        assert_true(isPictureInPictureButtonEnabled(video), "button should exist");
        clickPictureInPictureButton(video);
      }));
    }), { once: true });

    video.addEventListener('leavepictureinpicture', t.step_func(() => {
      setTimeout(t.step_func_done(() => {
        assert_true(isPictureInPictureButtonEnabled(video), "button should exist");
      }));
    }), { once: true });

    clickPictureInPictureButton(video);
  });
});
</script>
</body>