blob: 5dcd0c940161531a091c108ae6f21fca8b5923ef [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="runTest()">
<script xlink:href="../../resources/js-test.js"/>
<rect id="box" class="width50" x="10" y="10" height="50" fill="blue" />
<text x="10" y="60"></text>
<style>
.width20 { width: 20px; }
.width50 { width: 50px; }
</style>
<script>
description('Tests SVGSVGElement.checkIntersection');
function createRect(x, y, width, height) {
const rect = document.documentElement.createSVGRect();
rect.x = x;
rect.y = y;
rect.width = width;
rect.height = height;
return rect;
}
function runTest() {
window.box = document.getElementById("box");
shouldBeTrue('rectOfBox = createRect(10, 10, 50, 50); document.documentElement.checkIntersection(box, rectOfBox)');
shouldBeTrue('document.documentElement.checkEnclosure(box, rectOfBox)');
shouldBeTrue('rectInBox = createRect(20, 20, 20, 20); document.documentElement.checkIntersection(box, rectInBox)');
shouldBeFalse('document.documentElement.checkEnclosure(box, rectInBox)');
shouldBeTrue('boxExtendingUp = createRect(10, 0, 50, 60); document.documentElement.checkIntersection(box, boxExtendingUp)');
shouldBeTrue('document.documentElement.checkEnclosure(box, boxExtendingUp)');
shouldBeTrue('boxExtendingDown = createRect(10, 10, 50, 60); document.documentElement.checkIntersection(box, boxExtendingDown)');
shouldBeTrue('document.documentElement.checkEnclosure(box, boxExtendingDown)');
shouldBeTrue('boxExtendingLeft = createRect(0, 10, 60, 50); document.documentElement.checkIntersection(box, boxExtendingLeft)');
shouldBeTrue('document.documentElement.checkEnclosure(box, boxExtendingLeft)');
shouldBeTrue('boxExtendingRight = createRect(10, 10, 60, 50); document.documentElement.checkIntersection(box, boxExtendingRight)');
shouldBeTrue('document.documentElement.checkEnclosure(box, boxExtendingRight)');
shouldBeTrue('boxShrinkingTop = createRect(10, 20, 50, 40); document.documentElement.checkIntersection(box, boxShrinkingTop)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxShrinkingTop)');
shouldBeTrue('boxShrinkingBottom = createRect(10, 10, 50, 40); document.documentElement.checkIntersection(box, boxShrinkingBottom)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxShrinkingBottom)');
shouldBeTrue('boxShrinkingLeft = createRect(20, 10, 40, 50); document.documentElement.checkIntersection(box, boxShrinkingLeft)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxShrinkingLeft)');
shouldBeTrue('boxShrinkingRight = createRect(10, 10, 40, 50); document.documentElement.checkIntersection(box, boxShrinkingRight)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxShrinkingRight)');
shouldBeTrue('upperLeftCornerBox = createRect(5, 5, 20, 20); document.documentElement.checkIntersection(box, upperLeftCornerBox)');
shouldBeFalse('document.documentElement.checkEnclosure(box, upperLeftCornerBox)');
shouldBeTrue('upperRightCornerBox = createRect(45, 5, 20, 20); document.documentElement.checkIntersection(box, upperRightCornerBox)');
shouldBeFalse('document.documentElement.checkEnclosure(box, upperRightCornerBox)');
shouldBeFalse('boxOnTop = createRect(10, 5, 50, 5); document.documentElement.checkIntersection(box, boxOnTop)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxOnTop)');
shouldBeFalse('boxOnBottom = createRect(60, 5, 50, 5); document.documentElement.checkIntersection(box, boxOnBottom)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxOnBottom)');
shouldBeFalse('boxOnLeft = createRect(5, 10, 5, 50); document.documentElement.checkIntersection(box, boxOnLeft)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxOnLeft)');
shouldBeFalse('boxOnRight = createRect(60, 10, 5, 50); document.documentElement.checkIntersection(box, boxOnRight)');
shouldBeFalse('document.documentElement.checkEnclosure(box, boxOnRight)');
shouldBeFalse('box.setAttribute("class", "width20"); document.documentElement.checkIntersection(box, upperRightCornerBox)');
shouldBeTrue('narrowBox = createRect(10, 10, 20, 50); document.documentElement.checkEnclosure(box, narrowBox)');
shouldBeTrue('box.setAttribute("class", "width50"); document.documentElement.checkIntersection(box, upperRightCornerBox)');
shouldBeFalse('document.documentElement.checkEnclosure(box, narrowBox)');
finishJSTest()
}
var successfullyParsed = true;
</script>
</svg>