| <!DOCTYPE html> |
| <title>SVGNumber interface</title> |
| <script src="../../resources/testharness.js"></script> |
| <script src="../../resources/testharnessreport.js"></script> |
| <script> |
| test(function() { |
| // This test checks the SVGNumber API. |
| |
| var svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); |
| var num = svgElement.createSVGNumber(); |
| |
| // Check initial number value. |
| assert_equals(num.value, 0); |
| |
| // Check assigning number. |
| num.value = 100; |
| assert_equals(num.value, 100); |
| num.value = -100; |
| assert_equals(num.value, -100); |
| num.value = 12345678; |
| assert_equals(num.value, 12345678); |
| num.value = -num.value; |
| assert_equals(num.value, -12345678); |
| |
| // Check that numbers are static, caching value in a local variable and modifying it, should have no effect. |
| var numRef = num.value; |
| numRef = 1000; |
| assert_equals(numRef, 1000); |
| assert_equals(num.value, -12345678); |
| |
| // Check assigning invalid number, number should be 0 afterwards. |
| num.value = 0; |
| assert_equals(num.value, 0); |
| assert_throws_js(TypeError, function() { num.value = num; }); |
| assert_throws_js(TypeError, function() { num.value = 'aString'; }); |
| assert_throws_js(TypeError, function() { num.value = svgElement; }); |
| assert_throws_js(TypeError, function() { num.value = NaN; }); |
| assert_throws_js(TypeError, function() { num.value = Infinity; }); |
| assert_equals(num.value, 0); |
| num.value = null; |
| // Check that the number is now null. |
| assert_equals(num.value, 0); |
| }); |
| </script> |