79 lines
2.1 KiB
HTML
79 lines
2.1 KiB
HTML
<html xmlns="http://www.w3.org/1999/xhtml">
|
|
|
|
<head>
|
|
<title>Scalable Search Box</title>
|
|
|
|
<script>
|
|
<![CDATA[
|
|
|
|
var testMatrix;
|
|
var expectedMatrix = {
|
|
a: 2,
|
|
b: 0,
|
|
c: 0,
|
|
d: 2,
|
|
e: 30,
|
|
f: 100
|
|
};
|
|
|
|
|
|
function runTest () {
|
|
var rect = document.getElementById('rect');
|
|
try {
|
|
testMatrix = rect.getScreenCTM();
|
|
}
|
|
// end script here
|
|
catch (error) {
|
|
logError('.getScreenCTM() seems to be unimplemented');
|
|
return;
|
|
}
|
|
// check equality of matrices
|
|
if (areMatricesEqual(testMatrix, expectedMatrix)) {
|
|
rect.setAttributeNS(null, 'fill', 'green');
|
|
}
|
|
// explain error
|
|
else {
|
|
logError('Expected matrix ' + printMatrix(expectedMatrix));
|
|
logError('Got matrix ' + printMatrix(testMatrix));
|
|
}
|
|
}
|
|
|
|
function areMatricesEqual (m1, m2) {
|
|
return (
|
|
m1.a == m2.a &&
|
|
m1.b == m2.b &&
|
|
m1.c == m2.c &&
|
|
m1.d == m2.d &&
|
|
m1.e == m2.e &&
|
|
m1.f == m2.f
|
|
);
|
|
}
|
|
|
|
function printMatrix (m) {
|
|
return '[' + [m.a, m.b, m.c, m.d, m.e, m.f].join(', ') + ']';
|
|
}
|
|
|
|
function logError (msg) {
|
|
var output = document.getElementById('error')
|
|
var text = document.createTextNode(msg);
|
|
var br = document.createElementNS('http://www.w3.org/1999/xhtml', 'br');
|
|
output.appendChild(text);
|
|
output.appendChild(br);
|
|
}
|
|
|
|
]]>
|
|
</script>
|
|
</head>
|
|
|
|
<body onload="runTest()">
|
|
<div style="position: absolute; left: 30px; top: 100px; width: 400px; height: 200px;">
|
|
<svg id="svgRoot" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 100" preserveAspectRatio="xMinYMin meet">
|
|
<rect id="rect" width="100%" height="100%" fill="red" />
|
|
</svg>
|
|
</div>
|
|
<div id="error" style="position: absolute; left: 30px; top: 330px; color: red" />
|
|
This tests the behaviour of <code>SVGLocatable::getScreenCTM()</code> in mixed content<br />
|
|
If the test passes you should see a green rectangle.
|
|
</body>
|
|
|
|
</html> |