| | |
| | | <!DOCTYPE html> |
| | | <html> |
| | | <head> |
| | | <link rel='stylesheet' href='qunit/qunit.css' type='text/css'/> |
| | | <html> |
| | | <head> |
| | | <link rel='stylesheet' href='qunit/qunit.css' type='text/css'/> |
| | | <script src='../editor/lib/jquery.js'></script> |
| | | <script> |
| | | // Mock for browser.js |
| | |
| | | svgedit.browser.supportsNativeTransformLists = function() { return false;} |
| | | </script> |
| | | <script type='text/javascript' src='../editor/src/svgtransformlist.js'></script> |
| | | <script type='text/javascript' src='qunit/qunit.js'></script> |
| | | <script type='text/javascript' src='qunit/qunit.js'></script> |
| | | <script type='text/javascript'> |
| | | $(function() { |
| | | // log function |
| | |
| | | window.console.log(result +' :: '+ message); |
| | | } |
| | | }; |
| | | |
| | | |
| | | var svgns = 'http://www.w3.org/2000/svg'; |
| | | var svgroot = document.getElementById('svgroot'); |
| | | var svgcontent, rect, circle; |
| | | |
| | | |
| | | var NEAR_ZERO = 5e-6; // 0.000005, Firefox fails at higher levels of precision. |
| | | function almostEquals(a, b, msg) { |
| | | msg = msg || (a + ' did not equal ' + b); |
| | | ok(Math.abs(a - b) < NEAR_ZERO, msg); |
| | | } |
| | | |
| | | |
| | | function checkOutOfBoundsException(obj, fn, arg1) { |
| | | var caughtException = false; |
| | | try { |
| | | obj[fn](arg1); |
| | | obj[fn](arg1); |
| | | } |
| | | catch(e) { |
| | | if (e.code == 1) { |
| | |
| | | circle = svgcontent.appendChild(document.createElementNS(svgns, 'circle')); |
| | | circle.id = 'c'; |
| | | } |
| | | |
| | | |
| | | function tearDown() { |
| | | svgedit.transformlist.resetListMap(); |
| | | while (svgroot.hasChildNodes()) { |
| | |
| | | |
| | | test('Test svgedit.transformlist package', function() { |
| | | expect(2); |
| | | |
| | | |
| | | ok(svgedit.transformlist); |
| | | ok(svgedit.transformlist.getTransformList); |
| | | }); |
| | |
| | | test('Test svgedit.transformlist.getTransformList() function', function() { |
| | | expect(4); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | var cxform = svgedit.transformlist.getTransformList(circle); |
| | | |
| | | |
| | | ok(rxform); |
| | | ok(cxform); |
| | | equals(typeof rxform, typeof {}); |
| | | equals(typeof cxform, typeof {}); |
| | | |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | test('Test SVGTransformList.numberOfItems property', function() { |
| | | expect(2); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | |
| | | |
| | | equals(typeof rxform.numberOfItems, typeof 0); |
| | | equals(rxform.numberOfItems, 0); |
| | | |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | test('Test SVGTransformList.initialize()', function() { |
| | | expect(6); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | var cxform = svgedit.transformlist.getTransformList(circle); |
| | | |
| | | |
| | | var t = svgcontent.createSVGTransform(); |
| | | ok(t); |
| | | ok(rxform.initialize); |
| | |
| | | // This also fails in Firefox native. |
| | | // equals(rxform.numberOfItems, 0, 'Did not remove transform from list before initializing another transformlist'); |
| | | equals(cxform.numberOfItems, 1); |
| | | |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | test('Test SVGTransformList.appendItem() and getItem()', function() { |
| | | expect(12); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | var cxform = svgedit.transformlist.getTransformList(circle); |
| | | |
| | | |
| | | var t1 = svgcontent.createSVGTransform(), |
| | | t2 = svgcontent.createSVGTransform(), |
| | | t3 = svgcontent.createSVGTransform(); |
| | | |
| | | |
| | | ok(rxform.appendItem); |
| | | ok(rxform.getItem); |
| | | equals(typeof rxform.appendItem, typeof function(){}); |
| | |
| | | rxform.appendItem(t1); |
| | | rxform.appendItem(t2); |
| | | rxform.appendItem(t3); |
| | | |
| | | |
| | | equals(rxform.numberOfItems, 3); |
| | | var rxf = rxform.getItem(0); |
| | | equals(rxf, t1); |
| | |
| | | |
| | | checkOutOfBoundsException(rxform, 'getItem', -1); |
| | | checkOutOfBoundsException(rxform, 'getItem', 3); |
| | | |
| | | |
| | | cxform.appendItem(t1); |
| | | // These also fail in Firefox native. |
| | | // equals(rxform.numberOfItems, 2, 'Did not remove a transform from a list before appending it to a new transformlist'); |
| | |
| | | |
| | | equals(cxform.numberOfItems, 1); |
| | | equals(cxform.getItem(0), t1); |
| | | |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | test('Test SVGTransformList.removeItem()', function() { |
| | | expect(7); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | |
| | | |
| | | var t1 = svgcontent.createSVGTransform(), |
| | | t2 = svgcontent.createSVGTransform(); |
| | | ok(rxform.removeItem); |
| | | equals(typeof rxform.removeItem, typeof function(){}); |
| | | rxform.appendItem(t1); |
| | | rxform.appendItem(t2); |
| | | |
| | | |
| | | var removedTransform = rxform.removeItem(0); |
| | | equals(rxform.numberOfItems, 1); |
| | | equals(removedTransform, t1); |
| | | equals(rxform.getItem(0), t2); |
| | | |
| | | |
| | | checkOutOfBoundsException(rxform, 'removeItem', -1); |
| | | checkOutOfBoundsException(rxform, 'removeItem', 1); |
| | | |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | test('Test SVGTransformList.replaceItem()', function() { |
| | | expect(8); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | var cxform = svgedit.transformlist.getTransformList(circle); |
| | | |
| | | |
| | | ok(rxform.replaceItem); |
| | | equals(typeof rxform.replaceItem, typeof function(){}); |
| | | |
| | | var t1 = svgcontent.createSVGTransform(), |
| | | t2 = svgcontent.createSVGTransform(), |
| | | t3 = svgcontent.createSVGTransform(); |
| | | |
| | | |
| | | rxform.appendItem(t1); |
| | | rxform.appendItem(t2); |
| | | cxform.appendItem(t3); |
| | | |
| | | |
| | | var newItem = rxform.replaceItem(t3, 0); |
| | | equals(rxform.numberOfItems, 2); |
| | | equals(newItem, t3); |
| | |
| | | equals(rxform.getItem(1), t2); |
| | | // Fails in Firefox native |
| | | // equals(cxform.numberOfItems, 0); |
| | | |
| | | |
| | | // test replaceItem within a list |
| | | rxform.appendItem(t1); |
| | | rxform.replaceItem(t1, 0); |
| | |
| | | // equals(rxform.numberOfItems, 2); |
| | | equals(rxform.getItem(0), t1); |
| | | equals(rxform.getItem(1), t2); |
| | | |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | test('Test SVGTransformList.insertItemBefore()', function() { |
| | | expect(10); |
| | | setUp(); |
| | | |
| | | |
| | | var rxform = svgedit.transformlist.getTransformList(rect); |
| | | var cxform = svgedit.transformlist.getTransformList(circle); |
| | | |
| | | |
| | | ok(rxform.insertItemBefore); |
| | | equals(typeof rxform.insertItemBefore, typeof function(){}); |
| | | |
| | | var t1 = svgcontent.createSVGTransform(), |
| | | t2 = svgcontent.createSVGTransform(), |
| | | t3 = svgcontent.createSVGTransform(); |
| | | |
| | | |
| | | rxform.appendItem(t1); |
| | | rxform.appendItem(t2); |
| | | cxform.appendItem(t3); |
| | | |
| | | |
| | | var newItem = rxform.insertItemBefore(t3, 0); |
| | | equals(rxform.numberOfItems, 3); |
| | | equals(newItem, t3); |
| | |
| | | |
| | | var t_ = svgcontent.createSVGMatrix(); |
| | | t_.e = 100; t_.f = 200; |
| | | |
| | | |
| | | var result = t_.multiply(r).multiply(t); |
| | | |
| | | |
| | | almostEquals(m.e, result.e); |
| | | almostEquals(m.f, result.f); |
| | | |
| | | tearDown(); |
| | | }); |
| | | |
| | | |
| | | test('Test SVGTransformList.init() for matrix(1, 2, 3, 4, 5, 6)', function() { |
| | | expect(8); |
| | | setUp(); |
| | |
| | | tearDown(); |
| | | }); |
| | | |
| | | }); |
| | | </script> |
| | | </head> |
| | | <body> |
| | | }); |
| | | </script> |
| | | </head> |
| | | <body> |
| | | <h1 id='qunit-header'>Unit Tests for svgtransformlist.js</h1> |
| | | <h2 id='qunit-banner'></h2> |
| | | <h2 id='qunit-userAgent'></h2> |
| | | <ol id='qunit-tests'> |
| | | </ol> |
| | | <div id='svgroot' style='visibility:hidden'></div> |
| | | </body> |
| | | </body> |
| | | </html> |