Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: third_party/WebKit/LayoutTests/fast/shapedetection/shapedetection-security-test.html

Issue 2626743002: Shape Detection: resolve with empty results if any input element's dimension is zero (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 <!DOCTYPE html> 1 <!DOCTYPE html>
2 <script src=../../resources/testharness.js></script> 2 <script src=../../resources/testharness.js></script>
3 <script src=../../resources/testharnessreport.js></script> 3 <script src=../../resources/testharnessreport.js></script>
4 <script> 4 <script>
5 5
6 // Returns a Promise that is resolve()d if detect() is rejected. Needs an input 6 // Returns a Promise that is resolve()d if detect() is rejected. Needs an input
7 // |element| (e.g. an HTMLImageElement or HTMLVideoElement) and a |url| to load. 7 // |element| (e.g. an HTMLImageElement or HTMLVideoElement) and a |url| to load.
8 function detectFaceOnElementAndExpectError(element, url) { 8 function detectOnElementAndExpectError(createDetector, element, url) {
9 return new Promise(function(resolve, reject) { 9 return new Promise(function(resolve, reject) {
10 var tryFaceDetection = function() { 10 var tryDetection = function() {
11 var faceDetector = new FaceDetector(); 11 var detector = createDetector();
12 faceDetector.detect(element) 12 detector.detect(element)
13 .then(faceDetectionResult => { 13 .then(detectionResult => {
14 reject("Promise should have been rejected."); 14 reject("Promise should have been rejected.");
15 }) 15 })
16 .catch(error => { 16 .catch(error => {
17 resolve(error); 17 resolve(error);
18 }); 18 });
19 }; 19 };
20 element.onload = tryFaceDetection; 20 element.onload = tryDetection;
21 element.onerror = tryFaceDetection; 21 element.onerror = tryDetection;
22 element.src = url; 22 element.src = url;
23 }); 23 });
24 } 24 };
25 25
26 // This test verifies that FaceDetector will reject an undecodable image. 26 // This test verifies that a Detector will reject an undecodable image.
27 promise_test(function(t) { 27 var createTestForBadImage = function(createDetector) {
28 var image = new Image(); 28 promise_test(function(t) {
29 return detectFaceOnElementAndExpectError(image, 29 var image = new Image();
30 "../../imported/wpt/images/broken.png ") 30 return detectOnElementAndExpectError(createDetector, image,
31 .then(function(error) { 31 "../../imported/wpt/images/broken.png")
32 assert_equals(error.name, "InvalidStateError"); 32 .then(function(error) {
33 assert_regexp_match(error.message, /Unable to decompress*/); 33 assert_equals(error.name, "InvalidStateError");
34 }); 34 assert_regexp_match(error.message, /Unable to decompress*/);
35 }, "FaceDetector should reject undecodable images with an InvalidStateError."); 35 });
36 }, "Detector should reject undecodable images with an InvalidStateError.");
37 };
36 38
37 // This test verifies that FaceDetector will reject a broken video. 39 generate_tests(createTestForBadImage, [
38 promise_test(function(t) { 40 [ "Face", () => { return new FaceDetector(); } ],
39 var video = document.createElement('video'); 41 [ "Barcode", () => { return new BarcodeDetector(); } ],
40 return detectFaceOnElementAndExpectError(video, "content/garbage.webm") 42 [ "Text", () => { return new TextDetector(); } ]
41 .then(function(error) { 43 ]);
42 assert_equals(error.name, "InvalidStateError");
43 });
44 }, "FaceDetector should reject undecodable videos with an InvalidStateError.");
45 44
45 // This test verifies that a Detector will reject a broken video.
46 var createTestForBadVideo = function(createDetector) {
47 promise_test(function(t) {
48 var video = document.createElement('video');
49 return detectOnElementAndExpectError(createDetector, video,
50 "content/garbage.webm")
51 .then(function(error) {
52 assert_equals(error.name, "InvalidStateError");
53 });
54 }, "Detector should reject undecodable videos with an InvalidStateError.");
55 };
56
57 generate_tests(createTestForBadVideo, [
58 [ "Face", () => { return new FaceDetector(); } ],
59 [ "Barcode", () => { return new BarcodeDetector(); } ],
60 [ "Text", () => { return new TextDetector(); } ]
61 ]);
46 62
47 </script> 63 </script>
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698