56 lines
2.0 KiB
XML
56 lines
2.0 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg">
|
|
<g id='log' />
|
|
<script>
|
|
<![CDATA[
|
|
if (window.testRunner)
|
|
testRunner.dumpAsText();
|
|
|
|
var svgNS = "http://www.w3.org/2000/svg";
|
|
var pathElement = document.createElementNS(svgNS, 'path');
|
|
var errorTolerance = .1;
|
|
|
|
var logOffset = 20;
|
|
function result(didPass, string) {
|
|
var newText = document.createElementNS(svgNS, "text");
|
|
newText.setAttribute("x", 10);
|
|
newText.setAttribute("y", logOffset);
|
|
logOffset += 20;
|
|
newText.textContent = string;
|
|
var newTspan = document.createElementNS(svgNS, "tspan");
|
|
if (didPass) {
|
|
newTspan.textContent = "PASS: ";
|
|
newTspan.style.fill = "green";
|
|
} else {
|
|
newTspan.textContent = "FAIL: ";
|
|
newTspan.style.fill = "red";
|
|
}
|
|
newText.insertBefore(newTspan, newText.firstChild);
|
|
document.getElementById('log').appendChild(newText);
|
|
}
|
|
|
|
function expectLength(path, expectedLength) {
|
|
pathElement.setAttribute("d", path);
|
|
|
|
var actualLength;
|
|
try {
|
|
actualLength = pathElement.getTotalLength();
|
|
if (Math.abs(actualLength - expectedLength) < errorTolerance)
|
|
result(true, path + "\" = " + actualLength);
|
|
else
|
|
result(false, path + "\" expected: " + expectedLength + " actual: " + actualLength);
|
|
} catch(e) {
|
|
result(false, path + "\" expected: " + expectedLength + " got exception: " + e);
|
|
}
|
|
}
|
|
|
|
var errorCount = 0;
|
|
|
|
// Tests go here:
|
|
expectLength('M 0 0 L 100 0 L 100 100 L 0 100 Z', 400);
|
|
expectLength('M 0 0 l 100 0 l 0 100 l -100 0 Z', 400);
|
|
expectLength('M 0 0 t 0 100', 100);
|
|
expectLength('M 0 0 Q 55 50 100 100', 141.4); // I'm not sure if this is actually right
|
|
]]>
|
|
</script>
|
|
</svg>
|