created svgedit main object, moved all namespaces handling in the same place
git-svn-id: http://svg-edit.googlecode.com/svn/trunk@2411 eee81c28-f429-11dd-99c0-75d572ba1ddd
This commit is contained in:
@@ -1,73 +1,71 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<link rel='stylesheet' href='qunit/qunit.css' type='text/css'/>
|
||||
<script type='text/javascript' src='../editor/jquery.js'></script>
|
||||
<script type='text/javascript' src='../editor/browser.js'></script>
|
||||
<script type='text/javascript' src='../editor/svgutils.js'></script>
|
||||
<script type='text/javascript' src='../editor/draw.js'></script>
|
||||
<script type='text/javascript' src='qunit/qunit.js'></script>
|
||||
<script type='text/javascript'>
|
||||
$(function() {
|
||||
// log function
|
||||
QUnit.log = function(result, message) {
|
||||
<link rel='stylesheet' href='qunit/qunit.css' type='text/css'/>
|
||||
<script src='../editor/jquery.js'></script>
|
||||
<script src='../editor/svgedit.js'></script>
|
||||
<script src='../editor/browser.js'></script>
|
||||
<script src='../editor/svgutils.js'></script>
|
||||
<script src='../editor/draw.js'></script>
|
||||
<script src='qunit/qunit.js'></script>
|
||||
<script>
|
||||
$(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 SENS = "http://svg-edit.googlecode.com";
|
||||
var XMLNSNS = "http://www.w3.org/2000/xmlns/";
|
||||
var NS = svgedit.NS;
|
||||
var NONCE = 'foo';
|
||||
var LAYER1 = 'Layer 1';
|
||||
var LAYER2 = 'Layer 2';
|
||||
var LAYER3 = 'Layer 3';
|
||||
|
||||
var svg = document.createElementNS(SVGNS, 'svg');
|
||||
var svg = document.createElementNS(NS.SVG, 'svg');
|
||||
|
||||
// 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);
|
||||
var svg_n = document.createElementNS(NS.SVG, 'svg');
|
||||
svg_n.setAttributeNS(NS.XMLNS, 'xmlns:se', NS.SE);
|
||||
svg_n.setAttributeNS(NS.SE, 'se:nonce', NONCE);
|
||||
|
||||
var setupSvgWith3Layers = function(svgElem) {
|
||||
var layer1 = document.createElementNS(SVGNS, 'g');
|
||||
var layer1_title = document.createElementNS(SVGNS, 'title');
|
||||
var layer1 = document.createElementNS(NS.SVG, 'g');
|
||||
var layer1_title = document.createElementNS(NS.SVG, 'title');
|
||||
layer1_title.appendChild(document.createTextNode(LAYER1));
|
||||
layer1.appendChild(layer1_title);
|
||||
svgElem.appendChild(layer1);
|
||||
|
||||
var layer2 = document.createElementNS(SVGNS, 'g');
|
||||
var layer2_title = document.createElementNS(SVGNS, 'title');
|
||||
var layer2 = document.createElementNS(NS.SVG, 'g');
|
||||
var layer2_title = document.createElementNS(NS.SVG, 'title');
|
||||
layer2_title.appendChild(document.createTextNode(LAYER2));
|
||||
layer2.appendChild(layer2_title);
|
||||
svgElem.appendChild(layer2);
|
||||
|
||||
var layer3 = document.createElementNS(SVGNS, 'g');
|
||||
var layer3_title = document.createElementNS(SVGNS, 'title');
|
||||
var layer3 = document.createElementNS(NS.SVG, 'g');
|
||||
var layer3_title = document.createElementNS(NS.SVG, 'title');
|
||||
layer3_title.appendChild(document.createTextNode(LAYER3));
|
||||
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');
|
||||
@@ -92,21 +90,21 @@
|
||||
|
||||
doc = new svgedit.draw.Drawing(svg_n);
|
||||
equals(doc.getNonce(), NONCE);
|
||||
equals(doc.getSvgElem().getAttributeNS(SENS, 'nonce'), NONCE);
|
||||
|
||||
equals(doc.getSvgElem().getAttributeNS(NS.SE, 'nonce'), NONCE);
|
||||
|
||||
doc.clearNonce();
|
||||
ok(!doc.getNonce());
|
||||
ok(!doc.getSvgElem().getAttributeNS(SENS, 'se:nonce'));
|
||||
|
||||
ok(!doc.getSvgElem().getAttributeNS(NS.SE, 'se:nonce'));
|
||||
|
||||
doc.setNonce(NONCE);
|
||||
equals(doc.getNonce(), NONCE);
|
||||
equals(doc.getSvgElem().getAttributeNS(SENS, 'nonce'), NONCE);
|
||||
equals(doc.getSvgElem().getAttributeNS(NS.SE, 'nonce'), NONCE);
|
||||
});
|
||||
|
||||
|
||||
test('Test getId() and getNextId() without nonce', function() {
|
||||
expect(7);
|
||||
|
||||
var elem2 = document.createElementNS(SVGNS, 'circle');
|
||||
|
||||
var elem2 = document.createElementNS(NS.SVG, 'circle');
|
||||
elem2.id = 'svg_2';
|
||||
svg.appendChild(elem2);
|
||||
|
||||
@@ -122,7 +120,6 @@
|
||||
|
||||
equals(doc.getNextId(), "svg_4");
|
||||
equals(doc.getId(), "svg_4");
|
||||
|
||||
// clean out svg document
|
||||
cleanupSvg(svg);
|
||||
});
|
||||
@@ -149,10 +146,10 @@
|
||||
|
||||
test('Test getId() and getNextId() with nonce', function() {
|
||||
expect(7);
|
||||
|
||||
|
||||
var prefix = "svg_" + NONCE;
|
||||
|
||||
var elem2 = document.createElementNS(SVGNS, 'circle');
|
||||
var elem2 = document.createElementNS(NS.SVG, 'circle');
|
||||
elem2.id = prefix+'_2';
|
||||
svg_n.appendChild(elem2);
|
||||
|
||||
@@ -192,7 +189,7 @@
|
||||
|
||||
cleanupSvg(svg_n);
|
||||
});
|
||||
|
||||
|
||||
test('Test releaseId()', function() {
|
||||
expect(6);
|
||||
|
||||
@@ -205,14 +202,14 @@
|
||||
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);
|
||||
@@ -221,7 +218,7 @@
|
||||
|
||||
setupSvgWith3Layers(svg);
|
||||
drawing.identifyLayers();
|
||||
|
||||
|
||||
equals(drawing.getNumLayers(), 3);
|
||||
|
||||
cleanupSvg(svg);
|
||||
@@ -233,7 +230,7 @@
|
||||
setupSvgWith3Layers(svg);
|
||||
var drawing = new svgedit.draw.Drawing(svg);
|
||||
drawing.identifyLayers();
|
||||
|
||||
|
||||
equals(typeof drawing.hasLayer, typeof function() {});
|
||||
ok(!drawing.hasLayer('invalid-layer'));
|
||||
|
||||
@@ -243,12 +240,11 @@
|
||||
|
||||
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();
|
||||
|
||||
@@ -269,17 +265,17 @@
|
||||
|
||||
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));
|
||||
@@ -290,19 +286,19 @@
|
||||
|
||||
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');
|
||||
var orphan1 = document.createElementNS(NS.SVG, 'rect');
|
||||
var orphan2 = document.createElementNS(NS.SVG, '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));
|
||||
@@ -320,12 +316,12 @@
|
||||
|
||||
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);
|
||||
@@ -336,7 +332,7 @@
|
||||
|
||||
test('Test getCurrentLayer()', function() {
|
||||
expect(4);
|
||||
|
||||
|
||||
var drawing = new svgedit.draw.Drawing(svg);
|
||||
setupSvgWith3Layers(svg);
|
||||
drawing.identifyLayers();
|
||||
@@ -349,14 +345,14 @@
|
||||
|
||||
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]);
|
||||
@@ -367,50 +363,50 @@
|
||||
|
||||
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(){});
|
||||
|
||||
@@ -421,36 +417,36 @@
|
||||
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(){});
|
||||
|
||||
@@ -465,30 +461,30 @@
|
||||
|
||||
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);
|
||||
|
||||
@@ -496,7 +492,7 @@
|
||||
// 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());
|
||||
|
||||
@@ -515,25 +511,25 @@
|
||||
// but that their se:nonce attribute is left alone.
|
||||
svgedit.draw.randomizeIds(false, drawing);
|
||||
ok(!drawing.getNonce());
|
||||
ok(!!drawing.getSvgElem().getAttributeNS(SENS, 'nonce'));
|
||||
ok(!!drawing.getSvgElem().getAttributeNS(NS.SE, 'nonce'));
|
||||
|
||||
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>
|
||||
<h1 id='qunit-header'>Unit Tests for draw.js</h1>
|
||||
<h2 id='qunit-banner'></h2>
|
||||
<h2 id='qunit-userAgent'></h2>
|
||||
<ol id='qunit-tests'>
|
||||
</ol>
|
||||
<div id='anchor' style='visibility:hidden'>
|
||||
</div>
|
||||
</body>
|
||||
});
|
||||
</script>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id='qunit-header'>Unit Tests for draw.js</h1>
|
||||
<h2 id='qunit-banner'></h2>
|
||||
<h2 id='qunit-userAgent'></h2>
|
||||
<ol id='qunit-tests'>
|
||||
</ol>
|
||||
<div id='anchor' style='visibility:hidden'>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user