| <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> |