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

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

Issue 2441953002: Shape Detection: Add two layout tests for face detection (Closed)
Patch Set: Created 4 years, 2 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/LayoutTests/fast/shapedetection/shapedetection-security-test.html
diff --git a/third_party/WebKit/LayoutTests/fast/shapedetection/shapedetection-security-test.html b/third_party/WebKit/LayoutTests/fast/shapedetection/shapedetection-security-test.html
new file mode 100644
index 0000000000000000000000000000000000000000..192279b00dfebac9339810e96b01f78e3b438a64
--- /dev/null
+++ b/third_party/WebKit/LayoutTests/fast/shapedetection/shapedetection-security-test.html
@@ -0,0 +1,56 @@
+<!DOCTYPE html>
+<script src=../../resources/testharness.js></script>
+<script src=../../resources/testharnessreport.js></script>
+<script>
+
+// TODO(xianglu): Consider tests for image with only one dimension equal to zero.
mcasas 2016/10/21 04:41:45 "Consider adding ..." Although there's no hard li
xianglu 2016/10/21 21:08:30 Done.
+
+// This test verifies that FaceDetector will reject an empty image.
+async_test(function(rejectEmptyImageTest){
+ var emptyImage = new Image();
+ rejectEmptyImageTest.step(function() {
+ assert_equals(emptyImage.naturalWidth + emptyImage.naturalHeight, 0);
mcasas 2016/10/21 04:41:46 Here you can just assert_equals(), no need to crea
xianglu 2016/10/21 21:08:30 The difference is that without a step function, th
+ });
+ //No need to call onload() because an empty image never fires this event.
+ var faceDetector = new FaceDetector();
+ faceDetector.detect(emptyImage)
+ .then(faceDetectionResult => {
mcasas 2016/10/21 04:41:45 Usually .then() and .catch() clauses are indented
xianglu 2016/10/21 21:08:30 Done.
+ rejectEmptyImageTest.step(function() {
+ assert_unreached("Promise for empty images should not be resolved.");
+ });
+ rejectEmptyImageTest.done();
+ })
+ .catch(error => {
+ rejectEmptyImageTest.step(function() {
+ assert_equals(error.name, "InvalidStateError");
+ assert_equals(error.message, "HTMLImageElement is empty.");
+ });
+ rejectEmptyImageTest.done();
+ });
mcasas 2016/10/21 04:41:45 This whole l.16-29 should be simplified to: asser
xianglu 2016/10/21 21:08:30 I think instead throwing an exception itself, face
+},"FaceDetector should reject empty images with InvalidStateError.");
+
+// This test verifies that FaceDetector will reject an undecodable image.
+async_test(function(rejectUndecodableImageTest){
+ var undecodableImage = new Image();
+ undecodableImage.onload = function () {
+ var faceDetector = new FaceDetector();
+ faceDetector.detect(undecodableImage)
+ .then(faceDetectionResult => {
+ rejectUndecodableImageTest.step(function() {
+ assert_unreached("Promise for undecodable images should not be resolved.");
+ });
+ rejectUndecodableImageTest.done();
+ })
+ .catch(error => {
+ rejectUndecodableImageTest.step(function() {
+ assert_equals(error.name, "InvalidStateError");
+ assert_equals(error.message, "HTMLImageElement is broken.");
+ });
+ rejectUndecodableImageTest.done();
+ });
+ };
+ undecodableImage.src = "../../imported/wpt/images/broken.png";
+}, "FaceDetector should reject undecodable images with InvalidStateError.");
+
+
+</script>

Powered by Google App Engine
This is Rietveld 408576698