X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/180cd85dd5dcdcb29eb1a4626e3c6412558caddb..9ce300f6e7b27995b982c14b79785e8ca4bed4f0:/src/smartxml/smartxml.test.js
diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js
index 4f9a72a..8154ff5 100644
--- a/src/smartxml/smartxml.test.js
+++ b/src/smartxml/smartxml.test.js
@@ -295,7 +295,7 @@ describe('smartxml', function() {
it('wraps text spanning multiple sibling TextNodes', function() {
var section = elementNodeFromXML(''),
wrapper = section.wrapText({
- _with: {tag: 'span', attrs: {'attr1': 'value1'}},
+ _with: {tagName: 'span', attrs: {'attr1': 'value1'}},
offsetStart: 6,
offsetEnd: 4,
textNodeIdx: [0,2]
@@ -307,6 +307,7 @@ describe('smartxml', function() {
var wrapper2 = section.contents()[1];
expect(wrapper2.sameNode(wrapper)).to.be.true;
+ expect(wrapper.getTagName()).to.equal('span');
var wrapperContents = wrapper.contents();
expect(wrapperContents.length).to.equal(3);
@@ -369,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();
@@ -380,14 +395,19 @@ describe('smartxml', function() {
expect(event.meta.node.sameNode(appended)).to.be.true;
});
- it('doesn\'t emit nodeAdded when appending aready existing node', function() {
+ it('emits nodeMoved when appending aready existing node', function() {
var node = elementNodeFromXML(''),
a = node.contents()[0],
b = node.contents()[1],
spy = sinon.spy();
node.document.on('change', spy);
- a.append(b);
- expect(spy.callCount).to.equal(0);
+
+ var appended = a.append(b),
+ event = spy.args[0][0];
+
+ expect(spy.callCount).to.equal(1);
+ expect(event.type).to.equal('nodeMoved');
+ expect(event.meta.node.sameNode(appended)).to.be.true;
});
it('emits nodeAdded event when prepending new node', function() {
@@ -401,14 +421,18 @@ describe('smartxml', function() {
expect(event.meta.node.sameNode(prepended)).to.be.true;
});
- it('doesn\'t emit nodeAdded when prepending aready existing node', function() {
+ it('emits nodeMoved when prepending aready existing node', function() {
var node = elementNodeFromXML(''),
a = node.contents()[0],
b = node.contents()[1],
spy = sinon.spy();
node.document.on('change', spy);
- a.prepend(b);
- expect(spy.callCount).to.equal(0);
+
+ var prepended = a.prepend(b),
+ event = spy.args[0][0];
+ expect(spy.callCount).to.equal(1);
+ expect(event.type).to.equal('nodeMoved');
+ expect(event.meta.node.sameNode(prepended)).to.be.true;
});
it('emits nodeAdded event when inserting node after another', function() {
@@ -422,14 +446,18 @@ describe('smartxml', function() {
expect(event.meta.node.sameNode(inserted)).to.be.true;
});
- it('doesn\'t emit nodeAdded when inserting aready existing node after another', function() {
+ it('emits nodeMoved when inserting aready existing node after another', function() {
var node = elementNodeFromXML(''),
a = node.contents()[0],
b = node.contents()[1],
spy = sinon.spy();
node.document.on('change', spy);
- b.after(a);
- expect(spy.callCount).to.equal(0);
+ var inserted = b.after(a),
+ event = spy.args[0][0];
+
+ expect(spy.callCount).to.equal(1);
+ expect(event.type).to.equal('nodeMoved');
+ expect(event.meta.node.sameNode(inserted)).to.be.true;
});
it('emits nodeAdded event when inserting node before another', function() {
@@ -443,14 +471,18 @@ describe('smartxml', function() {
expect(event.meta.node.sameNode(inserted)).to.be.true;
});
- it('doesn\'t emit nodeAdded when inserting aready existing node before another', function() {
+ it('emits nodeAdded when inserting aready existing node before another', function() {
var node = elementNodeFromXML(''),
a = node.contents()[0],
b = node.contents()[1],
spy = sinon.spy();
node.document.on('change', spy);
- a.before(b);
- expect(spy.callCount).to.equal(0);
+ var inserted = a.before(b),
+ event = spy.args[0][0];
+
+ expect(spy.callCount).to.equal(1);
+ expect(event.type).to.equal('nodeMoved');
+ expect(event.meta.node.sameNode(inserted)).to.be.true;
});
});