| Index: sky/tests/lowlevel/classlist.sky
|
| diff --git a/sky/tests/lowlevel/classlist.sky b/sky/tests/lowlevel/classlist.sky
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..1622fa4ac172cc547cf7bf3ea389c0a18cebe3f6
|
| --- /dev/null
|
| +++ b/sky/tests/lowlevel/classlist.sky
|
| @@ -0,0 +1,102 @@
|
| +<!DOCTYPE html>
|
| +<sky>
|
| +<import src="../resources/mocha.sky" />
|
| +<import src="../resources/chai.sky" />
|
| +<style>
|
| + div { font-size: 5px; }
|
| + .font-10 { font-size: 10px; }
|
| + .font-12 { font-size: 12px; }
|
| + .font-24 { font-size: 24px; }
|
| +</style>
|
| +<div id="sandbox"></div>
|
| +<script>
|
| +describe("Class list", function() {
|
| + var sandbox = document.getElementById("sandbox");
|
| + var target;
|
| +
|
| + beforeEach(function() {
|
| + target = document.createElement("div");
|
| + sandbox.appendChild(target);
|
| + });
|
| +
|
| + afterEach(function() {
|
| + target.remove();
|
| + });
|
| +
|
| + it("should add multiple classes", function() {
|
| + target.classList.add("first", "second", "third");
|
| + assert.equal(target.classList.toString(), "first second third");
|
| + });
|
| +
|
| + it("should add classes in order", function() {
|
| + target.classList.add("first");
|
| + target.classList.add("second");
|
| + assert.equal(target.classList.toString(), "first second");
|
| + });
|
| +
|
| + it("should remove classes", function() {
|
| + target.classList.add("first");
|
| + target.classList.add("second");
|
| + target.classList.add("third");
|
| + target.classList.remove("second");
|
| + assert.equal(target.classList.toString(), "first third");
|
| + });
|
| +
|
| + it("should remove multiple classes", function() {
|
| + target.classList.add("first", "second", "third");
|
| + target.classList.remove("first", "third");
|
| + assert.equal(target.classList.toString(), "second");
|
| + });
|
| +
|
| + it("should check for classes", function() {
|
| + target.classList.add("first", "second", "third");
|
| + assert.isTrue(target.classList.contains("first"));
|
| + assert.isTrue(target.classList.contains("second"));
|
| + assert.isTrue(target.classList.contains("third"));
|
| + target.classList.remove("second");
|
| + assert.isTrue(target.classList.contains("first"));
|
| + assert.isFalse(target.classList.contains("second"));
|
| + assert.isTrue(target.classList.contains("third"));
|
| + });
|
| +
|
| + it("should get classes by index", function() {
|
| + target.classList.add("first", "second", "third");
|
| + assert.equal(target.classList[0], "first");
|
| + assert.equal(target.classList[1], "second");
|
| + assert.equal(target.classList[2], "third");
|
| + assert.equal(target.classList.item(0), "first");
|
| + assert.equal(target.classList.item(1), "second");
|
| + assert.equal(target.classList.item(2), "third");
|
| + });
|
| +
|
| + it("should toggle classes", function() {
|
| + target.classList.add("first", "second");
|
| + assert.isFalse(target.classList.toggle("first"));
|
| + assert.equal(target.classList.toString(), "second");
|
| + assert.isTrue(target.classList.toggle("first"));
|
| + assert.equal(target.classList.toString(), "second first");
|
| + assert.isTrue(target.classList.toggle("second", true));
|
| + assert.equal(target.classList.toString(), "second first");
|
| + assert.isTrue(target.classList.toggle("second", true));
|
| + assert.isFalse(target.classList.toggle("second", false));
|
| + assert.isFalse(target.classList.toggle("second", false));
|
| + assert.equal(target.classList.toString(), "first");
|
| + });
|
| +
|
| + it("should dynamically update style", function() {
|
| + assert.equal(getComputedStyle(target).fontSize, "5px");
|
| + target.classList.add("font-10");
|
| + target.classList.add("font-12");
|
| + assert.equal(getComputedStyle(target).fontSize, "12px");
|
| + target.classList.add("font-24");
|
| + assert.equal(getComputedStyle(target).fontSize, "24px");
|
| + target.classList.remove("font-12");
|
| + assert.equal(getComputedStyle(target).fontSize, "24px");
|
| + target.classList.remove("font-24");
|
| + assert.equal(getComputedStyle(target).fontSize, "10px");
|
| + target.classList.remove("font-10");
|
| + assert.equal(getComputedStyle(target).fontSize, "5px");
|
| + });
|
| +});
|
| +</script>
|
| +</sky>
|
|
|