| var DomUtils = require("../.."); |
| var fixture = require("../fixture"); |
| var assert = require("assert"); |
| |
| // Set up expected structures |
| var expected = { |
| idAsdf: fixture[1], |
| tag2: [], |
| typeScript: [] |
| }; |
| for (var idx = 0; idx < 20; ++idx) { |
| expected.tag2.push(fixture[idx*2 + 1].children[5]); |
| expected.typeScript.push(fixture[idx*2 + 1].children[1]); |
| } |
| |
| describe("legacy", function() { |
| describe("getElements", function() { |
| var getElements = DomUtils.getElements; |
| it("returns the node with the specified ID", function() { |
| assert.deepEqual( |
| getElements({ id: "asdf" }, fixture, true, 1), |
| [expected.idAsdf] |
| ); |
| }); |
| it("returns empty array for unknown IDs", function() { |
| assert.deepEqual(getElements({ id: "asdfs" }, fixture, true), []); |
| }); |
| it("returns the nodes with the specified tag name", function() { |
| assert.deepEqual( |
| getElements({ tag_name:"tag2" }, fixture, true), |
| expected.tag2 |
| ); |
| }); |
| it("returns empty array for unknown tag names", function() { |
| assert.deepEqual( |
| getElements({ tag_name : "asdfs" }, fixture, true), |
| [] |
| ); |
| }); |
| it("returns the nodes with the specified tag type", function() { |
| assert.deepEqual( |
| getElements({ tag_type: "script" }, fixture, true), |
| expected.typeScript |
| ); |
| }); |
| it("returns empty array for unknown tag types", function() { |
| assert.deepEqual( |
| getElements({ tag_type: "video" }, fixture, true), |
| [] |
| ); |
| }); |
| }); |
| |
| describe("getElementById", function() { |
| var getElementById = DomUtils.getElementById; |
| it("returns the specified node", function() { |
| assert.equal( |
| expected.idAsdf, |
| getElementById("asdf", fixture, true) |
| ); |
| }); |
| it("returns `null` for unknown IDs", function() { |
| assert.equal(null, getElementById("asdfs", fixture, true)); |
| }); |
| }); |
| |
| describe("getElementsByTagName", function() { |
| var getElementsByTagName = DomUtils.getElementsByTagName; |
| it("returns the specified nodes", function() { |
| assert.deepEqual( |
| getElementsByTagName("tag2", fixture, true), |
| expected.tag2 |
| ); |
| }); |
| it("returns empty array for unknown tag names", function() { |
| assert.deepEqual( |
| getElementsByTagName("tag23", fixture, true), |
| [] |
| ); |
| }); |
| }); |
| |
| describe("getElementsByTagType", function() { |
| var getElementsByTagType = DomUtils.getElementsByTagType; |
| it("returns the specified nodes", function() { |
| assert.deepEqual( |
| getElementsByTagType("script", fixture, true), |
| expected.typeScript |
| ); |
| }); |
| it("returns empty array for unknown tag types", function() { |
| assert.deepEqual( |
| getElementsByTagType("video", fixture, true), |
| [] |
| ); |
| }); |
| }); |
| |
| describe("getOuterHTML", function() { |
| var getOuterHTML = DomUtils.getOuterHTML; |
| it("Correctly renders the outer HTML", function() { |
| assert.equal( |
| getOuterHTML(fixture[1]), |
| "<tag1 id=\"asdf\"> <script>text</script> <!-- comment --> <tag2> text </tag2></tag1>" |
| ); |
| }); |
| }); |
| |
| describe("getInnerHTML", function() { |
| var getInnerHTML = DomUtils.getInnerHTML; |
| it("Correctly renders the inner HTML", function() { |
| assert.equal( |
| getInnerHTML(fixture[1]), |
| " <script>text</script> <!-- comment --> <tag2> text </tag2>" |
| ); |
| }); |
| }); |
| |
| }); |