| <!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 detect()ed Detected{Barcode,Face, Text}'s individual | |
| // fields are [SameObject]. | |
| const imageDataTests = | |
| [ | |
| { | |
| createDetector: () => { return new FaceDetector(); }, | |
| mockTestName: "FaceDetectionTest", | |
| detectionResultTest: CheckDetectedFaceSameObjects, | |
| name: "Face - detect(ImageData), [SameObject]" | |
| }, | |
| { | |
| createDetector: () => { return new BarcodeDetector(); }, | |
| mockTestName: "BarcodeDetectionTest", | |
| detectionResultTest: CheckDetectedBarcodesSameObjects, | |
| name: "Barcode - detect(ImageData), [SameObject]" | |
| }, | |
| { | |
| createDetector: () => { return new TextDetector(); }, | |
| mockTestName: "TextDetectionTest", | |
| detectionResultTest: CheckDetectedTextBlocksSameObjects, | |
| name: "Text - detect(ImageData), [SameObject]", | |
| } | |
| ]; | |
| 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)); | |
| imageDataTest.detectionResultTest(detectionResult); | |
| }, imageDataTest.name); | |
| } | |
| function CheckDetectedFaceSameObjects(detectedFaces) { | |
| assert_greater_than(detectedFaces.length, 0, "Number of faces"); | |
| assert_equals(detectedFaces[0].boundingBox, detectedFaces[0].boundingBox); | |
| assert_equals(detectedFaces[0].landmarks, detectedFaces[0].landmarks); | |
| } | |
| function CheckDetectedBarcodesSameObjects(detectedBarcodes) { | |
| assert_greater_than(detectedBarcodes.length, 0, "Number of barcodes"); | |
| assert_equals(detectedBarcodes[0].rawValue, detectedBarcodes[0].rawValue); | |
| assert_equals(detectedBarcodes[0].boundingBox, detectedBarcodes[0].boundingBox); | |
| assert_equals(detectedBarcodes[0].format, detectedBarcodes[0].format); | |
| assert_equals(detectedBarcodes[0].cornerPoints, detectedBarcodes[0].cornerPoints); | |
| } | |
| function CheckDetectedTextBlocksSameObjects(detectedTextBlocks) { | |
| assert_greater_than(detectedTextBlocks.length, 0, "Number of textBlocks"); | |
| assert_equals(detectedTextBlocks[0].rawValue, detectedTextBlocks[0].rawValue); | |
| assert_equals(detectedTextBlocks[0].boundingBox, detectedTextBlocks[0].boundingBox); | |
| } | |
| </script> |