| OLD | NEW |
| (Empty) |
| 1 <html> | |
| 2 <div id="tests"> | |
| 3 <div id="id1"> | |
| 4 <div class="class2"></div> | |
| 5 </div> | |
| 6 <tag-name-3 class="class7" id="tag1"></tag-name-3> | |
| 7 <tag-name-3 class="class7" id="tag2"></tag-name-3> | |
| 8 <span class="class2"> | |
| 9 <span class="class5" id="id5" testAttr></span> | |
| 10 </span> | |
| 11 <div id="id5"></div> | |
| 12 <tag-name-6 class="class6" id="id6" testAttr="the value"> | |
| 13 <tag-name-3 class="class7" id="tag2"></tag-name-3> | |
| 14 </tag-name-6> | |
| 15 </div> | |
| 16 <script> | |
| 17 import "../resources/third_party/unittest/unittest.dart"; | |
| 18 import "../resources/unit.dart"; | |
| 19 | |
| 20 import "dart:sky"; | |
| 21 | |
| 22 query(selector) => document.querySelector(selector); | |
| 23 queryAll(selector) => document.querySelectorAll(selector); | |
| 24 | |
| 25 main() { | |
| 26 initUnit(); | |
| 27 | |
| 28 test("should find elements by class name", () { | |
| 29 expect(query(".class2"), isNotNull); | |
| 30 expect(query(".class2").classList.toString(), equals("class2")); | |
| 31 expect(queryAll(".class2").length, 2); | |
| 32 expect(queryAll(".class2")[0].classList.toString(), equals("class2")); | |
| 33 expect(queryAll(".class2")[1].classList.toString(), equals("class2")); | |
| 34 expect(queryAll(".class2")[0], isNot(equals(queryAll(".class2")[1]))); | |
| 35 }); | |
| 36 | |
| 37 test("should find elements by id", () { | |
| 38 expect(query("#id5"), isNotNull); | |
| 39 expect(query("#id5").getAttribute("id"), equals("id5")); | |
| 40 expect(query("#id5").classList.toString(), equals("class5")); | |
| 41 // FIXME(sky): Do we still want to allow multiple id stuff like this? | |
| 42 expect(queryAll("#id5").length, equals(2)); | |
| 43 expect(queryAll("#id5")[0], equals(query("#id5"))); | |
| 44 expect(queryAll("#id5")[1], isNot(equals(query("#id5")))); | |
| 45 expect(queryAll("#id5")[1].getAttribute("id"), equals("id5")); | |
| 46 }); | |
| 47 | |
| 48 test("should find elements by tag name", () { | |
| 49 expect(query("tag-name-6"), isNotNull); | |
| 50 expect(query("tag-name-6").tagName, equals("tag-name-6")); | |
| 51 expect(query("tag-name-6").classList.toString(), equals("class6")); | |
| 52 var context = query("#tests"); | |
| 53 expect(context.querySelectorAll("span").length, equals(2)); | |
| 54 }); | |
| 55 | |
| 56 test("should find an element by compound selector", () { | |
| 57 expect(query("tag-name-6.class6#id6"), isNotNull); | |
| 58 expect(query("tag-name-6.class6#id6").getAttribute("id"), equals("id6")); | |
| 59 expect(query("tag-name-6.class6#id6").classList.toString(), equals("class6")
); | |
| 60 expect(query("tag-name-6.class6#id6").tagName, equals("tag-name-6")); | |
| 61 }); | |
| 62 | |
| 63 test("should find all elements by compound selector", () { | |
| 64 expect(queryAll("tag-name-3.class7"), isNotNull); | |
| 65 expect(queryAll("tag-name-3.class7").length, equals(3)); | |
| 66 expect(queryAll("tag-name-3.class7")[0].getAttribute("id"), equals("tag1")); | |
| 67 expect(queryAll("tag-name-3.class7")[1].getAttribute("id"), equals("tag2")); | |
| 68 }); | |
| 69 | |
| 70 test("should find all elements by attribute presence selector", () { | |
| 71 expect(queryAll("[testAttr]"), isNotNull); | |
| 72 expect(queryAll("[testAttr]").length, equals(2)); | |
| 73 expect(queryAll("[testAttr]")[0].getAttribute("id"), equals("id5")); | |
| 74 expect(queryAll("[testAttr]")[1].getAttribute("id"), equals("id6")); | |
| 75 }); | |
| 76 | |
| 77 test("should find all elements by attribute value selector", () { | |
| 78 expect(queryAll("[testAttr='the value']"), isNotNull); | |
| 79 expect(queryAll("[testAttr='the value']").length, equals(1)); | |
| 80 expect(queryAll("[testAttr='the value']")[0].getAttribute("id"), equals("id6
")); | |
| 81 }); | |
| 82 } | |
| 83 </script> | |
| 84 </html> | |
| OLD | NEW |