| <!DOCTYPE html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script> |
| |
| const videoElementTests = |
| [ |
| { |
| createDetector: () => { return new FaceDetector(); }, |
| name: "Face - detect(HTMLVideoElement)", |
| }, |
| { |
| createDetector: () => { return new BarcodeDetector(); }, |
| name: "Barcode - detect(HTMLVideoElement)", |
| } |
| ]; |
| |
| for (let videoElementTest of videoElementTests) { |
| |
| // Detector's detect() rejects on a HAVE_NOTHING HTMLVideoElement. |
| promise_test(async t => { |
| const video = document.createElement("video"); |
| video.src = ""; |
| const videoWatcher = new EventWatcher(t, video, ["play", "error"]); |
| video.load(); |
| await videoWatcher.wait_for("error"); |
| assert_equals(video.readyState, video.HAVE_NOTHING); |
| |
| const detector = videoElementTest.createDetector(); |
| await promise_rejects(t, 'InvalidStateError', detector.detect(video)); |
| }, `${videoElementTest.name} - HAVE_NOTHING`); |
| |
| // Detector's detect() rejects on a HAVE_METADATA HTMLVideoElement. |
| promise_test(async t => { |
| const video = document.createElement("video"); |
| video.src = "/media/white.webm"; |
| video.loop = true; |
| video.autoplay = true; |
| const videoWatcher = new EventWatcher(t, video, ["loadedmetadata", "error"]); |
| video.load(); |
| await videoWatcher.wait_for("loadedmetadata"); |
| assert_equals(video.readyState, video.HAVE_METADATA); |
| |
| const detector = videoElementTest.createDetector(); |
| await promise_rejects(t, 'InvalidStateError', detector.detect(video)); |
| }, `${videoElementTest.name} - HAVE_METADATA`); |
| |
| } |
| |
| </script> |