Fix bugs and add tests #145
@@ -8,7 +8,14 @@ module.exports = {
|
|||||||
|
|
||||||
innerHTML: function(oldEl, newEl) {
|
innerHTML: function(oldEl, newEl) {
|
||||||
oldEl.innerHTML = newEl.innerHTML
|
oldEl.innerHTML = newEl.innerHTML
|
||||||
oldEl.className = newEl.className
|
|
||||||
|
if (newEl.className === "") {
|
||||||
|
oldEl.removeAttribute("class")
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
oldEl.className = newEl.className
|
||||||
|
}
|
||||||
|
|
||||||
this.onSwitch()
|
this.onSwitch()
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,60 @@ var tape = require("tape")
|
|||||||
var switches = require("../../lib/switches")
|
var switches = require("../../lib/switches")
|
||||||
var noop = require("../../lib/util/noop")
|
var noop = require("../../lib/util/noop")
|
||||||
|
|
||||||
|
tape("test outerHTML switch", function(t) {
|
||||||
|
var outerHTML = switches.outerHTML
|
||||||
|
|
||||||
|
var doc = document.implementation.createHTMLDocument()
|
||||||
|
|
||||||
|
var container = doc.createElement("div")
|
||||||
|
container.innerHTML = "<p id='p'>Original Text</p>"
|
||||||
|
doc.body.appendChild(container)
|
||||||
|
|
||||||
|
var p = doc.createElement("p")
|
||||||
|
p.innerHTML = "New Text"
|
||||||
|
|
||||||
|
outerHTML.bind({
|
||||||
|
onSwitch: noop
|
||||||
|
})(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) {
|
||||||
|
var innerHTML = switches.innerHTML
|
||||||
|
|
||||||
|
var doc = document.implementation.createHTMLDocument()
|
||||||
|
|
||||||
|
var container = doc.createElement("div")
|
||||||
|
container.innerHTML = "<p id='p'>Original Text</p>"
|
||||||
|
doc.body.appendChild(container)
|
||||||
|
|
||||||
|
var p = doc.createElement("p")
|
||||||
|
p.innerHTML = "New Text"
|
||||||
|
p.className = "p"
|
||||||
|
|
||||||
|
innerHTML.bind({
|
||||||
|
onSwitch: noop
|
||||||
|
})(doc.querySelector("p"), p)
|
||||||
|
|
||||||
|
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")
|
||||||
|
|
||||||
|
p.removeAttribute("class")
|
||||||
|
|
||||||
|
innerHTML.bind({
|
||||||
|
onSwitch: noop
|
||||||
|
})(doc.querySelector("p"), p)
|
||||||
|
|
||||||
|
t.equals(doc.querySelector("p").className, "", "classname set correctly")
|
||||||
|
|
||||||
|
t.end()
|
||||||
|
})
|
||||||
|
|
||||||
tape("test replaceNode switch", function(t) {
|
tape("test replaceNode switch", function(t) {
|
||||||
var replaceNode = switches.replaceNode
|
var replaceNode = switches.replaceNode
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user