mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
... instead of NodeList. R=eseidel@chromium.org, ojan@chromium.org Review URL: https://codereview.chromium.org/943433002
85 lines
3.2 KiB
Plaintext
85 lines
3.2 KiB
Plaintext
<html>
|
|
<div id="tests">
|
|
<div id="id1">
|
|
<div class="class2"></div>
|
|
</div>
|
|
<tag-name-3 class="class7" id="tag1"></tag-name-3>
|
|
<tag-name-3 class="class7" id="tag2"></tag-name-3>
|
|
<span class="class2">
|
|
<span class="class5" id="id5" testAttr></span>
|
|
</span>
|
|
<div id="id5"></div>
|
|
<tag-name-6 class="class6" id="id6" testAttr="the value">
|
|
<tag-name-3 class="class7" id="tag2"></tag-name-3>
|
|
</tag-name-6>
|
|
</div>
|
|
<script>
|
|
import "../resources/third_party/unittest/unittest.dart";
|
|
import "../resources/unit.dart";
|
|
|
|
import "dart:sky";
|
|
|
|
query(selector) => document.querySelector(selector);
|
|
queryAll(selector) => document.querySelectorAll(selector);
|
|
|
|
main() {
|
|
initUnit();
|
|
|
|
test("should find elements by class name", () {
|
|
expect(query(".class2"), isNotNull);
|
|
expect(query(".class2").classList.toString(), equals("class2"));
|
|
expect(queryAll(".class2").length, 2);
|
|
expect(queryAll(".class2")[0].classList.toString(), equals("class2"));
|
|
expect(queryAll(".class2")[1].classList.toString(), equals("class2"));
|
|
expect(queryAll(".class2")[0], isNot(equals(queryAll(".class2")[1])));
|
|
});
|
|
|
|
test("should find elements by id", () {
|
|
expect(query("#id5"), isNotNull);
|
|
expect(query("#id5").getAttribute("id"), equals("id5"));
|
|
expect(query("#id5").classList.toString(), equals("class5"));
|
|
// FIXME(sky): Do we still want to allow multiple id stuff like this?
|
|
expect(queryAll("#id5").length, equals(2));
|
|
expect(queryAll("#id5")[0], equals(query("#id5")));
|
|
expect(queryAll("#id5")[1], isNot(equals(query("#id5"))));
|
|
expect(queryAll("#id5")[1].getAttribute("id"), equals("id5"));
|
|
});
|
|
|
|
test("should find elements by tag name", () {
|
|
expect(query("tag-name-6"), isNotNull);
|
|
expect(query("tag-name-6").tagName, equals("tag-name-6"));
|
|
expect(query("tag-name-6").classList.toString(), equals("class6"));
|
|
var context = query("#tests");
|
|
expect(context.querySelectorAll("span").length, equals(2));
|
|
});
|
|
|
|
test("should find an element by compound selector", () {
|
|
expect(query("tag-name-6.class6#id6"), isNotNull);
|
|
expect(query("tag-name-6.class6#id6").getAttribute("id"), equals("id6"));
|
|
expect(query("tag-name-6.class6#id6").classList.toString(), equals("class6"));
|
|
expect(query("tag-name-6.class6#id6").tagName, equals("tag-name-6"));
|
|
});
|
|
|
|
test("should find all elements by compound selector", () {
|
|
expect(queryAll("tag-name-3.class7"), isNotNull);
|
|
expect(queryAll("tag-name-3.class7").length, equals(3));
|
|
expect(queryAll("tag-name-3.class7")[0].getAttribute("id"), equals("tag1"));
|
|
expect(queryAll("tag-name-3.class7")[1].getAttribute("id"), equals("tag2"));
|
|
});
|
|
|
|
test("should find all elements by attribute presence selector", () {
|
|
expect(queryAll("[testAttr]"), isNotNull);
|
|
expect(queryAll("[testAttr]").length, equals(2));
|
|
expect(queryAll("[testAttr]")[0].getAttribute("id"), equals("id5"));
|
|
expect(queryAll("[testAttr]")[1].getAttribute("id"), equals("id6"));
|
|
});
|
|
|
|
test("should find all elements by attribute value selector", () {
|
|
expect(queryAll("[testAttr='the value']"), isNotNull);
|
|
expect(queryAll("[testAttr='the value']").length, equals(1));
|
|
expect(queryAll("[testAttr='the value']")[0].getAttribute("id"), equals("id6"));
|
|
});
|
|
}
|
|
</script>
|
|
</html>
|