mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This CL makes CSSStyleDeclaration a bit less painful to use by replacing the crazy Java-style APIs with overloading operator[] and operator[]=. R=esprehn@chromium.org, ojan@chromium.org Review URL: https://codereview.chromium.org/942553002
127 lines
4.1 KiB
Plaintext
127 lines
4.1 KiB
Plaintext
<!DOCTYPE html>
|
|
<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>
|
|
import "../resources/third_party/unittest/unittest.dart";
|
|
import "../resources/unit.dart";
|
|
|
|
import "dart:sky";
|
|
|
|
main() {
|
|
initUnit();
|
|
|
|
var sandbox = document.getElementById("sandbox");
|
|
var target = null;
|
|
|
|
setUp(() {
|
|
target = document.createElement("div");
|
|
sandbox.appendChild(target);
|
|
});
|
|
|
|
tearDown(() {
|
|
target.remove();
|
|
});
|
|
|
|
// test("should add multiple classes", () {
|
|
// target.classList..add("first", "second", "third");
|
|
// expect(target.classList.toString(), equals("first second third"));
|
|
// });
|
|
|
|
test("should add classes in order", () {
|
|
target.classList..add("first")
|
|
..add("second");
|
|
expect(target.classList.toString(), equals("first second"));
|
|
});
|
|
|
|
test("should remove classes", () {
|
|
target.classList..add("first")
|
|
..add("second")
|
|
..add("third")
|
|
..remove("second");
|
|
expect(target.classList.toString(), equals("first third"));
|
|
});
|
|
|
|
// test("should remove multiple classes", () {
|
|
// target.classList.add("first", "second", "third");
|
|
// target.classList.remove("first", "third");
|
|
// expect(target.classList.toString(), equals("second"));
|
|
// });
|
|
|
|
test("should clear all classes", () {
|
|
target.classList.add("first");
|
|
target.classList.add("second");
|
|
target.classList.clear();
|
|
expect(target.classList.toString(), equals(""));
|
|
expect(target.hasAttribute("class"), isFalse);
|
|
});
|
|
|
|
test("should check for classes", () {
|
|
target.classList..add("first")
|
|
..add("second")
|
|
..add("third");
|
|
expect(target.classList.contains("first"), isTrue);
|
|
expect(target.classList.contains("second"), isTrue);
|
|
expect(target.classList.contains("third"), isTrue);
|
|
target.classList.remove("second");
|
|
expect(target.classList.contains("first"), isTrue);
|
|
expect(target.classList.contains("second"), isFalse);
|
|
expect(target.classList.contains("third"), isTrue);
|
|
});
|
|
|
|
test("should get classes by index", () {
|
|
target.classList..add("first")
|
|
..add("second")
|
|
..add("third");
|
|
// expect(target.classList[0], equals("first"));
|
|
// expect(target.classList[1], equals("second"));
|
|
// expect(target.classList[2], equals("third"));
|
|
expect(target.classList.item(0), equals("first"));
|
|
expect(target.classList.item(1), equals("second"));
|
|
expect(target.classList.item(2), equals("third"));
|
|
});
|
|
|
|
test("should toggle classes", () {
|
|
target.classList..add("first")
|
|
..add("second");
|
|
expect(target.classList.toggle("first"), isFalse);
|
|
expect(target.classList.toString(), equals("second"));
|
|
expect(target.classList.toggle("first"), isTrue);
|
|
expect(target.classList.toString(), equals("second first"));
|
|
// expect(target.classList.toggle("second", true), isTrue);
|
|
// expect(target.classList.toString(), equals("second first"));
|
|
// expect(target.classList.toggle("second", true), isTrue);
|
|
// expect(target.classList.toggle("second", false), isFalse);
|
|
// expect(target.classList.toggle("second", false), isFalse);
|
|
// expect(target.classList.toString(), equals("first"));
|
|
});
|
|
|
|
test("should dynamically update style", () {
|
|
expect(window.getComputedStyle(target)["font-size"],
|
|
equals("5px"));
|
|
target.classList.add("font-10");
|
|
target.classList.add("font-12");
|
|
expect(window.getComputedStyle(target)["font-size"],
|
|
equals("12px"));
|
|
target.classList.add("font-24");
|
|
expect(window.getComputedStyle(target)["font-size"],
|
|
equals("24px"));
|
|
target.classList.remove("font-12");
|
|
expect(window.getComputedStyle(target)["font-size"],
|
|
equals("24px"));
|
|
target.classList.remove("font-24");
|
|
expect(window.getComputedStyle(target)["font-size"],
|
|
equals("10px"));
|
|
target.classList.remove("font-10");
|
|
expect(window.getComputedStyle(target)["font-size"],
|
|
equals("5px"));
|
|
});
|
|
}
|
|
</script>
|
|
</sky>
|