blob: a216a8cf49027a376b377fa54cb0034c004a285f [file] [log] [blame]
<html>
<link rel="import" href="../resources/mocha.html" />
<link rel="import" href="../resources/chai.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"></span>
</span>
<div id="id5"></div>
<tag-name-6 class="class6" id="id6">
<tag-name-3 class="class7" id="tag2"></tag-name-3>
</tag-name-6>
</div>
<script>
function query(selector) { return document.querySelector(selector); }
function queryAll(selector) { return document.querySelectorAll(selector); }
describe("querySelector", function() {
it("should find elements by class name", function() {
assert.ok(query(".class2"));
assert.equal(query(".class2").classList.toString(), "class2");
assert.equal(queryAll(".class2").length, 2);
assert.equal(queryAll(".class2")[0].classList.toString(), "class2");
assert.equal(queryAll(".class2")[1].classList.toString(), "class2");
assert.notEqual(queryAll(".class2")[0], queryAll(".class2")[1]);
});
it("should find elements by id", function() {
assert.ok(query("#id5"));
assert.equal(query("#id5").id, "id5");
assert.equal(query("#id5").classList.toString(), "class5");
// FIXME(sky): Do we still want to allow multiple id stuff like this?
assert.equal(queryAll("#id5").length, 2);
assert.equal(queryAll("#id5")[0], query("#id5"));
assert.notEqual(queryAll("#id5")[1], query("#id5"));
assert.equal(queryAll("#id5")[1].id, "id5");
});
it("should find elements by tag name", function() {
assert.ok(query("tag-name-6"));
assert.equal(query("tag-name-6").tagName, "tag-name-6");
assert.equal(query("tag-name-6").classList.toString(), "class6");
var context = query("#tests");
assert.equal(context.querySelectorAll("span").length, 2);
});
it("should find an element by compound selector", function() {
assert.ok(query("tag-name-6.class6#id6"));
assert.equal(query("tag-name-6.class6#id6").id, "id6");
assert.equal(query("tag-name-6.class6#id6").classList.toString(), "class6");
assert.equal(query("tag-name-6.class6#id6").tagName, "tag-name-6");
});
it("should find all elements by compound selector", function() {
assert.ok(queryAll("tag-name-3.class7"));
assert.equal(queryAll("tag-name-3.class7").length, 3);
assert.equal(queryAll("tag-name-3.class7")[0].id, "tag1");
assert.equal(queryAll("tag-name-3.class7")[1].id, "tag2");
});
});
</script>
</html>