textNode = doc.root.contents()[0];
extension = {};
- expect(function() {
- elementNode.transform('testTransformation');
- }).to.throw(Error);
- expect(function() {
- textNode.transform('testTransformation');
- }).to.throw(Error);
- expect(function() {
- doc.transform('testTransformation');
- }).to.throw(Error);
+ expect(elementNode.testTransformation).to.be.undefined;
+ expect(textNode.testTransformation).to.be.undefined;
+ expect(doc.testTransformation).to.be.undefined;
+
expect(doc.testMethod).to.be.undefined;
expect(elementNode.testMethod).to.be.undefined;
expect(textNode.testMethod).to.be.undefined;
+ expect(elementNode.elementTestMethod).to.be.undefined;
+ expect(textNode.textTestMethod).to.be.undefined;
});
it('allows adding method to a document', function() {
}}};
doc.registerExtension(extension);
- expect(doc.transform('testTransformation')).to.equal(doc, 'context is set to a document instance');
- expect(doc.transform('testTransformation2')).to.equal(doc, 'context is set to a document instance');
+ expect(doc.testTransformation()).to.equal(doc, 'context is set to a document instance');
+ expect(doc.testTransformation2()).to.equal(doc, 'context is set to a document instance');
});
it('allows adding method to a DocumentNode instance', function() {
- extension = {documentNode: {methods: {
- testMethod: function() { return this; }
- }}};
+ extension = {
+ documentNode: {
+ methods: {
+ testMethod: function() { return this; }
+ }
+ },
+ textNode: {
+ methods: {
+ textTestMethod: function() { return this; }
+ }
+ },
+ elementNode: {
+ methods: {
+ elementTestMethod: function() { return this; }
+ }
+ }
+ };
doc.registerExtension(extension);
expect(elementNode.testMethod().sameNode(elementNode)).to.equal(true, 'context is set to a node instance');
expect(textNode.testMethod().sameNode(textNode)).to.equal(true, 'context is set to a node instance');
+
+ expect(elementNode.elementTestMethod().sameNode(elementNode)).to.be.true;
+ expect(elementNode.textTestMethod).to.be.undefined;
+
+ expect(textNode.textTestMethod().sameNode(textNode)).to.be.true;
+ expect(textNode.elementTestMethod).to.be.undefined;
});
it('allows adding transformation to a DocumentNode', function() {
- extension = {documentNode: {transformations: {
- testTransformation: function() { return this; },
- testTransformation2: {impl: function() { return this;}}
- }}};
+ extension = {
+ documentNode: {
+ transformations: {
+ testTransformation: function() { return this; },
+ testTransformation2: {impl: function() { return this;}}
+ }
+ },
+ textNode: {
+ transformations: {
+ textTestTransformation: function() { return this; }
+ }
+ },
+ elementNode: {
+ transformations: {
+ elementTestTransformation: function() { return this; }
+ }
+ }
+ };
doc.registerExtension(extension);
- expect(elementNode.transform('testTransformation').sameNode(elementNode)).to.equal(true, '1');
- expect(elementNode.transform('testTransformation2').sameNode(elementNode)).to.equal(true, '2');
- expect(textNode.transform('testTransformation').sameNode(textNode)).to.equal(true, '3');
- expect(textNode.transform('testTransformation2').sameNode(textNode)).to.equal(true, '4');
+ /* refresh */
+ elementNode = doc.root;
+ textNode = doc.root.contents()[0];
+
+ expect(elementNode.testTransformation().sameNode(elementNode)).to.equal(true, '1');
+ expect(elementNode.testTransformation2().sameNode(elementNode)).to.equal(true, '2');
+ expect(textNode.testTransformation().sameNode(textNode)).to.equal(true, '3');
+ expect(textNode.testTransformation2().sameNode(textNode)).to.equal(true, '4');
+
+ expect(elementNode.elementTestTransformation().sameNode(elementNode)).to.be.true;
+ expect(elementNode.textTestTransformation).to.be.undefined;
+
+ expect(textNode.textTestTransformation().sameNode(textNode)).to.be.true;
+ expect(textNode.elementTestTransfomation).to.be.undefined;
});
});