<!DOCTYPE html> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/shapedetection-helpers.js"></script> <script> // These tests verify that a Detector's detect() works on an HTMLVideoElement. const videoElementTests = [ { createDetector: () => { return new FaceDetector(); }, mockTestName: "FaceDetectionTest", detectionResultTest: FaceDetectorDetectionResultTest, name: "Face - detect(HTMLVideoElement)" }, { createDetector: () => { return new BarcodeDetector(); }, mockTestName: "BarcodeDetectionTest", detectionResultTest: BarcodeDetectorDetectionResultTest, name: "Barcode - detect(HTMLVideoElement)" }, { createDetector: () => { return new TextDetector(); }, mockTestName: "TextDetectionTest", detectionResultTest: TextDetectorDetectionResultTest, name: "Text - detect(HTMLVideoElement)" } ]; for (let videoElementTest of videoElementTests) { detection_test(videoElementTest.mockTestName, async (t, detectionTest) => { const video = document.createElement("video"); video.src = "/media/white.webm"; video.loop = true; video.autoplay = true; const videoWatcher = new EventWatcher(t, video, ["play", "error"]); video.load(); await videoWatcher.wait_for("play"); const detector = videoElementTest.createDetector(); const detectionResult = await detector.detect(video); videoElementTest.detectionResultTest(detectionResult, detectionTest); }, videoElementTest.name); } function FaceDetectorDetectionResultTest(detectionResult, mockTest) { const imageReceivedByMock = mockTest.MockFaceDetectionProvider().getFrameData(); assert_equals(imageReceivedByMock.byteLength, 307200, "Image length"); assert_equals(detectionResult.length, 3, "Number of faces"); } function BarcodeDetectorDetectionResultTest(detectionResult, mockTest) { assert_equals(detectionResult.length, 2, "Number of barcodes"); assert_equals(detectionResult[0].rawValue, "cats", "barcode 1"); assert_equals(detectionResult[0].format, "qr_code", "barcode 1 format"); assert_equals(detectionResult[1].rawValue, "dogs", "barcode 2"); assert_equals(detectionResult[1].format, "code_128", "barcode 2 format"); } function TextDetectorDetectionResultTest(detectionResult, mockTest) { assert_equals(detectionResult.length, 2, "Number of textBlocks"); assert_equals(detectionResult[0].rawValue, "cats", "textBlock 1"); assert_equals(detectionResult[1].rawValue, "dogs", "textBlock 2"); } </script>