| <!DOCTYPE HTML> |
| <title>SVGPoint interface</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| test(function() { |
| // This test checks the SVGPoint API. |
| |
| var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); |
| var point = svgElement.createSVGPoint(); |
| |
| // Check initial point values. |
| assert_equals(point.x, 0); |
| assert_equals(point.y, 0); |
| |
| // Check assigning points. |
| point.x = 100; |
| assert_equals(point.x, 100); |
| point.y = 200; |
| assert_equals(point.y, 200); |
| |
| // Check assigning invalid points. |
| point.x = point; |
| assert_equals(point.x, NaN); |
| point.y = null; |
| assert_equals(point.y, 0); |
| |
| // Reset to -50, 100 |
| point.x = -50; |
| point.y = 100; |
| |
| // Check 'matrixTransform' method - multiply with -1,0,0,2,10,10 matrix, should flip x coordinate, multiply y by two and translate each coordinate by 10. |
| var ctm = svgElement.createSVGMatrix(); |
| ctm.a = -1; |
| ctm.d = 2; |
| ctm.e = 10; |
| ctm.f = 10; |
| newPoint = point.matrixTransform(ctm); |
| assert_true(newPoint instanceof SVGPoint); |
| assert_equals(newPoint.x, 60); |
| assert_equals(newPoint.y, 210); |
| |
| // Check invalid arguments for 'matrixTransform'. |
| assert_throws_js(TypeError, function() { point.matrixTransform(); }); |
| assert_throws_js(TypeError, function() { point.matrixTransform(-1); }); |
| assert_throws_js(TypeError, function() { point.matrixTransform(5); }); |
| assert_throws_js(TypeError, function() { point.matrixTransform('aString'); }); |
| assert_throws_js(TypeError, function() { point.matrixTransform(point); }); |
| assert_throws_js(TypeError, function() { point.matrixTransform(svgElement); }); |
| }); |
| </script> |