summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/content-security-policy/support/logTest.sub.js
blob: f712252cef531182cc4780210529301bb5475e16 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// note, this template substitution is XSS, but no way to avoid it in this framework
var expected_logs = {{GET[logs]}};
var timeout = "{{GET[timeout]}}";
if (timeout == "") {
  timeout = 2;
}

if (expected_logs.length == 0) {
    function log_assert(msg) {
        test(function () { assert_unreached(msg) });
    }
} else {
    var t_log = async_test('Expecting logs: {{GET[logs]}}');
    step_timeout(function() {
      if(t_log.phase != t_log.phases.COMPLETE){
        t_log.step(function () { assert_unreached('Logging timeout, expected logs ' + expected_logs + ' not sent.') });
        t_log.done();
      }
    }, timeout * 1000);
    function log(msg) {
        //cons/**/ole.log(msg);
        t_log.step(function () {
            if (msg.match(/^FAIL/i)) {
                assert_unreached(msg);
                t_log.done();
            }
            for (var i = 0; i < expected_logs.length; i++) {
                if (expected_logs[i] == msg) {
                    assert_true(expected_logs[i] == msg);
                    expected_logs.splice(i, 1);
                    if (expected_logs.length == 0) {
                        t_log.done();
                    }
                    return;
                 }
             }
             assert_unreached('unexpected log: ' + msg);
             t_log.done();
        });
    }
}