Rename document module to draw. Add getNumLayers() to draw module.

git-svn-id: http://svg-edit.googlecode.com/svn/trunk@1925 eee81c28-f429-11dd-99c0-75d572ba1ddd
master
Jeff Schiller 2011-01-16 23:07:35 +00:00
parent 71dc44137d
commit 0db154bff4
8 changed files with 118 additions and 133 deletions

View File

@ -31,7 +31,7 @@ build/$(PACKAGE):
--js sanitize.js \
--js history.js \
--js select.js \
--js document.js \
--js draw.js \
--js svgcanvas.js \
--js svg-editor.js \
--js locale/locale.js \

View File

@ -1,24 +1,11 @@
/**
* Package: svgedit.document
* Package: svgedit.draw
*
* Licensed under the Apache License, Version 2
*
* Copyright(c) 2010 Jeff Schiller
* Copyright(c) 2011 Jeff Schiller
*/
/*
TODO: consider renaming this package to "draw" and the class to "Drawing"
TODOs:
Phase 1:
- migrate usages of randomizeIds() to proxy into the Document
Phase 2:
- migrate uniquifyElems into this module
- migrate as many usages of svgcontent in svgcanvas to using a Document instance as possible
*/
// Dependencies:
// 1) jQuery
@ -27,34 +14,34 @@ if (!window.svgedit) {
window.svgedit = {};
}
if (!svgedit.document) {
svgedit.document = {};
if (!svgedit.draw) {
svgedit.draw = {};
}
var svg_ns = "http://www.w3.org/2000/svg";
var se_ns = "http://svg-edit.googlecode.com";
/**
* This class encapsulates the concept of a layer in the document.
* This class encapsulates the concept of a layer in the drawing
* @param name {String} Layer name
* @param child {SVGGElement} Layer SVG group.
*/
svgedit.document.Layer = function(name, group) {
svgedit.draw.Layer = function(name, group) {
this.name_ = name;
this.group_ = group;
};
svgedit.document.Layer.prototype.getName = function() {
svgedit.draw.Layer.prototype.getName = function() {
return this.name_;
};
svgedit.document.Layer.prototype.getGroup = function() {
svgedit.draw.Layer.prototype.getGroup = function() {
return this.group_;
};
/**
* This class encapsulates the concept of a SVG-edit document.
* This class encapsulates the concept of a SVG-edit drawing
*
* @param svgElem {SVGSVGElement} The SVG DOM Element that this JS object
* encapsulates. If the svgElem has a se:nonce attribute on it, then
@ -62,10 +49,10 @@ svgedit.document.Layer.prototype.getGroup = function() {
* @param opt_idPrefix {String} The ID prefix to use. Defaults to "svg_"
* if not specified.
*/
svgedit.document.Document = function(svgElem, opt_idPrefix) {
svgedit.draw.Drawing = function(svgElem, opt_idPrefix) {
if (!svgElem || !svgElem.tagName || !svgElem.namespaceURI ||
svgElem.tagName != 'svg' || svgElem.namespaceURI != svg_ns) {
throw "Error: svgedit.document.Document instance initialized without a <svg> element";
throw "Error: svgedit.draw.Drawing instance initialized without a <svg> element";
}
this.svgElem_ = svgElem;
@ -81,7 +68,7 @@ svgedit.document.Document = function(svgElem, opt_idPrefix) {
this.nonce_ = this.svgElem_.getAttributeNS(se_ns, 'nonce') || "";
};
svgedit.document.Document.prototype.getElem_ = function(id) {
svgedit.draw.Drawing.prototype.getElem_ = function(id) {
if(this.svgElem_.querySelector) {
// querySelector lookup
return this.svgElem_.querySelector('#'+id);
@ -91,11 +78,11 @@ svgedit.document.Document.prototype.getElem_ = function(id) {
}
};
svgedit.document.Document.prototype.getSvgElem = function() {
svgedit.draw.Drawing.prototype.getSvgElem = function() {
return this.svgElem_;
}
svgedit.document.Document.prototype.getNonce = function() {
svgedit.draw.Drawing.prototype.getNonce = function() {
return this.nonce_;
};
@ -103,7 +90,7 @@ svgedit.document.Document.prototype.getNonce = function() {
* Returns the latest object id as a string.
* @return {String} The latest object Id.
*/
svgedit.document.Document.prototype.getId = function() {
svgedit.draw.Drawing.prototype.getId = function() {
return this.nonce_ ?
this.idPrefix + this.nonce_ +'_' + this.obj_num :
this.idPrefix + this.obj_num;
@ -113,7 +100,7 @@ svgedit.document.Document.prototype.getId = function() {
* Returns the next object Id as a string.
* @return {String} The next object Id to use.
*/
svgedit.document.Document.prototype.getNextId = function() {
svgedit.draw.Drawing.prototype.getNextId = function() {
var oldObjNum = this.obj_num;
var restoreOldObjNum = false;
@ -154,7 +141,7 @@ svgedit.document.Document.prototype.getNextId = function() {
* @return {boolean} Returns true if the id was valid to be released,
* false otherwise.
*/
svgedit.document.Document.prototype.releaseId = function(id) {
svgedit.draw.Drawing.prototype.releaseId = function(id) {
// confirm if this is a valid id for this Document, else return false
var front = this.idPrefix + (this.nonce_ ? this.nonce_ +'_' : '');
if (typeof id != typeof '' || id.indexOf(front) != 0) {
@ -175,4 +162,13 @@ svgedit.document.Document.prototype.releaseId = function(id) {
return true;
};
// Function: getNumLayers
// Returns the number of layers in the current drawing.
//
// Returns:
// The number of layers in the current drawing.
svgedit.draw.Drawing.prototype.getNumLayers = function() {
return this.all_layers.length;
};
})();

View File

@ -66,7 +66,7 @@ function embedded_svg_edit(frame){
//Run in firebug on http://svg-edit.googlecode.com/svn/trunk/docs/files/svgcanvas-js.html
//for(var i=0,q=[],f = document.querySelectorAll("div.CFunction h3.CTitle a");i<f.length;i++){q.push(f[i].name)};q
//var functions = ["clearSelection", "addToSelection", "removeFromSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getNumLayers", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear"];
//var functions = ["clearSelection", "addToSelection", "removeFromSelection", "open", "save", "getSvgString", "setSvgString", "createLayer", "deleteCurrentLayer", "getLayer", "getCurrentLayer", "setCurrentLayer", "renameCurrentLayer", "setCurrentLayerPosition", "getLayerVisibility", "setLayerVisibility", "moveSelectedToLayer", "getLayerOpacity", "setLayerOpacity", "clear"];
//Newer, well, it extracts things that aren't documented as well. All functions accessible through the normal thingy can now be accessed though the API

View File

@ -26,7 +26,7 @@
<script type="text/javascript" src="sanitize.js"></script>
<script type="text/javascript" src="history.js"></script>
<script type="text/javascript" src="select.js"></script>
<script type="text/javascript" src="document.js"></script>
<script type="text/javascript" src="draw.js"></script>
<script type="text/javascript" src="svgcanvas.js"></script>
<script type="text/javascript" src="svg-editor.js"></script>
<script type="text/javascript" src="locale/locale.js"></script>

View File

@ -3538,7 +3538,7 @@
});
$('#layer_new').click(function() {
var i = svgCanvas.getNumLayers();
var i = svgCanvas.getCurrentDrawing().getNumLayers();
do {
var uniqName = uiStrings.layers.layer + " " + ++i;
} while(svgCanvas.hasLayer(uniqName));
@ -3583,7 +3583,7 @@
}
function mergeLayer() {
if($('#layerlist tr.layersel').index() == svgCanvas.getNumLayers()-1) return;
if($('#layerlist tr.layersel').index() == svgCanvas.getCurrentDrawing().getNumLayers()-1) return;
svgCanvas.mergeLayer();
updateContextPanel();
populateLayers();
@ -3591,7 +3591,7 @@
function moveLayer(pos) {
var curIndex = $('#layerlist tr.layersel').index();
var total = svgCanvas.getNumLayers();
var total = svgCanvas.getCurrentDrawing().getNumLayers();
if(curIndex > 0 || curIndex < total-1) {
curIndex += pos;
svgCanvas.setCurrentLayerPosition(total-curIndex-1);
@ -3695,7 +3695,7 @@
// this function highlights the layer passed in (by fading out the other layers)
// if no layer is passed in, this function restores the other layers
var toggleHighlightLayer = function(layerNameToHighlight) {
var curNames = new Array(svgCanvas.getNumLayers());
var curNames = new Array(svgCanvas.getCurrentDrawing().getNumLayers());
for (var i = 0; i < curNames.length; ++i) { curNames[i] = svgCanvas.getLayer(i); }
if (layerNameToHighlight) {
@ -3718,7 +3718,7 @@
layerlist.empty();
selLayerNames.empty();
var currentlayer = svgCanvas.getCurrentLayer();
var layer = svgCanvas.getNumLayers();
var layer = svgCanvas.getCurrentDrawing().getNumLayers();
var icon = $.getSvgIcon('eye');
// we get the layers in the reverse z-order (the layer rendered on top is listed first)
while (layer--) {

View File

@ -19,7 +19,7 @@
// 7) sanitize.js
// 8) history.js
// 9) select.js
// 10) document.js
// 10) draw.js
if(!window.console) {
window.console = {};
@ -184,15 +184,15 @@ var randomize_ids = false;
// Set nonce if randomize_ids = true
if (randomize_ids) svgcontent.setAttributeNS(se_ns, 'se:nonce', nonce);
// Current svgedit.document.Document object
// @type {svgedit.document.Document}
var current_doc = new svgedit.document.Document(svgcontent, idprefix);
// Current svgedit.draw.Drawing object
// @type {svgedit.draw.Drawing}
var current_drawing = new svgedit.draw.Drawing(svgcontent, idprefix);
// Function: getCurrentDoc
// Returns the current Document JS object.
// @return {svgedit.document.Document}
canvas.getCurrentDoc = function() {
return current_doc;
// Function: getCurrentDrawing
// Returns the current Drawing.
// @return {svgedit.draw.Drawing}
canvas.getCurrentDrawing = function() {
return current_drawing;
};
// Float displaying the current zoom level (1 = 100%, .5 = 50%, etc)
@ -996,19 +996,8 @@ var getId, getNextId, call;
// Object to contain editor event names and callback functions
var events = {};
// Function: getId
// Returns the last created DOM element ID string
getId = c.getId = function() {
return current_doc.getId();
};
// Function: getNextId
// Creates and returns a unique ID string for a DOM element
getNextId = c.getNextId = function() {
var id = current_doc.getNextId();
console.log("getNextId() returned " + id);
return id;
};
getId = c.getId = function() { return current_drawing.getId(); };
getNextId = c.getNextId = function() { return current_drawing.getNextId(); };
// Function: call
// Run the callback function associated with the given event
@ -3468,7 +3457,7 @@ var getMouseTarget = this.getMouseTarget = function(evt) {
});
if (!keep && element != null) {
current_doc.releaseId(getId());
current_drawing.releaseId(getId());
element.parentNode.removeChild(element);
element = null;
@ -6688,7 +6677,7 @@ this.setSvgString = function(xmlString) {
if (extensions["Arrows"]) call("setarrownonce", nonce) ;
}
current_doc = new svgedit.document.Document(svgcontent, idprefix);
current_drawing = new svgedit.draw.Drawing(svgcontent, idprefix);
// change image href vals if possible
content.find('image').each(function() {
@ -6965,7 +6954,7 @@ this.importSvgString = function(xmlString) {
// Function: identifyLayers
// Updates layer system
var identifyLayers = canvas.identifyLayers = function() {
current_doc.all_layers = [];
current_drawing.all_layers = [];
leaveContext();
var numchildren = svgcontent.childNodes.length;
// loop through all children of svgcontent
@ -6987,7 +6976,7 @@ var identifyLayers = canvas.identifyLayers = function() {
// store layer and name in global variable
if (name) {
layernames.push(name);
current_doc.all_layers.push( [name,child] );
current_drawing.all_layers.push( [name,child] );
current_layer = child;
svgedit.utilities.walkTree(child, function(e){e.setAttribute("style", "pointer-events:inherit");});
current_layer.setAttribute("style", "pointer-events:none");
@ -7018,7 +7007,7 @@ var identifyLayers = canvas.identifyLayers = function() {
current_layer.appendChild(orphans[j]);
}
current_layer = svgcontent.appendChild(current_layer);
current_doc.all_layers.push( [newname, current_layer] );
current_drawing.all_layers.push( [newname, current_layer] );
}
svgedit.utilities.walkTree(current_layer, function(e){e.setAttribute("style","pointer-events:inherit");});
current_layer.setAttribute("style","pointer-events:all");
@ -7080,7 +7069,7 @@ this.cloneLayer = function(name) {
// Deletes the current layer from the drawing and then clears the selection. This function
// then calls the 'changed' handler. This is an undoable action.
this.deleteCurrentLayer = function() {
if (current_layer && current_doc.all_layers.length > 1) {
if (current_layer && current_drawing.all_layers.length > 1) {
var batchCmd = new BatchCommand("Delete Layer");
// actually delete from the DOM and store in our Undo History
var parent = current_layer.parentNode;
@ -7090,7 +7079,7 @@ this.deleteCurrentLayer = function() {
addCommandToHistory(batchCmd);
clearSelection();
identifyLayers();
canvas.setCurrentLayer(current_doc.all_layers[current_doc.all_layers.length-1][0]);
canvas.setCurrentLayer(current_drawing.all_layers[current_drawing.all_layers.length-1][0]);
call("changed", [svgcontent]);
return true;
}
@ -7100,20 +7089,13 @@ this.deleteCurrentLayer = function() {
// Function: hasLayer
// Check if layer with given name already exists
this.hasLayer = function(name) {
for(var i = 0; i < current_doc.all_layers.length; i++) {
if(current_doc.all_layers[i][0] == name) return true;
for(var i = 0; i < current_drawing.all_layers.length; i++) {
if(current_drawing.all_layers[i][0] == name) return true;
}
return false;
};
// Function: getNumLayers
// Returns the number of layers in the current drawing.
//
// Returns:
// The number of layers in the current drawing.
this.getNumLayers = function() {
return current_doc.all_layers.length;
};
this.getNumLayers = function() { return current_drawing.getNumLayers(); };
// Function: getLayer
// Returns the name of the ith layer. If the index is out of range, an empty string is returned.
@ -7124,8 +7106,8 @@ this.getNumLayers = function() {
// Returns:
// The name of the ith layer
this.getLayer = function(i) {
if (i >= 0 && i < canvas.getNumLayers()) {
return current_doc.all_layers[i][0];
if (i >= 0 && i < current_drawing.getNumLayers()) {
return current_drawing.all_layers[i][0];
}
return "";
};
@ -7137,9 +7119,9 @@ this.getLayer = function(i) {
// Returns:
// The name of the currently active layer.
this.getCurrentLayer = function() {
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][1] == current_layer) {
return current_doc.all_layers[i][0];
for (var i = 0; i < current_drawing.getNumLayers(); ++i) {
if (current_drawing.all_layers[i][1] == current_layer) {
return current_drawing.all_layers[i][0];
}
}
return "";
@ -7156,12 +7138,12 @@ this.getCurrentLayer = function() {
// true if the current layer was switched, otherwise false
this.setCurrentLayer = function(name) {
name = svgedit.utilities.toXml(name);
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (name == current_doc.all_layers[i][0]) {
if (current_layer != current_doc.all_layers[i][1]) {
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (name == current_drawing.all_layers[i][0]) {
if (current_layer != current_drawing.all_layers[i][1]) {
clearSelection();
current_layer.setAttribute("style", "pointer-events:none");
current_layer = current_doc.all_layers[i][1];
current_layer = current_drawing.all_layers[i][1];
current_layer.setAttribute("style", "pointer-events:all");
}
return true;
@ -7187,11 +7169,11 @@ this.renameCurrentLayer = function(newname) {
if (!canvas.setCurrentLayer(newname)) {
var batchCmd = new BatchCommand("Rename Layer");
// find the index of the layer
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][1] == oldLayer) break;
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (current_drawing.all_layers[i][1] == oldLayer) break;
}
var oldname = current_doc.all_layers[i][0];
current_doc.all_layers[i][0] = svgedit.utilities.toXml(newname);
var oldname = current_drawing.all_layers[i][0];
current_drawing.all_layers[i][0] = svgedit.utilities.toXml(newname);
// now change the underlying title element contents
var len = oldLayer.childNodes.length;
@ -7227,31 +7209,31 @@ this.renameCurrentLayer = function(newname) {
// Returns:
// true if the current layer position was changed, false otherwise.
this.setCurrentLayerPosition = function(newpos) {
if (current_layer && newpos >= 0 && newpos < current_doc.all_layers.length) {
for (var oldpos = 0; oldpos < current_doc.all_layers.length; ++oldpos) {
if (current_doc.all_layers[oldpos][1] == current_layer) break;
if (current_layer && newpos >= 0 && newpos < current_drawing.all_layers.length) {
for (var oldpos = 0; oldpos < current_drawing.all_layers.length; ++oldpos) {
if (current_drawing.all_layers[oldpos][1] == current_layer) break;
}
// some unknown error condition (current_layer not in all_layers)
if (oldpos == current_doc.all_layers.length) { return false; }
if (oldpos == current_drawing.all_layers.length) { return false; }
if (oldpos != newpos) {
// if our new position is below us, we need to insert before the node after newpos
var refLayer = null;
var oldNextSibling = current_layer.nextSibling;
if (newpos > oldpos ) {
if (newpos < current_doc.all_layers.length-1) {
refLayer = current_doc.all_layers[newpos+1][1];
if (newpos < current_drawing.all_layers.length-1) {
refLayer = current_drawing.all_layers[newpos+1][1];
}
}
// if our new position is above us, we need to insert before the node at newpos
else {
refLayer = current_doc.all_layers[newpos][1];
refLayer = current_drawing.all_layers[newpos][1];
}
svgcontent.insertBefore(current_layer, refLayer);
addCommandToHistory(new MoveElementCommand(current_layer, oldNextSibling, svgcontent));
identifyLayers();
canvas.setCurrentLayer(current_doc.all_layers[newpos][0]);
canvas.setCurrentLayer(current_drawing.all_layers[newpos][0]);
return true;
}
@ -7272,9 +7254,9 @@ this.setCurrentLayerPosition = function(newpos) {
this.getLayerVisibility = function(layername) {
// find the layer
var layer = null;
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][0] == layername) {
layer = current_doc.all_layers[i][1];
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (current_drawing.all_layers[i][0] == layername) {
layer = current_drawing.all_layers[i][1];
break;
}
}
@ -7295,9 +7277,9 @@ this.getLayerVisibility = function(layername) {
this.setLayerVisibility = function(layername, bVisible) {
// find the layer
var layer = null;
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][0] == layername) {
layer = current_doc.all_layers[i][1];
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (current_drawing.all_layers[i][0] == layername) {
layer = current_drawing.all_layers[i][1];
break;
}
}
@ -7329,9 +7311,9 @@ this.setLayerVisibility = function(layername, bVisible) {
this.moveSelectedToLayer = function(layername) {
// find the layer
var layer = null;
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][0] == layername) {
layer = current_doc.all_layers[i][1];
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (current_drawing.all_layers[i][0] == layername) {
layer = current_drawing.all_layers[i][1];
break;
}
}
@ -7397,7 +7379,7 @@ this.mergeLayer = function(skipHistory) {
this.mergeAllLayers = function() {
var batchCmd = new BatchCommand("Merge all Layers");
current_layer = current_doc.all_layers[current_doc.all_layers.length-1][1];
current_layer = current_drawing.all_layers[current_drawing.all_layers.length-1][1];
while($(svgcontent).children('g').length > 1) {
batchCmd.addSubCommand(canvas.mergeLayer(true));
}
@ -7418,9 +7400,9 @@ this.mergeAllLayers = function() {
// The opacity value of the given layer. This will be a value between 0.0 and 1.0, or null
// if layername is not a valid layer
this.getLayerOpacity = function(layername) {
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][0] == layername) {
var g = current_doc.all_layers[i][1];
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (current_drawing.all_layers[i][0] == layername) {
var g = current_drawing.all_layers[i][1];
var opacity = g.getAttribute("opacity");
if (!opacity) {
opacity = "1.0";
@ -7444,9 +7426,9 @@ this.getLayerOpacity = function(layername) {
// opacity - a float value in the range 0.0-1.0
this.setLayerOpacity = function(layername, opacity) {
if (opacity < 0.0 || opacity > 1.0) return;
for (var i = 0; i < current_doc.all_layers.length; ++i) {
if (current_doc.all_layers[i][0] == layername) {
var g = current_doc.all_layers[i][1];
for (var i = 0; i < current_drawing.all_layers.length; ++i) {
if (current_drawing.all_layers[i][0] == layername) {
var g = current_drawing.all_layers[i][1];
g.setAttribute("opacity", opacity);
break;
}
@ -7522,7 +7504,7 @@ this.clear = function() {
}
}
// create empty first layer
current_doc.all_layers = [];
current_drawing.all_layers = [];
canvas.createLayer("Layer 1");

View File

@ -11,7 +11,7 @@
<iframe src='svgutils_test.html' width='100%' height='300'></iframe>
<iframe src='history_test.html' width='100%' height='300'></iframe>
<iframe src='select_test.html' width='100%' height='300'></iframe>
<iframe src='document_test.html' width='100%' height='300'></iframe>
<iframe src='draw_test.html' width='100%' height='300'></iframe>
</body>
<script>
window.setTimeout(function() {

View File

@ -3,7 +3,7 @@
<head>
<link rel='stylesheet' href='qunit/qunit.css' type='text/css'/>
<script src='../editor/jquery.js'></script>
<script type='text/javascript' src='../editor/document.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() {
@ -26,28 +26,28 @@
svg_n.setAttributeNS(XMLNSNS, 'xmlns:se', SENS);
svg_n.setAttributeNS(SENS, 'se:nonce', NONCE);
test('Test document module', function() {
test('Test draw module', function() {
expect(4);
ok(svgedit.document);
equals(typeof svgedit.document, typeof {});
ok(svgedit.draw);
equals(typeof svgedit.draw, typeof {});
ok(svgedit.document.Document);
equals(typeof svgedit.document.Document, typeof function(){});
ok(svgedit.draw.Drawing);
equals(typeof svgedit.draw.Drawing, typeof function(){});
});
test('Test document creation', function() {
expect(3);
try {
var doc = new svgedit.document.Document();
ok(false, 'Created document without a valid <svg> element');
var doc = new svgedit.draw.Drawing();
ok(false, 'Created drawing without a valid <svg> element');
} catch(e) {
ok(true);
}
try {
var doc = new svgedit.document.Document(svg);
var doc = new svgedit.draw.Drawing(svg);
ok(doc);
equals(typeof doc, typeof {});
} catch(e) {
@ -58,10 +58,10 @@
test('Test nonce', function() {
expect(2);
var doc = new svgedit.document.Document(svg);
var doc = new svgedit.draw.Drawing(svg);
equals(doc.getNonce(), "");
doc = new svgedit.document.Document(svg_n);
doc = new svgedit.draw.Drawing(svg_n);
equals(doc.getNonce(), NONCE);
});
@ -72,7 +72,7 @@
elem2.id = 'svg_2';
svg.appendChild(elem2);
var doc = new svgedit.document.Document(svg);
var doc = new svgedit.draw.Drawing(svg);
equals(doc.getId(), "svg_0");
@ -93,7 +93,7 @@
expect(7);
var prefix = 'Bar-';
var doc = new svgedit.document.Document(svg, prefix);
var doc = new svgedit.draw.Drawing(svg, prefix);
equals(doc.getId(), prefix+"0");
@ -118,7 +118,7 @@
elem2.id = prefix+'_2';
svg_n.appendChild(elem2);
var doc = new svgedit.document.Document(svg_n);
var doc = new svgedit.draw.Drawing(svg_n);
equals(doc.getId(), prefix+"_0");
@ -137,7 +137,7 @@
expect(7);
var PREFIX = 'Bar-';
var doc = new svgedit.document.Document(svg_n, PREFIX);
var doc = new svgedit.draw.Drawing(svg_n, PREFIX);
var prefix = PREFIX + NONCE + "_";
equals(doc.getId(), prefix+"0");
@ -157,7 +157,7 @@
test('Test releaseId()', function() {
expect(6);
var doc = new svgedit.document.Document(svg);
var doc = new svgedit.draw.Drawing(svg);
var firstId = doc.getNextId();
var secondId = doc.getNextId();
@ -171,11 +171,18 @@
ok(doc.releaseId(firstId));
ok(!doc.releaseId(firstId));
});
test('Test getNumLayers', function() {
expect(2);
var doc = new svgedit.draw.Drawing(svg);
equals(typeof doc.getNumLayers, typeof function() {});
equals(doc.getNumLayers(), 0);
});
});
</script>
</head>
<body>
<h1 id='qunit-header'>Unit Tests for document.js</h1>
<h1 id='qunit-header'>Unit Tests for draw.js</h1>
<h2 id='qunit-banner'></h2>
<h2 id='qunit-userAgent'></h2>
<ol id='qunit-tests'>