ersatz-node-expat
Advanced tools
Comparing version 0.1.5 to 0.1.6
15
lib.js
@@ -27,3 +27,3 @@ /** | ||
var level = 0; | ||
self.level = 0; | ||
@@ -40,9 +40,6 @@ self._xml = new xml.SaxParser(function (cb) { | ||
// is written by chunk => we need to check that we are at the root level. | ||
if (level === 0) { | ||
self.emit("close"); | ||
} | ||
}); | ||
cb.onStartElementNS(function (elem, attrs, prefix, uri, namespaces) { | ||
level = level+1; | ||
self.level += 1; | ||
self.emit("startElement", elem, _toMap(attrs),prefix,uri,namespaces); | ||
@@ -63,3 +60,3 @@ self._text = ""; | ||
self.emit("endElement", elem , prefix, uri); | ||
level = level - 1; | ||
self.level -= 1; | ||
@@ -79,2 +76,4 @@ }); | ||
Parser.prototype.write = function (str) { | ||
var self = this; | ||
str =str.toString(); | ||
this._xml.parseString(str); | ||
@@ -84,7 +83,11 @@ }; | ||
Parser.prototype.end = function (data) { | ||
var self = this; | ||
if (data) { | ||
this.write(data); | ||
} | ||
if (self.level === 0) { | ||
self.emit("close"); | ||
} | ||
}; | ||
exports.Parser = Parser; |
{ | ||
"name": "ersatz-node-expat", | ||
"version": "0.1.5", | ||
"version": "0.1.6", | ||
"description": "node-expat compatible module using only javascript ( no libexpat)", | ||
@@ -5,0 +5,0 @@ "main": "lib.js", |
@@ -132,2 +132,3 @@ /*global require,describe, it*/ | ||
var spy_error = sinon.spy(); | ||
var spy_close = sinon.spy(); | ||
@@ -137,9 +138,9 @@ var parser = new ersatz.Parser('UTF-8'); | ||
parser.on('startElement', spy_startElement); | ||
parser.on('endElement', spy_endElement); | ||
parser.on('text', spy_text); | ||
parser.on('error', spy_error); | ||
parser.on('close', spy_close); | ||
parser.write("<?xml version=\"1.0\" encoding=\"utf-8\"?>"); | ||
parser.write("<ELEMENTS/>"); | ||
parser.write("<ELE"); | ||
@@ -155,15 +156,18 @@ parser.write("MENT>"); | ||
spy_error.callCount.should.eql(0); | ||
spy_close.callCount.should.eql(1); | ||
spy_startElement.callCount.should.eql(1); | ||
spy_startElement.getCall(0).args[0].should.eql("ELEMENT"); | ||
spy_startElement.callCount.should.eql(2); | ||
spy_startElement.getCall(1).args[0].should.eql("ELEMENT"); | ||
spy_endElement.callCount.should.eql(1); | ||
spy_endElement.getCall(0).args[0].should.eql("ELEMENT"); | ||
spy_text.callCount.should.eql(2); | ||
spy_text.getCall(0).args[0].should.eql("Hello"); | ||
spy_text.getCall(1).args[0].should.eql("World"); | ||
spy_endElement.callCount.should.eql(2); | ||
spy_endElement.getCall(1).args[0].should.eql("ELEMENT"); | ||
spy_text.callCount.should.eql(3); | ||
spy_text.getCall(0).args[0].should.eql(""); | ||
spy_text.getCall(1).args[0].should.eql("Hello"); | ||
spy_text.getCall(2).args[0].should.eql("World"); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
13317
194