-cases.js 1.5 KB
Newer Older
S
sushuang 已提交
1 2 3 4 5
(function () {

    var testHelper = window.testHelper;
    var encodeHTML = testHelper.encodeHTML;

S
sushuang 已提交
6
    var caseFrame = window.caseFrame;
S
sushuang 已提交
7 8

    function run() {
S
sushuang 已提交
9

S
sushuang 已提交
10
        // Init list
S
sushuang 已提交
11
        var url = testHelper.dir() + '/';
S
sushuang 已提交
12
        $.ajax({
S
sushuang 已提交
13
            url: url
S
sushuang 已提交
14 15
        }).then(
            function (content) {
S
sushuang 已提交
16
                var pagePaths = fetchPagePaths(content);
S
sushuang 已提交
17
                if (pagePaths.length) {
S
sushuang 已提交
18 19 20 21
                    caseFrame.init({
                        dom: document.getElementById('main'),
                        pagePaths: pagePaths
                    });
S
sushuang 已提交
22 23 24 25
                }
                else {
                    renderFailInfo(url);
                }
S
sushuang 已提交
26 27 28 29 30
            },
            function () {
                renderFailInfo(url);
            }
        );
S
sushuang 已提交
31 32
    }

S
sushuang 已提交
33 34 35 36 37 38
    function renderFailInfo(url) {
        url = encodeHTML(url);
        document.body.innerHTML = 'Error: This page requires a server that is able to list files when visiting'
            + ' <a target="_blank" href="' + url + '">' + url + '</a>.';
    }

S
sushuang 已提交
39 40 41
    function fetchPagePaths(content) {
        var pageList = [];

S
tweak  
sushuang 已提交
42 43
        singleFetch(/"([^"/]*\/)*([^"/]+\.html)\s*"/g);
        singleFetch(/'([^'/]*\/)*([^'/]+\.html)\s*'/g);
S
sushuang 已提交
44 45 46 47

        function singleFetch(pattern) {
            var result;
            while ((result = pattern.exec(content)) != null) {
S
tweak  
sushuang 已提交
48
                pageList.push(result[result.length - 1]);
S
sushuang 已提交
49 50 51 52 53 54
            }
        }

        return pageList;
    }

S
sushuang 已提交
55
    run();
S
sushuang 已提交
56 57

})();