| | |
| | | <script type='text/javascript' src='../editor/src/browser.js'></script> |
| | | <script type='text/javascript' src='../editor/src/svgutils.js'></script> |
| | | <script type='text/javascript' src='../editor/src/draw.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 |
| | |
| | | // Set up <svg> with nonce. |
| | | var svg_n = document.createElementNS(SVGNS, 'svg'); |
| | | svg_n.setAttributeNS(XMLNSNS, 'xmlns:se', SENS); |
| | | svg_n.setAttributeNS(SENS, 'se:nonce', NONCE); |
| | | svg_n.setAttributeNS(SENS, 'se:nonce', NONCE); |
| | | |
| | | var setupSvgWith3Layers = function(svgElem) { |
| | | var layer1 = document.createElementNS(SVGNS, 'g'); |
| | |
| | | layer3.appendChild(layer3_title); |
| | | svgElem.appendChild(layer3); |
| | | }; |
| | | |
| | | |
| | | var cleanupSvg = function(svgElem) { |
| | | while(svgElem.firstChild) {svgElem.removeChild(svgElem.firstChild);} |
| | | }; |
| | | |
| | | test('Test draw module', function() { |
| | | expect(4); |
| | | |
| | | |
| | | ok(svgedit.draw); |
| | | equals(typeof svgedit.draw, typeof {}); |
| | | |
| | | ok(svgedit.draw.Drawing); |
| | | equals(typeof svgedit.draw.Drawing, typeof function(){}); |
| | | }); |
| | | |
| | | |
| | | test('Test document creation', function() { |
| | | expect(3); |
| | | |
| | | |
| | | try { |
| | | var doc = new svgedit.draw.Drawing(); |
| | | ok(false, 'Created drawing without a valid <svg> element'); |
| | |
| | | doc = new svgedit.draw.Drawing(svg_n); |
| | | equals(doc.getNonce(), NONCE); |
| | | equals(doc.getSvgElem().getAttributeNS(SENS, 'nonce'), NONCE); |
| | | |
| | | |
| | | doc.clearNonce(); |
| | | ok(!doc.getNonce()); |
| | | ok(!doc.getSvgElem().getAttributeNS(SENS, 'se:nonce')); |
| | | |
| | | |
| | | doc.setNonce(NONCE); |
| | | equals(doc.getNonce(), NONCE); |
| | | equals(doc.getSvgElem().getAttributeNS(SENS, 'nonce'), NONCE); |
| | | }); |
| | | |
| | | |
| | | test('Test getId() and getNextId() without nonce', function() { |
| | | expect(7); |
| | | |
| | | |
| | | var elem2 = document.createElementNS(SVGNS, 'circle'); |
| | | elem2.id = 'svg_2'; |
| | | svg.appendChild(elem2); |
| | |
| | | |
| | | equals(doc.getNextId(), "svg_4"); |
| | | equals(doc.getId(), "svg_4"); |
| | | |
| | | |
| | | // clean out svg document |
| | | cleanupSvg(svg); |
| | | }); |
| | |
| | | |
| | | test('Test getId() and getNextId() with nonce', function() { |
| | | expect(7); |
| | | |
| | | |
| | | var prefix = "svg_" + NONCE; |
| | | |
| | | var elem2 = document.createElementNS(SVGNS, 'circle'); |
| | |
| | | |
| | | cleanupSvg(svg_n); |
| | | }); |
| | | |
| | | |
| | | test('Test releaseId()', function() { |
| | | expect(6); |
| | | |
| | |
| | | ok(result); |
| | | equals(doc.getNextId(), firstId); |
| | | equals(doc.getNextId(), "svg_3"); |
| | | |
| | | |
| | | ok(!doc.releaseId("bad-id")); |
| | | ok(doc.releaseId(firstId)); |
| | | ok(!doc.releaseId(firstId)); |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | |
| | | test('Test getNumLayers', function() { |
| | | expect(3); |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | |
| | | |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | equals(drawing.getNumLayers(), 3); |
| | | |
| | | cleanupSvg(svg); |
| | |
| | | setupSvgWith3Layers(svg); |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | equals(typeof drawing.hasLayer, typeof function() {}); |
| | | ok(!drawing.hasLayer('invalid-layer')); |
| | | |
| | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | |
| | | test('Test identifyLayers() with empty document', function() { |
| | | expect(9); |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | |
| | | |
| | | // By default, an empty document gets an empty group created. |
| | | drawing.identifyLayers(); |
| | | |
| | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | |
| | | test('Test identifyLayers() with some layers', function() { |
| | | expect(5); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | |
| | | equals(svg.childNodes.length, 3); |
| | | |
| | | |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | equals(drawing.getNumLayers(), 3); |
| | | equals(drawing.all_layers[0][1], svg.childNodes.item(0)); |
| | | equals(drawing.all_layers[1][1], svg.childNodes.item(1)); |
| | |
| | | |
| | | test('Test identifyLayers() with some layers and orphans', function() { |
| | | expect(10); |
| | | |
| | | |
| | | setupSvgWith3Layers(svg); |
| | | |
| | | var orphan1 = document.createElementNS(SVGNS, 'rect'); |
| | | var orphan2 = document.createElementNS(SVGNS, 'rect'); |
| | | svg.appendChild(orphan1); |
| | | svg.appendChild(orphan2); |
| | | |
| | | |
| | | equals(svg.childNodes.length, 5); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | equals(drawing.getNumLayers(), 4); |
| | | equals(drawing.all_layers[0][1], svg.childNodes.item(0)); |
| | | equals(drawing.all_layers[1][1], svg.childNodes.item(1)); |
| | |
| | | |
| | | test('Test getLayerName()', function() { |
| | | expect(4); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | equals(drawing.getNumLayers(), 3); |
| | | equals(drawing.getLayerName(0), LAYER1); |
| | | equals(drawing.getLayerName(1), LAYER2); |
| | |
| | | |
| | | test('Test getCurrentLayer()', function() { |
| | | expect(4); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | |
| | | |
| | | test('Test setCurrentLayer() and getCurrentLayerName()', function() { |
| | | expect(6); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | ok(drawing.setCurrentLayer); |
| | | equals(typeof drawing.setCurrentLayer, typeof function(){}); |
| | | |
| | | |
| | | drawing.setCurrentLayer(LAYER2); |
| | | equals(drawing.getCurrentLayerName(LAYER2), LAYER2); |
| | | equals(drawing.getCurrentLayer(), drawing.all_layers[1][1]); |
| | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | |
| | | test('Test createLayer()', function() { |
| | | expect(6); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | ok(drawing.createLayer); |
| | | equals(typeof drawing.createLayer, typeof function(){}); |
| | | |
| | | |
| | | var NEW_LAYER_NAME = 'Layer A'; |
| | | var layer_g = drawing.createLayer(NEW_LAYER_NAME); |
| | | equals(4, drawing.getNumLayers()); |
| | | equals(layer_g, drawing.getCurrentLayer()); |
| | | equals(NEW_LAYER_NAME, drawing.getCurrentLayerName()); |
| | | equals(NEW_LAYER_NAME, drawing.getLayerName(3)); |
| | | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | |
| | | test('Test getLayerVisibility()', function() { |
| | | expect(5); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | ok(drawing.getLayerVisibility); |
| | | equals(typeof drawing.getLayerVisibility, typeof function(){}); |
| | | ok(drawing.getLayerVisibility(LAYER1)); |
| | | ok(drawing.getLayerVisibility(LAYER2)); |
| | | ok(drawing.getLayerVisibility(LAYER3)); |
| | | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | test('Test setLayerVisibility()', function() { |
| | | expect(6); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | ok(drawing.setLayerVisibility); |
| | | equals(typeof drawing.setLayerVisibility, typeof function(){}); |
| | | |
| | |
| | | ok(!drawing.getLayerVisibility(LAYER1)); |
| | | ok(drawing.getLayerVisibility(LAYER2)); |
| | | ok(!drawing.getLayerVisibility(LAYER3)); |
| | | |
| | | |
| | | drawing.setLayerVisibility(LAYER3, 'test-string'); |
| | | ok(!drawing.getLayerVisibility(LAYER3)); |
| | | |
| | | ok(!drawing.getLayerVisibility(LAYER3)); |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | test('Test getLayerOpacity()', function() { |
| | | expect(5); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | ok(drawing.getLayerOpacity); |
| | | equals(typeof drawing.getLayerOpacity, typeof function(){}); |
| | | ok(drawing.getLayerOpacity(LAYER1) == 1.0); |
| | | ok(drawing.getLayerOpacity(LAYER2) == 1.0); |
| | | ok(drawing.getLayerOpacity(LAYER3) == 1.0); |
| | | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | test('Test setLayerOpacity()', function() { |
| | | expect(6); |
| | | |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | ok(drawing.setLayerOpacity); |
| | | equals(typeof drawing.setLayerOpacity, typeof function(){}); |
| | | |
| | |
| | | |
| | | drawing.setLayerOpacity(LAYER3, 100); |
| | | ok(drawing.getLayerOpacity(LAYER3) == 1.0); |
| | | |
| | | |
| | | cleanupSvg(svg); |
| | | }); |
| | | |
| | | |
| | | test('Test deleteCurrentLayer()', function() { |
| | | expect(6); |
| | | |
| | | var drawing = new svgedit.draw.Drawing(svg); |
| | | setupSvgWith3Layers(svg); |
| | | drawing.identifyLayers(); |
| | | |
| | | |
| | | drawing.setCurrentLayer(LAYER2); |
| | | |
| | | var curLayer = drawing.getCurrentLayer(); |
| | | equals(curLayer, drawing.all_layers[1][1]); |
| | | var deletedLayer = drawing.deleteCurrentLayer(); |
| | | |
| | | |
| | | equals(curLayer, deletedLayer); |
| | | equals(2, drawing.getNumLayers()); |
| | | equals(LAYER1, drawing.all_layers[0][0]); |
| | | equals(LAYER3, drawing.all_layers[1][0]); |
| | | equals(drawing.getCurrentLayer(), drawing.all_layers[1][1]); |
| | | }); |
| | | |
| | | |
| | | test('Test svgedit.draw.randomizeIds()', function() { |
| | | expect(9); |
| | | |
| | |
| | | // if there is a nonce. |
| | | var drawing = new svgedit.draw.Drawing(svg_n.cloneNode(true)); |
| | | ok(!!drawing.getNonce()); |
| | | |
| | | |
| | | drawing = new svgedit.draw.Drawing(svg.cloneNode(true)); |
| | | ok(!drawing.getNonce()); |
| | | |
| | |
| | | |
| | | drawing = new svgedit.draw.Drawing(svg.cloneNode(true)); |
| | | ok(!drawing.getNonce()); |
| | | |
| | | |
| | | drawing = new svgedit.draw.Drawing(svg_n.cloneNode(true)); |
| | | ok(!drawing.getNonce()); |
| | | }); |
| | | |
| | | }); |
| | | </script> |
| | | </head> |
| | | <body> |
| | | </head> |
| | | <body> |
| | | <h1 id='qunit-header'>Unit Tests for draw.js</h1> |
| | | <h2 id='qunit-banner'></h2> |
| | | <h2 id='qunit-userAgent'></h2> |
| | |
| | | </ol> |
| | | <div id='anchor' style='visibility:hidden'> |
| | | </div> |
| | | </body> |
| | | </body> |
| | | </html> |