| <html xmlns="http://www.w3.org/1999/xhtml"> |
| |
| <head> |
| <title>Scalable Search Box</title> |
| |
| <script> |
| <![CDATA[ |
| |
| var testMatrix; |
| var expectedMatrix = { |
| a: 1, |
| b: 0, |
| c: 0, |
| d: 1, |
| e: 350, |
| f: 56 |
| }; |
| |
| function runTest () { |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| var rect = document.getElementById('rect'); |
| try { |
| testMatrix = rect.getScreenCTM(); |
| } |
| // end script here |
| catch (error) { |
| log('.getScreenCTM() seems to be unimplemented'); |
| return; |
| } |
| // check equality of matrices |
| if (areMatricesEqual(testMatrix, expectedMatrix)) { |
| log('PASSED'); |
| } |
| // explain error |
| else { |
| log('Expected matrix ' + printMatrix(expectedMatrix)); |
| log('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 log(msg) { |
| var output = document.getElementById('console') |
| 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="height: 200px;"> |
| <table width="100%" height="100%" padding="100" style="text-align:center"> |
| <tr><td> |
| <svg id="svgRoot" xmlns="http://www.w3.org/2000/svg" width="100" height="100"> |
| <rect id="rect" width="100%" height="100%" /> |
| </svg> |
| </td></tr> |
| </table> |
| </div> |
| <div id="console" style="position: absolute; left: 30px; top: 330px; color: red" /> |
| This tests the behaviour of <code>SVGLocatable::getScreenCTM()</code> in mixed content <br /> |
| </body> |
| |
| </html> |