blob: 3fafbb01ea81490dd18194e4a914bcebfd3a30d2 [file] [log] [blame]
<!DOCTYPE html>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
<script src="file:///gen/layout_test_data/mojo/public/js/mojo_bindings.js"></script>
<script src="file:///gen/services/shape_detection/public/interfaces/barcodedetection.mojom.js"></script>
<script src="file:///gen/services/shape_detection/public/interfaces/facedetection.mojom.js"></script>
<script src="file:///gen/services/shape_detection/public/interfaces/facedetection_provider.mojom.js"></script>
<script src="file:///gen/services/shape_detection/public/interfaces/textdetection.mojom.js"></script>
<script src="resources/mock-barcodedetection.js"></script>
<script src="resources/mock-facedetection.js"></script>
<script src="resources/mock-textdetection.js"></script>
<script>
var createTestForImageData = function(createDetector, mock,
detectionResultTest) {
async_test(function(t) {
var img = new Image();
img.onload = async function() {
var canvas = document.createElement("canvas");;
canvas.getContext("2d").drawImage(img, 0, 0);
var detector = createDetector();
try {
var detectionResult = await detector.detect(canvas.getContext("2d")
.getImageData(0, 0, canvas.width, canvas.height));
detectionResultTest(detectionResult);
t.done();
} catch(error) {
assert_unreached("Error during detect(canvas): " + error);
}
}
img.src = "../media/content/greenbox.png";
});
};
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].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);
}
// These tests verify that detect()ed Detected{Barcode,Face,Text}'s individual
// fields are [SameObject].
generate_tests(createTestForImageData, [
[
"Face - detect(ImageData), [SameObject]",
() => { return new FaceDetector(); },
mockFaceDetectionProvider,
CheckDetectedFaceSameObjects
],
[
"Barcode - detect(ImageData), [SameObject]",
() => { return new BarcodeDetector(); },
mockBarcodeDetection,
CheckDetectedBarcodesSameObjects
],
[
"Text - detect(ImageData), [SameObject]",
() => { return new TextDetector(); },
mockTextDetection,
CheckDetectedTextBlocksSameObjects
]
]);
</script>