fix svg class updates

This commit is contained in:
Leo Horie 2016-06-07 20:20:30 -04:00
parent 6ff63b224c
commit 693c87f5f1
6 changed files with 82 additions and 40 deletions

View file

@ -151,6 +151,13 @@ module.exports = function() {
}
}
},
get className() {
return this.attributes["class"] ? this.attributes["class"].nodeValue : ""
},
set className(value) {
if (this.namespaceURI === "http://www.w3.org/2000/svg") throw new Error("Cannot set property className of SVGElement")
else this.setAttribute("class", value)
},
focus: function() {activeElement = this},
addEventListener: function(type, callback, useCapture) {
if (events[type] == null) events[type] = [callback]

View file

@ -11,11 +11,11 @@
<script src="../../test-utils/callAsync.js"></script>
<script src="../../test-utils/parseURL.js"></script>
<script src="../../test-utils/pushStateMock.js"></script>
<script src="../../test-utils/ajaxMock.js"></script>
<script src="../../test-utils/xhrMock.js"></script>
<script src="../../test-utils/domMock.js"></script>
<script src="test-parseURL.js"></script>
<script src="test-pushStateMock.js"></script>
<script src="test-ajaxMock.js"></script>
<script src="test-xhrMock.js"></script>
<script src="test-domMock.js"></script>
<script>require("../../ospec/ospec").run()</script>

View file

@ -859,4 +859,22 @@ o.spec("domMock", function() {
})
})
})
o.spec("className", function() {
o("works", function() {
var el = $document.createElement("div")
el.className = "a"
o(el.className).equals("a")
o(el.attributes["class"].nodeValue).equals("a")
})
o("setter throws in svg", function(done) {
var el = $document.createElementNS("http://www.w3.org/2000/svg", "svg")
try {
el.className = "a"
}
catch (e) {
done()
}
})
})
})