chromium/third_party/blink/web_tests/svg/custom/getBBox-circle-has-one-zero-value.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 circle</title>
<svg height="0">
  <circle cx="300" cy="300" r="50"/>
  <circle cx="300" cy="300" r="0"/>
  <circle vector-effect="non-scaling-stroke" cx="300" cy="300" r="50"/>
  <circle vector-effect="non-scaling-stroke" cx="300" cy="300" r="0"/>
</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(250, 250, 100, 100),
  new BBox(300, 300, 0, 0),
  new BBox(250, 250, 100, 100),
  new BBox(300, 300, 0, 0),
];
var circles = document.getElementsByTagName('circle');
for (var i = 0, length = circles.length; i < length; ++i) {
     var circleBBox = circles[i].getBBox();
     test(function() {
         assert_equals(circleBBox.x, expectedBoxes[i].x);
         assert_equals(circleBBox.y, expectedBoxes[i].y);
         assert_equals(circleBBox.width, expectedBoxes[i].width);
         assert_equals(circleBBox.height, expectedBoxes[i].height);
     }, 'Bounding box size, circle ' + (i + 1) + ', ' + expectedBoxes[i]);
}
</script>