Files
pjax/tests/lib/switches.js

95 lines
2.1 KiB
JavaScript
Raw Normal View History

2019-03-03 01:37:45 -05:00
var tape = require("tape");
var switches = require("../../lib/switches");
var noop = require("../../lib/util/noop");
tape("test outerHTML switch", function(t) {
2019-03-03 01:37:45 -05:00
var outerHTML = switches.outerHTML;
2019-03-03 01:37:45 -05:00
var doc = document.implementation.createHTMLDocument();
2019-03-03 01:37:45 -05:00
var container = doc.createElement("div");
container.innerHTML = "<p id='p'>Original Text</p>";
doc.body.appendChild(container);
2019-03-03 01:37:45 -05:00
var p = doc.createElement("p");
p.innerHTML = "New Text";
outerHTML.bind({
onSwitch: noop
2019-03-03 01:37:45 -05:00
})(doc.querySelector("p"), p);
t.equals(
doc.querySelector("p").innerHTML,
"New Text",
"Elements correctly switched"
);
t.notEquals(
doc.querySelector("p").id,
"p",
"other attributes overwritten correctly"
);
t.end();
});
tape("test innerHTML switch", function(t) {
2019-03-03 01:37:45 -05:00
var innerHTML = switches.innerHTML;
2019-03-03 01:37:45 -05:00
var doc = document.implementation.createHTMLDocument();
2019-03-03 01:37:45 -05:00
var container = doc.createElement("div");
container.innerHTML = "<p id='p'>Original Text</p>";
doc.body.appendChild(container);
2019-03-03 01:37:45 -05:00
var p = doc.createElement("p");
p.innerHTML = "New Text";
p.className = "p";
innerHTML.bind({
onSwitch: noop
2019-03-03 01:37:45 -05:00
})(doc.querySelector("p"), p);
2019-03-03 01:37:45 -05:00
t.equals(
doc.querySelector("p").innerHTML,
"New Text",
"Elements correctly switched"
);
t.equals(doc.querySelector("p").className, "p", "classname set correctly");
t.equals(doc.querySelector("p").id, "p", "other attributes set correctly");
2019-03-03 01:37:45 -05:00
p.removeAttribute("class");
innerHTML.bind({
onSwitch: noop
2019-03-03 01:37:45 -05:00
})(doc.querySelector("p"), p);
2019-03-03 01:37:45 -05:00
t.equals(doc.querySelector("p").className, "", "classname set correctly");
2019-03-03 01:37:45 -05:00
t.end();
});
tape("test replaceNode switch", function(t) {
2019-03-03 01:37:45 -05:00
var replaceNode = switches.replaceNode;
2019-03-03 01:37:45 -05:00
var doc = document.implementation.createHTMLDocument();
2019-03-03 01:37:45 -05:00
var container = doc.createElement("div");
container.innerHTML = "<p>Original Text</p>";
doc.body.appendChild(container);
2019-03-03 01:37:45 -05:00
var p = doc.createElement("p");
p.innerHTML = "New Text";
replaceNode.bind({
onSwitch: noop
2019-03-03 01:37:45 -05:00
})(doc.querySelector("p"), p);
2019-03-03 01:37:45 -05:00
t.equals(
doc.querySelector("div").innerHTML,
"<p>New Text</p>",
"Elements correctly switched"
);
2019-03-03 01:37:45 -05:00
t.end();
});