diff options
Diffstat (limited to 'testing/web-platform/tests/shape-detection/detection-on-worker.https.worker.js')
-rw-r--r-- | testing/web-platform/tests/shape-detection/detection-on-worker.https.worker.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/testing/web-platform/tests/shape-detection/detection-on-worker.https.worker.js b/testing/web-platform/tests/shape-detection/detection-on-worker.https.worker.js new file mode 100644 index 0000000000..3981c6fdc8 --- /dev/null +++ b/testing/web-platform/tests/shape-detection/detection-on-worker.https.worker.js @@ -0,0 +1,54 @@ +importScripts("/resources/testharness.js"); +importScripts("/resources/test-only-api.js"); +importScripts("resources/shapedetection-helpers.js"); + +'use strict'; + +// These tests verify that a Detector's detect() works on an +// ImageBitmap on workers. +const imageBitmapTests = + [ + { + createDetector: () => { return new FaceDetector(); }, + mockTestName: "FaceDetectionTest", + resultSize: 3, // Number of faces + detectorType: "Face" + }, + { + createDetector: () => { return new BarcodeDetector(); }, + mockTestName: "BarcodeDetectionTest", + resultSize: 2, // Number of barcodes + detectorType: "Barcode" + }, + { + createDetector: () => { return new TextDetector(); }, + mockTestName: "TextDetectionTest", + resultSize: 2, // Number of text blocks + detectorType: "Text" + } + ]; + +for (let imageBitmapTest of imageBitmapTests) { + // ImageBitmap is of transferable type and can be sent to and + // tested on worker. + detection_test(imageBitmapTest.mockTestName, async (t, detectionTest) => { + const img = createTestImage(); + const theImageBitmap = await createImageBitmap(img); + const detector = imageBitmapTest.createDetector(); + const detectionResult = await detector.detect(theImageBitmap); + assert_equals(detectionResult.length, imageBitmapTest.resultSize, + `Number of ${imageBitmapTest.detectorType}`); + }, `${imageBitmapTest.detectorType} Detector detect(ImageBitmap) on worker`); +} + +function createTestImage() { + const image = new OffscreenCanvas(100, 50); + const imgctx = image.getContext('2d'); + imgctx.fillStyle = "#F00"; + imgctx.fillRect(0, 0, 2, 2); + imgctx.fillStyle = "#0F0"; + imgctx.fillRect(0, 0, 1, 1); + return image; +} + +done(); |