smartxml: node.setAttr tests
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 24 Oct 2013 08:27:32 +0000 (10:27 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 24 Oct 2013 08:27:32 +0000 (10:27 +0200)
src/smartxml/smartxml.test.js

index 10610c4..2ccfa6d 100644 (file)
@@ -133,6 +133,27 @@ describe('smartxml', function() {
                 });
             });
 
                 });
             });
 
+        describe('Setting node attributes', function() {
+            it('can set node attribute', function() {
+                var node = elementNodeFromXML('<div></div>');
+
+                node.setAttr('key', 'value');
+                expect(node.getAttr('key')).to.equal('value');
+            });
+            it('emits nodeAttrChange event', function() {
+                var node = elementNodeFromXML('<div key="value1"></div>'),
+                    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');
+            });
+        });
 
         });
     });
 
         });
     });