| <!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/mojo/public/mojom/base/big_buffer.mojom.js"></script> |
| <script src="file:///gen/services/shape_detection/public/mojom/textdetection.mojom.js"></script> |
| <script src="resources/big-buffer-helpers.js"></script> |
| <script src="resources/mock-textdetection.js"></script> |
| <script> |
| |
| var createTestForVideoElement = function(createDetector, mock, |
| detectionResultTest) { |
| async_test(function(t) { |
| var video = document.createElement("video"); |
| video.src = "../external/wpt/media/white.webm"; |
| video.loop = true; |
| video.autoplay = true; |
| video.onerror = this.unreached_func("<video> error"); |
| video.onplay = this.step_func(async function() { |
| var detector = createDetector(); |
| try { |
| var detectionResult = await detector.detect(video); |
| detectionResultTest(detectionResult, mock); |
| t.done(); |
| } catch (error) { |
| assert_unreached("Error during detect(video): " + error); |
| } |
| }); |
| |
| video.load(); |
| }); |
| }; |
| |
| function TextDetectorDetectionResultTest(detectionResult, mock) { |
| assert_equals(detectionResult.length, 2, "Number of textBlocks"); |
| assert_equals(detectionResult[0].rawValue, "cats", "textBlock 1"); |
| assert_equals(detectionResult[1].rawValue, "dogs", "textBlock 2"); |
| } |
| |
| // These tests verify that a Detector's detect() works on an HTMLVideoElement. |
| // Use the mock mojo server implemented in mock-textdetection.js. |
| generate_tests(createTestForVideoElement, [ |
| [ |
| "Text - detect(HTMLVideoElement)", |
| () => { return new TextDetector(); }, |
| mockTextDetection, |
| TextDetectorDetectionResultTest |
| ] |
| ]); |
| |
| </script> |