⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 testrunner.js

📁 Ajax下日志框架
💻 JS
字号:
/** * TestRunner: A test runner for SimpleTest * TODO: *  *  * Avoid moving iframes: That causes reloads on mozilla and opera. * ***/var TestRunner = {};TestRunner._iframes = {};TestRunner._iframeDocuments = {};TestRunner._iframeRows = {};TestRunner._currentTest = 0;TestRunner._urls = [];TestRunner._testsDiv = DIV();TestRunner._progressDiv = DIV();TestRunner._summaryDiv = DIV(null,     H1(null, "Tests Summary"),    TABLE(null,         THEAD(null,             TR(null,                TH(null, "Test"),                 TH(null, "Passed"),                 TH(null, "Failed")            )        ),        TBODY()    ));/** * Toggle element visibility**/TestRunner._toggle = function(el) {    if (el.className == "noshow") {        el.className = "";        el.style.cssText = "";    } else {        el.className = "noshow";        el.style.cssText = "width:0px; height:0px; border:0px;";    }};/** * Creates the iframe that contains a test**/TestRunner._makeIframe = function (url) {    var iframe = document.createElement('iframe');    iframe.src = url;    iframe.name = url;    iframe.width = "500";    var tbody = TestRunner._summaryDiv.getElementsByTagName("tbody")[0];    var tr = TR(null, TD({'colspan': '3'}, iframe));    iframe._row = tr;    tbody.appendChild(tr);    return iframe;};/** * TestRunner entry point. * * The arguments are the URLs of the test to be ran. ***/TestRunner.runTests = function (/*url...*/) {    var body = document.getElementsByTagName("body")[0];    appendChildNodes(body,        TestRunner._testsDiv,        TestRunner._progressDiv,        TestRunner._summaryDiv    );    for (var i = 0; i < arguments.length; i++) {        TestRunner._urls.push(arguments[i]);     }    TestRunner.runNextTest();};/** * Run the next test. If no test remains, calls makeSummary**/TestRunner.runNextTest = function() {    if (TestRunner._currentTest < TestRunner._urls.length) {        var url = TestRunner._urls[TestRunner._currentTest];        var progress = SPAN(null,            "Running ", A({href:url}, url), "..."        );        TestRunner._progressDiv.appendChild(progress);        TestRunner._iframes[url] = TestRunner._makeIframe(url);    }  else {        TestRunner.makeSummary();    }};/** * This stub is called by SimpleTest when a test is finished.**/TestRunner.testFinished = function (doc) {    appendChildNodes(TestRunner._progressDiv, SPAN(null, "Done"), BR());    var finishedURL = TestRunner._urls[TestRunner._currentTest];    TestRunner._iframeDocuments[finishedURL] = doc;    // TestRunner._iframes[finishedURL].style.display = "none";    TestRunner._toggle(TestRunner._iframes[finishedURL]);    TestRunner._currentTest++;    TestRunner.runNextTest();};/** * Display the summary in the browser**/TestRunner.makeSummary = function() {    var rows = [];    for (var url in TestRunner._iframeDocuments) {        var doc = TestRunner._iframeDocuments[url];        var nOK = withDocument(doc,            partial(getElementsByTagAndClassName, 'div', 'test_ok')        ).length;        var nNotOK = withDocument(doc,            partial(getElementsByTagAndClassName, 'div', 'test_not_ok')        ).length;        var toggle = partial(TestRunner._toggle, TestRunner._iframes[url]);        var jsurl = "TestRunner._toggle(TestRunner._iframes['" + url + "'])";        var row = TR(            {'style': {'backgroundColor': nNotOK > 0 ? "#f00":"#0f0"}},             TD(null, url),            TD(null, nOK),            TD(null, nNotOK)        );        row.onclick = toggle;        var tbody = TestRunner._summaryDiv.getElementsByTagName("tbody")[0];        tbody.insertBefore(row, TestRunner._iframes[url]._row)    }};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -