Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(919)

Unified Diff: sky/tests/lowlevel/classlist.sky

Issue 776493002: Add tests for changing classList. (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | sky/tests/lowlevel/classlist-expected.txt » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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>
« no previous file with comments | « no previous file | sky/tests/lowlevel/classlist-expected.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698