| <!DOCTYPE html> | 
| <html> | 
| <head> | 
|   <link rel='stylesheet' href='qunit/qunit.css' type='text/css'/> | 
|   <script src='../editor/assets/jquery.js'></script> | 
|   <!-- svgutils.js depends on these two... mock out? --> | 
|   <script type='text/javascript' src='../editor/src/browser.js'></script> | 
|   <script type='text/javascript' src='../editor/src/svgtransformlist.js'></script> | 
|   <script type='text/javascript' src='../editor/src/svgutils.js'></script> | 
|   <script type='text/javascript' src='qunit/qunit.js'></script>   | 
|   <script type='text/javascript'> | 
|   $(function() { | 
|       // log function | 
|       QUnit.log = function(result, message) { | 
|         if (window.console && window.console.log) { | 
|             window.console.log(result +' :: '+ message); | 
|         } | 
|     }; | 
|   | 
|     var svgns = 'http://www.w3.org/2000/svg'; | 
|     var svg = document.createElementNS(svgns, 'svg'); | 
|   | 
|     module('svgedit.utilities'); | 
|   | 
|     test('Test svgedit.utilities package', function() { | 
|         expect(3); | 
|          | 
|         ok(svgedit.utilities); | 
|         ok(svgedit.utilities.toXml); | 
|         equals(typeof svgedit.utilities.toXml, typeof function(){}); | 
|     }); | 
|   | 
|     test('Test svgedit.utilities.toXml() function', function() { | 
|         expect(6); | 
|         var toXml = svgedit.utilities.toXml; | 
|          | 
|         equals(toXml('a'), 'a'); | 
|         equals(toXml('ABC_'), 'ABC_'); | 
|         equals(toXml('PB&J'), 'PB&J'); | 
|         equals(toXml('2 < 5'), '2 < 5'); | 
|         equals(toXml('5 > 2'), '5 > 2'); | 
|         equals(toXml('\'<&>"'), '\'<&>"'); | 
|     }); | 
|   | 
|     test('Test svgedit.utilities.fromXml() function', function() { | 
|         expect(6); | 
|         var fromXml = svgedit.utilities.fromXml; | 
|   | 
|         equals(fromXml('a'), 'a'); | 
|         equals(fromXml('ABC_'), 'ABC_'); | 
|         equals(fromXml('PB&J'), 'PB&J'); | 
|         equals(fromXml('2 < 5'), '2 < 5'); | 
|         equals(fromXml('5 > 2'), '5 > 2'); | 
|         equals(fromXml('<&>'), '<&>'); | 
|     }); | 
|   | 
|     test('Test svgedit.utilities.encode64() function', function() { | 
|         expect(4); | 
|         var encode64 = svgedit.utilities.encode64; | 
|   | 
|         equals(encode64('abcdef'), 'YWJjZGVm'); | 
|         equals(encode64('12345'), 'MTIzNDU='); | 
|         equals(encode64(' '), 'IA=='); | 
|         equals(encode64('`~!@#$%^&*()-_=+[{]}\\|;:\'",<.>/?'), 'YH4hQCMkJV4mKigpLV89K1t7XX1cfDs6JyIsPC4+Lz8='); | 
|     }); | 
|   | 
|     test('Test svgedit.utilities.decode64() function', function() { | 
|         expect(4); | 
|         var decode64 = svgedit.utilities.decode64; | 
|   | 
|         equals(decode64('YWJjZGVm'), 'abcdef'); | 
|         equals(decode64('MTIzNDU='), '12345'); | 
|         equals(decode64('IA=='), ' '); | 
|         equals(decode64('YH4hQCMkJV4mKigpLV89K1t7XX1cfDs6JyIsPC4+Lz8='), '`~!@#$%^&*()-_=+[{]}\\|;:\'",<.>/?'); | 
|     }); | 
|   | 
|     test('Test svgedit.utilities.convertToXMLReferences() function', function() { | 
|         expect(1); | 
|          | 
|         var convert = svgedit.utilities.convertToXMLReferences; | 
|         equals(convert('ABC'), 'ABC'); | 
| //        equals(convert('ÀBC'), 'ÀBC'); | 
|     }); | 
|   | 
|     test('Test svgedit.utilities.bboxToObj() function', function() { | 
|         expect(5); | 
|         var bboxToObj = svgedit.utilities.bboxToObj; | 
|   | 
|         var rect = svg.createSVGRect(); | 
|         rect.x = 1; | 
|         rect.y = 2; | 
|         rect.width = 3; | 
|         rect.height = 4; | 
|          | 
|         var obj = bboxToObj(rect); | 
|         equals(typeof obj, typeof {}); | 
|         equals(obj.x, 1); | 
|         equals(obj.y, 2); | 
|         equals(obj.width, 3); | 
|         equals(obj.height, 4); | 
|     }); | 
|   | 
|      | 
|     test("Test getUrlFromAttr", function() { | 
|         expect(4); | 
|          | 
|         equal(svgedit.utilities.getUrlFromAttr("url(#foo)"), "#foo"); | 
|         equal(svgedit.utilities.getUrlFromAttr("url(somefile.svg#foo)"), "somefile.svg#foo"); | 
|         equal(svgedit.utilities.getUrlFromAttr("url('#foo')"), "#foo"); | 
|         equal(svgedit.utilities.getUrlFromAttr('url("#foo")'), "#foo"); | 
|     }); | 
|   | 
|     test("Test getPathBBox", function() { | 
|         if(svgedit.browser.supportsPathBBox()) return; | 
|         var doc = svgedit.utilities.text2xml('<svg></svg>'); | 
|         var path = doc.createElementNS(svgns, 'path'); | 
|         path.setAttributeNS(null, 'd', 'm0,0l5,0l0,5l-5,0l0,-5z'); | 
|         var bb = svgedit.utilities.getPathBBox(path); | 
|         equals(typeof bb, 'object', 'BBox returned object'); | 
|         ok(bb.x && !isNaN(bb.x)); | 
|         ok(bb.y && !isNaN(bb.y)); | 
|     }); | 
|   | 
|   });  | 
|   </script>   | 
| </head>   | 
| <body>   | 
|   <h1 id='qunit-header'>Unit Tests for svgutils.js</h1> | 
|   <h2 id='qunit-banner'></h2> | 
|   <h2 id='qunit-userAgent'></h2> | 
|   <ol id='qunit-tests'> | 
|   </ol> | 
| </body>   | 
| </html> |