diff --git a/test/index.html b/test/index.html index deeb7781fbc0f25a7e5049dfc9de5a3a1dfe5a7e..5a0b3d68bf2584c0ba9abe2294b8d5aae1eb4bbb 100644 --- a/test/index.html +++ b/test/index.html @@ -222,7 +222,7 @@ function displayTest(type, name, customMessage) { var message = "???"; if (type != "done" && type != "skipped") ++count; - progress.style.width = (count * (progress.parentNode.clientWidth - 2) / totalTests) + "px"; + progress.style.width = (count * (progress.parentNode.clientWidth - 2) / (totalTests || 1)) + "px"; progressRan.nodeValue = count; if (type == "ok") { message = "Test '" + name + "' passed"; diff --git a/test/test.js b/test/test.js index 93bca15e3ac62b27063e25bc4714e4f649727e41..37abdd3fe302925bcf3ba24a3fd9fea0180c01c2 100644 --- a/test/test.js +++ b/test/test.js @@ -1017,7 +1017,8 @@ testCM("showEmptyWidgetSpan", function(cm) { clearWhenEmpty: false, replacedWith: document.createTextNode("X") }); - eq(cm.display.view[0].text.textContent, "abXc"); + var text = cm.display.view[0].text; + eq(text.textContent || text.innerText, "abXc"); }, {value: "abc"}); testCM("changedInlineWidget", function(cm) { @@ -1963,8 +1964,8 @@ testCM("lineStyleFromMode", function(cm) { is(!/parens.*parens/.test(parenElts[0].className)); eq(parenElts[0].parentElement.nodeName, "DIV"); - eq(byClassName(cm.getWrapperElement(), "bg").length, 1); - eq(byClassName(cm.getWrapperElement(), "line").length, 1); + is(byClassName(cm.getWrapperElement(), "bg").length > 0); + is(byClassName(cm.getWrapperElement(), "line").length > 0); var spanElts = byClassName(cm.getWrapperElement(), "cm-span"); eq(spanElts.length, 2); is(/^\s*cm-span\s*$/.test(spanElts[0].className)); @@ -2218,15 +2219,21 @@ function makeItWrapAfter(cm, pos) { } } +function countIf(arr, f) { + var result = 0 + for (var i = 0; i < arr.length; i++) if (f[arr[i]]) result++ + return result +} + function testMoveBidi(str) { testCM("move_bidi_" + str, function(cm) { if (cm.getOption("inputStyle") != "textarea" || !cm.getOption("rtlMoveVisually")) return; cm.getScrollerElement().style.fontFamily = "monospace"; makeItWrapAfter(cm, Pos(0, 5)); - var steps = str.length - str.split("").filter(extendingChars.test.bind(extendingChars)).length; - var lineBreaks = Object.create(null); - lineBreaks[6 - str.substr(0, 5).split("").filter(extendingChars.test.bind(extendingChars)).length] = 'w'; + var steps = str.length - countIf(str.split(""), function(ch) { return extendingChars.test(ch) }); + var lineBreaks = {} + lineBreaks[6 - countIf(str.substr(0, 5).split(""), function(ch) { return extendingChars.test(ch) })] = 'w'; if (str.indexOf("\n") != -1) { lineBreaks[steps - 2] = 'n'; }