[render/render] Test for removing styles and assorted domMock changes
This commit is contained in:
parent
1fdc9278c7
commit
6283aa4a7d
3 changed files with 70 additions and 1 deletions
|
|
@ -205,6 +205,72 @@ o.spec("updateElement", function() {
|
||||||
|
|
||||||
o(updated.dom.style.color).equals("red")
|
o(updated.dom.style.color).equals("red")
|
||||||
})
|
})
|
||||||
|
o("setting style to `null` removes all styles", function() {
|
||||||
|
var vnode = {"tag": "p", attrs: {style: "background-color: red"}}
|
||||||
|
var updated = {"tag": "p", attrs: {style: null}}
|
||||||
|
|
||||||
|
render(root, [vnode])
|
||||||
|
|
||||||
|
o("style" in vnode.dom.attributes).equals(true)
|
||||||
|
o(vnode.dom.attributes.style.value).equals("background-color: red;")
|
||||||
|
|
||||||
|
render(root, [updated])
|
||||||
|
|
||||||
|
//browsers disagree here
|
||||||
|
try {
|
||||||
|
|
||||||
|
o(updated.dom.attributes.style.value).equals("")
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
o("style" in updated.dom.attributes).equals(false)
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
o("setting style to `undefined` removes all styles", function() {
|
||||||
|
var vnode = {"tag": "p", attrs: {style: "background-color: red"}}
|
||||||
|
var updated = {"tag": "p", attrs: {style: undefined}}
|
||||||
|
|
||||||
|
render(root, [vnode])
|
||||||
|
|
||||||
|
o("style" in vnode.dom.attributes).equals(true)
|
||||||
|
o(vnode.dom.attributes.style.value).equals("background-color: red;")
|
||||||
|
|
||||||
|
render(root, [updated])
|
||||||
|
|
||||||
|
//browsers disagree here
|
||||||
|
try {
|
||||||
|
|
||||||
|
o(updated.dom.attributes.style.value).equals("")
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
o("style" in updated.dom.attributes).equals(false)
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
o("not setting style removes all styles", function() {
|
||||||
|
var vnode = {"tag": "p", attrs: {style: "background-color: red"}}
|
||||||
|
var updated = {"tag": "p", attrs: {}}
|
||||||
|
|
||||||
|
render(root, [vnode])
|
||||||
|
|
||||||
|
o("style" in vnode.dom.attributes).equals(true)
|
||||||
|
o(vnode.dom.attributes.style.value).equals("background-color: red;")
|
||||||
|
|
||||||
|
render(root, [updated])
|
||||||
|
|
||||||
|
//browsers disagree here
|
||||||
|
try {
|
||||||
|
|
||||||
|
o(updated.dom.attributes.style.value).equals("")
|
||||||
|
|
||||||
|
} catch (e) {
|
||||||
|
|
||||||
|
o("style" in updated.dom.attributes).equals(false)
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
o("replaces el", function() {
|
o("replaces el", function() {
|
||||||
var vnode = {tag: "a"}
|
var vnode = {tag: "a"}
|
||||||
var updated = {tag: "b"}
|
var updated = {tag: "b"}
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,7 @@ module.exports = function(options) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cssText = buf.join(" ")
|
element.setAttribute("style", cssText = buf.join(" "))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -618,6 +618,7 @@ o.spec("domMock", function() {
|
||||||
|
|
||||||
o(div.style.backgroundColor).equals("red")
|
o(div.style.backgroundColor).equals("red")
|
||||||
o(div.style.borderBottom).equals("1px solid red")
|
o(div.style.borderBottom).equals("1px solid red")
|
||||||
|
o(div.attributes.style.value).equals("background-color: red; border-bottom: 1px solid red;")
|
||||||
})
|
})
|
||||||
o("removing via setting style.cssText string works", function() {
|
o("removing via setting style.cssText string works", function() {
|
||||||
var div = $document.createElement("div")
|
var div = $document.createElement("div")
|
||||||
|
|
@ -625,6 +626,7 @@ o.spec("domMock", function() {
|
||||||
div.style.cssText = ""
|
div.style.cssText = ""
|
||||||
|
|
||||||
o(div.style.background).equals("")
|
o(div.style.background).equals("")
|
||||||
|
o(div.attributes.style.value).equals("")
|
||||||
})
|
})
|
||||||
o("the final semicolon is optional when setting style.cssText", function() {
|
o("the final semicolon is optional when setting style.cssText", function() {
|
||||||
var div = $document.createElement("div")
|
var div = $document.createElement("div")
|
||||||
|
|
@ -632,6 +634,7 @@ o.spec("domMock", function() {
|
||||||
|
|
||||||
o(div.style.background).equals("red")
|
o(div.style.background).equals("red")
|
||||||
o(div.style.cssText).equals("background: red;")
|
o(div.style.cssText).equals("background: red;")
|
||||||
|
o(div.attributes.style.value).equals("background: red;")
|
||||||
})
|
})
|
||||||
o("'cssText' as a property name is ignored when setting style.cssText", function(){
|
o("'cssText' as a property name is ignored when setting style.cssText", function(){
|
||||||
var div = $document.createElement("div")
|
var div = $document.createElement("div")
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue