| <!DOCTYPE html> | 
| <html> | 
| <head> | 
|   <link rel='stylesheet' href='qunit/qunit.css' type='text/css'/> | 
|   <script src='../editor/lib/jquery.js'></script> | 
|   <script type='text/javascript' src='../editor/src/browser.js'></script> | 
|   <script type='text/javascript' src='../editor/src/math.js'></script> | 
|   <script type='text/javascript' src='../editor/src/svgutils.js'></script> | 
|   <script type='text/javascript' src='../editor/src/select.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); | 
|         } | 
|     }; | 
|   | 
|     module('svgedit.select'); | 
|   | 
|     var svgns = 'http://www.w3.org/2000/svg'; | 
|     var sandbox = document.getElementById('sandbox'); | 
|     var svgroot; | 
|     var svgcontent; | 
|     var rect; | 
|     var mockConfig = { | 
|         dimensions: [640,480] | 
|     }; | 
|     var mockFactory = { | 
|         createSVGElement: function(jsonMap) { | 
|             var elem = document.createElementNS(svgns, jsonMap['element']); | 
|             for (var attr in jsonMap['attr']) { | 
|                 elem.setAttribute(attr, jsonMap['attr'][attr]); | 
|             } | 
|             return elem; | 
|         }, | 
|         svgRoot: function() { return svgroot; }, | 
|         svgContent: function() { return svgcontent; } | 
|     }; | 
|   | 
|     function setUp() { | 
|         svgroot = mockFactory.createSVGElement({ | 
|             'element': 'svg', | 
|             'attr': {'id': 'svgroot'} | 
|         }); | 
|         svgcontent = svgroot.appendChild( | 
|             mockFactory.createSVGElement({ | 
|                 'element': 'svg', | 
|                 'attr': {'id': 'svgcontent'} | 
|             }) | 
|         ); | 
|         rect = svgcontent.appendChild( | 
|             mockFactory.createSVGElement({ | 
|                 'element': 'rect', | 
|                 'attr': { | 
|                     'id': 'rect', | 
|                     'x': '50', | 
|                     'y': '75', | 
|                     'width': '200', | 
|                     'height': '100' | 
|                 } | 
|             }) | 
|         ); | 
|         sandbox.appendChild(svgroot); | 
|     } | 
|   | 
|     function setUpWithInit() { | 
|         setUp(); | 
|         svgedit.select.init(mockConfig, mockFactory); | 
|     } | 
|   | 
|     function tearDown() { | 
|         while (sandbox.hasChildNodes()) { | 
|             sandbox.removeChild(sandbox.firstChild); | 
|         } | 
|     } | 
|   | 
|     test('Test svgedit.select package', function() { | 
|         expect(10); | 
|   | 
|         ok(svgedit.select); | 
|         ok(svgedit.select.Selector); | 
|         ok(svgedit.select.SelectorManager); | 
|         ok(svgedit.select.init); | 
|         ok(svgedit.select.getSelectorManager); | 
|         equals(typeof svgedit.select, typeof {}); | 
|         equals(typeof svgedit.select.Selector, typeof function(){}); | 
|         equals(typeof svgedit.select.SelectorManager, typeof function(){}); | 
|         equals(typeof svgedit.select.init, typeof function(){}); | 
|         equals(typeof svgedit.select.getSelectorManager, typeof function(){}); | 
|     }); | 
|   | 
|     test('Test Selector DOM structure', function() { | 
|         expect(26); | 
|   | 
|         setUp(); | 
|   | 
|         ok(svgroot); | 
|         ok(svgroot.hasChildNodes()); | 
|   | 
|         // Verify non-existence of Selector DOM nodes | 
|         equals(svgroot.childNodes.length, 1); | 
|         equals(svgroot.childNodes.item(0), svgcontent); | 
|         ok(!svgroot.querySelector('#selectorParentGroup')); | 
|   | 
|         svgedit.select.init(mockConfig, mockFactory); | 
|   | 
|         equals(svgroot.childNodes.length, 3); | 
|   | 
|         // Verify existence of canvas background. | 
|         var cb = svgroot.childNodes.item(0); | 
|         ok(cb); | 
|         equals(cb.id, 'canvasBackground'); | 
|   | 
|         ok(svgroot.childNodes.item(1)); | 
|         equals(svgroot.childNodes.item(1), svgcontent); | 
|   | 
|         // Verify existence of selectorParentGroup. | 
|         var spg = svgroot.childNodes.item(2); | 
|         ok(spg); | 
|         equals(svgroot.querySelector('#selectorParentGroup'), spg); | 
|         equals(spg.id, 'selectorParentGroup'); | 
|         equals(spg.tagName, 'g'); | 
|   | 
|         // Verify existence of all grip elements. | 
|         ok(spg.querySelector('#selectorGrip_resize_nw')); | 
|         ok(spg.querySelector('#selectorGrip_resize_n')); | 
|         ok(spg.querySelector('#selectorGrip_resize_ne')); | 
|         ok(spg.querySelector('#selectorGrip_resize_e')); | 
|         ok(spg.querySelector('#selectorGrip_resize_se')); | 
|         ok(spg.querySelector('#selectorGrip_resize_s')); | 
|         ok(spg.querySelector('#selectorGrip_resize_sw')); | 
|         ok(spg.querySelector('#selectorGrip_resize_w')); | 
|         ok(spg.querySelector('#selectorGrip_rotate_sw')); | 
|         ok(spg.querySelector('#selectorGrip_rotate_se')); | 
|         ok(spg.querySelector('#selectorGrip_rotate_nw')); | 
|         ok(spg.querySelector('#selectorGrip_rotate_ne')); | 
|   | 
|         tearDown(); | 
|     }); | 
|   | 
|   }); | 
|   </script> | 
| </head> | 
| <body> | 
|   <h1 id='qunit-header'>Unit Tests for select.js</h1> | 
|   <h2 id='qunit-banner'></h2> | 
|   <h2 id='qunit-userAgent'></h2> | 
|   <ol id='qunit-tests'> | 
|   </ol> | 
|   <div id='sandbox'></div> | 
| </body> | 
| </html> |