X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/02ea7eed98a6826504c4472a9309010277026a03..ed98b7046fe7f1e484bf9d58d3981054f4b06563:/src/smartxml/smartxml.test.js?ds=inline
diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js
index e7aa8d4..00c3ee9 100644
--- a/src/smartxml/smartxml.test.js
+++ b/src/smartxml/smartxml.test.js
@@ -370,6 +370,20 @@ describe('smartxml', function() {
});
describe('Events', function() {
+ it('emits nodeDetached event on node detach', function() {
+ var node = elementNodeFromXML('
'),
+ innerNode = node.contents()[0],
+ spy = sinon.spy();
+ node.document.on('change', spy);
+
+ var detached = innerNode.detach(),
+ event = spy.args[0][0];
+
+ expect(event.type).to.equal('nodeDetached');
+ expect(event.meta.node.sameNode(detached, 'detached node in event meta'));
+ expect(event.meta.parent.sameNode(node), 'original parent node in event meta');
+ }),
+
it('emits nodeAdded event when appending new node', function() {
var node = elementNodeFromXML(''),
spy = sinon.spy();
@@ -472,6 +486,28 @@ describe('smartxml', function() {
});
});
+ describe('Traversing', function() {
+ describe('Basic', function() {
+ it('can access node parent', function() {
+ var doc = getDocumentFromXML(''),
+ a = doc.root,
+ b = a.contents()[0];
+
+ expect(a.parent()).to.equal(null, 'parent of a root is null');
+ expect(b.parent().sameNode(a)).to.be.true;
+ });
+ it('can access node parents', function() {
+ var doc = getDocumentFromXML(''),
+ a = doc.root,
+ b = a.contents()[0],
+ c = b.contents()[0];
+
+ var parents = c.parents();
+ expect(parents).to.eql([b,a]);
+ });
+ });
+ });
+
describe('Serializing document to WLXML', function() {
it('keeps document intact when no changes have been made', function() {
var xmlIn = '',