| <!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 detected{Face, Barcode, Text}'s boundingBox |
| // should be DOMRectReadOnly. |
| const imageDataTests = |
| [ |
| { |
| createDetector: () => { return new FaceDetector(); }, |
| mockTestName: "FaceDetectionTest", |
| name: "Face - detectedFace.boundingBox should be DOMRectReadOnly" |
| }, |
| { |
| createDetector: () => { return new BarcodeDetector(); }, |
| mockTestName: "BarcodeDetectionTest", |
| name: "Barcode - detectedBarcode.boundingBox should be DOMRectReadOnly" |
| }, |
| { |
| createDetector: () => { return new TextDetector(); }, |
| mockTestName: "TextDetectionTest", |
| name: "Text - detectedText.boundingBox should be DOMRectReadOnly" |
| } |
| ]; |
| |
| for (let imageDataTest of imageDataTests) { |
| detection_test(imageDataTest.mockTestName, async t => { |
| const img = new Image(); |
| const imgWatcher = new EventWatcher(t, img, ["load", "error"]); |
| img.src = "/images/green-16x16.png"; |
| await imgWatcher.wait_for("load"); |
| |
| const canvas = document.createElement("canvas"); |
| canvas.getContext("2d").drawImage(img, 0, 0); |
| |
| const detector = imageDataTest.createDetector(); |
| const detectionResult = await detector.detect(canvas.getContext("2d") |
| .getImageData(0, 0, canvas.width, canvas.height)); |
| CheckDetectedReadOnlyBoundingBoxes(detectionResult); |
| }, imageDataTest.name); |
| } |
| |
| function CheckDetectedReadOnlyBoundingBoxes(detectedObjects) { |
| const properties = |
| ['x', 'y', 'width', 'height', 'top', 'right', 'bottom', 'left']; |
| |
| detectedObjects.forEach(detectedObject => { |
| properties.forEach(property => { |
| assert_readonly(detectedObject.boundingBox, property); |
| }); |
| }); |
| } |
| |
| </script> |