X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/87ea9b141e236d41d34885a25c7942ec04d0ec28..58425daa1aa7e717e92eaec170262de31ed47bc0:/src/smartxml/smartxml.test.js
diff --git a/src/smartxml/smartxml.test.js b/src/smartxml/smartxml.test.js
index 10610c4..58156c2 100644
--- a/src/smartxml/smartxml.test.js
+++ b/src/smartxml/smartxml.test.js
@@ -133,8 +133,68 @@ describe('smartxml', function() {
});
});
+ describe('Setting node attributes', function() {
+ it('can set node attribute', function() {
+ var node = elementNodeFromXML('
');
+
+ node.setAttr('key', 'value');
+ expect(node.getAttr('key')).to.equal('value');
+ });
+ it('emits nodeAttrChange event', function() {
+ var node = elementNodeFromXML(''),
+ spy = sinon.spy();
+
+ node.document.on('change', spy);
+ node.setAttr('key', 'value2');
+ var event = spy.args[0][0];
+
+ expect(event.type).to.equal('nodeAttrChange');
+ expect(event.meta.node.sameNode(node)).to.be.true;
+ expect(event.meta.attr).to.equal('key');
+ expect(event.meta.oldVal).to.equal('value1');
+ });
+ });
+
+ });
+ });
+
+ describe('Basic TextNode properties', function() {
+ it('can have its text set', function() {
+ var node = elementNodeFromXML('Alice
'),
+ textNode = node.contents()[0];
+
+ textNode.setText('Cat');
+ expect(textNode.getText()).to.equal('Cat');
+ });
+
+ it('emits nodeTextChange', function() {
+ var node = elementNodeFromXML('Alice
'),
+ textNode = node.contents()[0],
+ spy = sinon.spy();
+
+ textNode.document.on('change', spy);
+ textNode.setText('Cat');
+ var event = spy.args[0][0];
+ expect(event.type).to.equal('nodeTextChange');
});
+
+ describe('Wrapping TextNode contents', function() {
+
+ it('wraps DocumentTextElement', function() {
+ var node = elementNodeFromXML(''),
+ textNode = node.contents()[0];
+
+ var returned = textNode.wrapWith({tagName: 'header'}),
+ parent = textNode.parent(),
+ parent2 = node.contents()[0];
+
+ expect(returned.sameNode(parent)).to.be.equal(true, 'wrapper is a parent');
+ expect(returned.sameNode(parent2)).to.be.equal(true, 'wrapper has a correct parent');
+ expect(returned.getTagName()).to.equal('header');
+ });
+ });
+
});
describe('Manipulations', function() {
@@ -154,16 +214,6 @@ describe('smartxml', function() {
expect(node.parent().sameNode(wrapper)).to.be.true;
});
- it('wraps text node with element node', function() {
- var node = elementNodeFromXML('Alice
'),
- textNode = node.contents()[0],
- wrapper = elementNodeFromXML('');
-
- textNode.wrapWith(wrapper);
- expect(textNode.parent().sameNode(wrapper)).to.be.true;
- expect(node.contents()).to.have.length(1);
- });
-
it('unwraps element node contents', function() {
var node = elementNodeFromXML('Alice
has propably a cat
!
'),
outerDiv = node.contents()[1];