blob: a402c2502ce2cff4477d884167e2f97ce92d601d [file] [log] [blame]
<html>
<import src="../resources/mocha.sky" />
<import src="../resources/chai.sky" />
<script>
describe("Attribute collection", function() {
var div;
beforeEach(function() {
div = document.createElement("div");
});
it("should get by index", function() {
div.setAttribute("attr0", "value0");
div.setAttribute("attr1", "value1");
var attrs = div.getAttributes();
assert.equal(attrs.length, 2);
assert.equal(attrs[0].name, "attr0");
assert.equal(attrs[0].value, "value0");
assert.equal(attrs[1].name, "attr1");
assert.equal(attrs[1].value, "value1");
});
it("should set by name", function() {
div.setAttribute("attrName", "value0");
assert.equal(div.getAttribute("attrName"), "value0");
assert.equal(div.getAttributes()[0].name, "attrName");
assert.equal(div.getAttributes()[0].value, "value0");
div.setAttribute("attrName", "new value");
assert.equal(div.getAttribute("attrName"), "new value");
assert.equal(div.getAttributes()[0].name, "attrName");
assert.equal(div.getAttributes()[0].value, "new value");
});
it("should be case sensitive", function() {
div.setAttribute("attrName", "value0");
assert.isNull(div.getAttribute("attrname"));
assert.equal(div.getAttribute("attrName"), "value0");
});
it("should not live update", function() {
div.setAttribute("attr0", "0");
div.setAttribute("attr1", "1");
div.setAttribute("attr2", "2");
var oldAttributes = div.getAttributes();
assert.equal(oldAttributes.length, 3);
div.removeAttribute("attr1");
assert.equal(oldAttributes.length, 3);
div.setAttribute("attr0", "value0");
div.setAttribute("attr2", "value2");
var newAttributes = div.getAttributes();
assert.equal(newAttributes.length, 2);
assert.equal(newAttributes[0].name, "attr0");
assert.equal(newAttributes[0].value, "value0");
assert.equal(newAttributes[1].name, "attr2");
assert.equal(newAttributes[1].value, "value2");
assert.notEqual(newAttributes, oldAttributes);
assert.equal(oldAttributes[0].name, "attr0");
assert.equal(oldAttributes[0].value, "0");
assert.equal(oldAttributes[1].name, "attr1");
assert.equal(oldAttributes[1].value, "1");
assert.equal(oldAttributes[2].name, "attr2");
assert.equal(oldAttributes[2].value, "2");
});
});
</script>
</html>