Bug fixes and tests for switches
This commit is contained in:
@@ -8,7 +8,14 @@ module.exports = {
|
||||
|
||||
innerHTML: function(oldEl, newEl) {
|
||||
oldEl.innerHTML = newEl.innerHTML
|
||||
oldEl.className = newEl.className
|
||||
|
||||
if (newEl.className === "") {
|
||||
oldEl.removeAttribute("class")
|
||||
}
|
||||
else {
|
||||
oldEl.className = newEl.className
|
||||
}
|
||||
|
||||
this.onSwitch()
|
||||
},
|
||||
|
||||
|
||||
@@ -2,6 +2,60 @@ var tape = require("tape")
|
||||
var switches = require("../../lib/switches")
|
||||
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) {
|
||||
var replaceNode = switches.replaceNode
|
||||
|
||||
|
||||
Reference in New Issue
Block a user