Fix tests for IE
This commit is contained in:
parent
07042b6fea
commit
a4c98e63e8
5 changed files with 60 additions and 34 deletions
|
|
@ -22,15 +22,14 @@ Mithril = m = new function app(window, undefined) {
|
|||
*
|
||||
*/
|
||||
function m() {
|
||||
var arrSlice = Array.prototype.slice;
|
||||
var args = arrSlice.call(arguments, 0)
|
||||
var args = [].slice.call(arguments)
|
||||
var hasAttrs = args[1] != null && isObj(args[1]) && !("tag" in args[1]) && !("subtree" in args[1])
|
||||
var attrs = hasAttrs ? args[1] : {}
|
||||
var classAttrName = "class" in attrs ? "class" : "className"
|
||||
var cell = {tag: "div", attrs: {}}
|
||||
var match, classes = []
|
||||
while (match = parser.exec(args[0])) {
|
||||
if (match[1] == "") cell.tag = match[2]
|
||||
if (match[1] == "" && match[2]) cell.tag = match[2]
|
||||
else if (match[1] == "#") cell.attrs.id = match[2]
|
||||
else if (match[1] == ".") classes.push(match[2])
|
||||
else if (match[3][0] == "[") {
|
||||
|
|
@ -42,8 +41,8 @@ Mithril = m = new function app(window, undefined) {
|
|||
|
||||
|
||||
var children = hasAttrs ? args[2] : args[1]
|
||||
if (isArr(children) || type(children) == "[object Arguments]") {
|
||||
cell.children = arrSlice.call(children, 0)
|
||||
if (isArr(children)) {
|
||||
cell.children = children
|
||||
}
|
||||
else {
|
||||
cell.children = hasAttrs ? args.slice(2) : args.slice(1)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
<!doctype html>
|
||||
<script src="http://polyfill.io"></script>
|
||||
<script src="../mithril.js"></script>
|
||||
<script src="test.js"></script>
|
||||
<script src="mock.js"></script>
|
||||
<script src="../mithril.js"></script>
|
||||
<script src="mithril-tests.js"></script>
|
||||
|
||||
<p>Open the console to see the test report</p>
|
||||
|
|
@ -775,15 +775,6 @@ function testMithril(mock) {
|
|||
m.render(root, new Field())
|
||||
return root.childNodes.length == 1
|
||||
})
|
||||
test(function() {
|
||||
var root = mock.document.createElement("div")
|
||||
m.render(root, m("ul", [m("li")]))
|
||||
var change = function() {
|
||||
m.render(root, m("ul", arguments))
|
||||
}
|
||||
change(m("b"));
|
||||
return root.childNodes[0].childNodes[0].nodeName == "B"
|
||||
})
|
||||
//end m.render
|
||||
|
||||
//m.redraw
|
||||
|
|
@ -1705,7 +1696,7 @@ function testMithril(mock) {
|
|||
var scriptTag = [].slice.call(mock.document.getElementsByTagName("script")).filter(function(script){
|
||||
return script.src.indexOf(callbackKey) > -1
|
||||
}).pop();
|
||||
mock[callbackKey]({foo: "bar1"})
|
||||
mock[callbackKey]({foo: "bar1"})//fixme ie
|
||||
mock.document.removeChild(body);
|
||||
return scriptTag.src.indexOf("/test?jsonpCallback=mithril_callback") > -1 && data.foo == "bar1";
|
||||
})
|
||||
|
|
@ -1857,7 +1848,7 @@ function testMithril(mock) {
|
|||
deferred.resolve("test")
|
||||
}
|
||||
catch (e) {value3 = e}
|
||||
return value1 === undefined && value2 === undefined && value3 instanceof ReferenceError
|
||||
return value1 === undefined && value2 === undefined && (value3 instanceof ReferenceError || value3 instanceof TypeError)
|
||||
})
|
||||
test(function() {
|
||||
var deferred1 = m.deferred()
|
||||
|
|
@ -2026,11 +2017,6 @@ function testMithril(mock) {
|
|||
return root.childNodes[0].nodeValue === "foo"
|
||||
})
|
||||
|
||||
//console.log presence
|
||||
test(function() {
|
||||
return m.deps.factory.toString().indexOf("console") < 0
|
||||
})
|
||||
|
||||
// config context
|
||||
test(function() {
|
||||
var root = mock.document.createElement("div")
|
||||
|
|
@ -2060,16 +2046,13 @@ function testMithril(mock) {
|
|||
return success;
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
//test reporting for saucelabs
|
||||
if (typeof window != "undefined") {
|
||||
window.global_test_results = {
|
||||
tests: [],
|
||||
duration: 0,
|
||||
passed: 0,
|
||||
failed: 0
|
||||
};
|
||||
//console.log presence
|
||||
test(function() {
|
||||
return m.deps.factory.toString().indexOf("console") < 0
|
||||
})
|
||||
test(function() {
|
||||
return m.deps.factory.toString().indexOf("document.write") < 0
|
||||
})
|
||||
}
|
||||
|
||||
//mock
|
||||
|
|
|
|||
|
|
@ -1,3 +1,37 @@
|
|||
if (!Array.prototype.indexOf) {
|
||||
Array.prototype.indexOf = function(item) {
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
if (this[i] === item) return i
|
||||
}
|
||||
return -1
|
||||
}
|
||||
}
|
||||
if (!Array.prototype.map) {
|
||||
Array.prototype.map = function(callback) {
|
||||
var results = []
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
results[i] = callback(this[i], i, this)
|
||||
}
|
||||
return results
|
||||
}
|
||||
}
|
||||
if (!Array.prototype.filter) {
|
||||
Array.prototype.filter = function(callback) {
|
||||
var results = []
|
||||
for (var i = 0; i < this.length; i++) {
|
||||
if (callback(this[i], i, this)) results.push(this[i])
|
||||
}
|
||||
return results
|
||||
}
|
||||
}
|
||||
if (!Object.keys) {
|
||||
Object.keys = function() {
|
||||
var keys = []
|
||||
for (var i in this) keys.push(i)
|
||||
return keys
|
||||
}
|
||||
}
|
||||
|
||||
var mock = {}
|
||||
mock.window = new function() {
|
||||
var window = {}
|
||||
|
|
@ -77,7 +111,7 @@ mock.window = new function() {
|
|||
|
||||
var traverse = function(node){
|
||||
if(node.childNodes && node.childNodes.length > 0){
|
||||
node.childNodes.forEach(function(curr){
|
||||
node.childNodes.map(function(curr){
|
||||
if(curr.nodeName.toLowerCase() === name)
|
||||
out.push(curr);
|
||||
traverse(curr);
|
||||
|
|
|
|||
|
|
@ -1,3 +1,13 @@
|
|||
//test reporting for saucelabs
|
||||
if (typeof window != "undefined") {
|
||||
window.global_test_results = {
|
||||
tests: [],
|
||||
duration: 0,
|
||||
passed: 0,
|
||||
failed: 0
|
||||
};
|
||||
}
|
||||
|
||||
if (!this.console) {
|
||||
var log = function(value) {document.write("<pre>" + value + "</pre>")}
|
||||
this.console = {log: log, error: log}
|
||||
|
|
@ -13,7 +23,7 @@ function test(condition) {
|
|||
start = performance.now()
|
||||
}
|
||||
try {
|
||||
if (!condition()) throw new Error()
|
||||
if (!condition()) throw new Error("failed")
|
||||
}
|
||||
catch (e) {
|
||||
result = false
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue