Index: LayoutTests/svg/custom/getBBox-rect-has-one-zero-value.html |
diff --git a/LayoutTests/svg/custom/getBBox-rect-has-one-zero-value.html b/LayoutTests/svg/custom/getBBox-rect-has-one-zero-value.html |
index 6ed9cf58f408d4a617b6701057c5b8516bfceb5b..efd701f7c69e659fa01b1c56616e14cb2bc46ac7 100644 |
--- a/LayoutTests/svg/custom/getBBox-rect-has-one-zero-value.html |
+++ b/LayoutTests/svg/custom/getBBox-rect-has-one-zero-value.html |
@@ -1,41 +1,70 @@ |
-<!DOCTYPE HTML> |
-<html> |
-<!-- Test that svg bounding boxes are valid for a zero-width or zero-height rect --> |
- <head> |
- <script type="text/javascript"> |
- function checkBoundingBoxHasZeroValue() { |
- if (window.testRunner) |
- window.testRunner.dumpAsText(); |
- var rectBox1 = document.getElementById('rect1').getBBox(); |
- var rectBox2 = document.getElementById('rect2').getBBox(); |
- var rectBox3 = document.getElementById('rect3').getBBox(); |
- var rectBox4 = document.getElementById('rect4').getBBox(); |
- var results = "FAIL"; |
- if (rectBox1.height == 100 && rectBox1.width == 0 && |
- rectBox2.height == 0 && rectBox2.width == 100 && |
- rectBox3.height == 100 && rectBox3.width == 0 && |
- rectBox4.height == 0 && rectBox4.width == 100) |
- results = "PASS"; |
- document.body.innerHTML = results + ", bounding box sizes are (" + |
- rectBox1.width + ", " + rectBox1.height + "), (" + |
- rectBox2.width + ", " + rectBox2.height + "), (" + |
- rectBox3.width + ", " + rectBox3.height + ") and (" + |
- rectBox4.width + ", " + rectBox4.height + ")"; |
- } |
- </script> |
- </head> |
- <body onload="checkBoundingBoxHasZeroValue()"> |
- <svg> |
- <rect id="rect1" height="100" width="0"/> |
- </svg> |
- <svg> |
- <rect id="rect2" height="0" width="100"/> |
- </svg> |
- <svg> |
- <rect id="rect3" vector-effect="non-scaling-stroke" height="100" width="0"/> |
- </svg> |
- <svg> |
- <rect id="rect4" vector-effect="non-scaling-stroke" height="0" width="100"/> |
- </svg> |
- <body> |
-</html> |
+<!DOCTYPE html> |
+<script src="../../resources/testharness.js"></script> |
+<script src="../../resources/testharnessreport.js"></script> |
+<title>SVG bounding boxes are valid for a zero-width or zero-height rect</title> |
+<svg height="0"> |
+ <rect height="100" width="0"/> |
+ <rect height="0" width="100"/> |
+ <rect vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect rx="10" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect rx="10" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect ry="10" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect ry="10" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect rx="10" ry="10" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect rx="10" ry="10" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect x="100" y="200" height="100" width="0"/> |
+ <rect x="100" y="200" height="0" width="100"/> |
+ <rect x="100" y="200" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect x="100" y="200" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect x="100" y="200" rx="10" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect x="100" y="200" rx="10" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect x="100" y="200" ry="10" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect x="100" y="200" ry="10" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+ <rect x="100" y="200" rx="10" ry="10" vector-effect="non-scaling-stroke" height="100" width="0"/> |
+ <rect x="100" y="200" rx="10" ry="10" vector-effect="non-scaling-stroke" height="0" width="100"/> |
+</svg> |
+<script> |
+BBox = function(x,y,w,h) { |
+ this.x = x; |
+ this.y = y; |
+ this.width = w; |
+ this.height = h; |
+}; |
+BBox.prototype.toString = function() { |
+ return this.x + "," + this.y + "," + this.width + "," + this.height; |
+}; |
+// The order of expected sizes should equal the document order of the rects. |
+var expectedBoxes = [ |
+ new BBox(0, 0, 0, 100), |
+ new BBox(0, 0, 100, 0), |
+ new BBox(0, 0, 0, 100), |
+ new BBox(0, 0, 100, 0), |
+ new BBox(0, 0, 0, 100), |
+ new BBox(0, 0, 100, 0), |
+ new BBox(0, 0, 0, 100), |
+ new BBox(0, 0, 100, 0), |
+ new BBox(0, 0, 0, 100), |
+ new BBox(0, 0, 100, 0), |
+ new BBox(100, 200, 0, 100), |
+ new BBox(100, 200, 100, 0), |
+ new BBox(100, 200, 0, 100), |
+ new BBox(100, 200, 100, 0), |
+ new BBox(100, 200, 0, 100), |
+ new BBox(100, 200, 100, 0), |
+ new BBox(100, 200, 0, 100), |
+ new BBox(100, 200, 100, 0), |
+ new BBox(100, 200, 0, 100), |
+ new BBox(100, 200, 100, 0), |
+]; |
+var rects = document.getElementsByTagName('rect'); |
+for (var i = 0, length = rects.length; i < length; ++i) { |
+ var rectBBox = rects[i].getBBox(); |
+ test(function() { |
+ assert_equals(rectBBox.x, expectedBoxes[i].x); |
+ assert_equals(rectBBox.y, expectedBoxes[i].y); |
+ assert_equals(rectBBox.width, expectedBoxes[i].width); |
+ assert_equals(rectBBox.height, expectedBoxes[i].height); |
+ }, 'Bounding box size ' + expectedBoxes[i]); |
+} |
+</script> |