summaryrefslogtreecommitdiffstats
path: root/dom/tests/mochitest/ajax/mochikit/tests/test_Logging.js
blob: 66f4989b02ae0ebb4a92a1833d20238f05fd2752 (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
if (typeof(dojo) != 'undefined') { dojo.require('MochiKit.Logging'); }
if (typeof(JSAN) != 'undefined') { JSAN.use('MochiKit.Logging'); }
if (typeof(tests) == 'undefined') { tests = {}; }

tests.test_Logging = function (t) {
  
    // just in case
    logger.clear();

    t.is( logLevelAtLeast('DEBUG')('INFO'), false, 'logLevelAtLeast false' );
    t.is( logLevelAtLeast('WARNING')('INFO'), false, 'logLevelAtLeast true' );
    t.ok( logger instanceof Logger, "global logger installed" );

    var allMessages = [];
    logger.addListener("allMessages", null,
        bind(allMessages.push, allMessages));

    var fatalMessages = [];
    logger.addListener("fatalMessages", "FATAL",
        bind(fatalMessages.push, fatalMessages));

    var firstTwo = [];
    logger.addListener("firstTwo", null,
        bind(firstTwo.push, firstTwo));

    
    log("foo");
    var msgs = logger.getMessages();
    t.is( msgs.length, 1, 'global log() put one message in queue' );
    t.is( compare(allMessages, msgs), 0, "allMessages listener" );
    var msg = msgs.pop();
    t.is( compare(msg.info, ["foo"]), 0, "info matches" );
    t.is( msg.level, "INFO", "level matches" );

    logDebug("debugFoo");
    t.is( msgs.length, 0, 'getMessages() returns copy' );
    msgs = logger.getMessages();
    t.is( compare(allMessages, msgs), 0, "allMessages listener" );
    t.is( msgs.length, 2, 'logDebug()' );
    msg = msgs.pop();
    t.is( compare(msg.info, ["debugFoo"]), 0, "info matches" );
    t.is( msg.level, "DEBUG", "level matches" );

    logger.removeListener("firstTwo");

    logError("errorFoo");
    msgs = logger.getMessages();
    t.is( compare(allMessages, msgs), 0, "allMessages listener" );
    t.is( msgs.length, 3, 'logError()' );
    msg = msgs.pop();
    t.is( compare(msg.info, ["errorFoo"]), 0, "info matches" );
    t.is( msg.level, "ERROR", "level matches" );

    logWarning("warningFoo");
    msgs = logger.getMessages();
    t.is( compare(allMessages, msgs), 0, "allMessages listener" );
    t.is( msgs.length, 4, 'logWarning()' );
    msg = msgs.pop();
    t.is( compare(msg.info, ["warningFoo"]), 0, "info matches" );
    t.is( msg.level, "WARNING", "level matches" );

    logFatal("fatalFoo");
    msgs = logger.getMessages();
    t.is( compare(allMessages, msgs), 0, "allMessages listener" );
    t.is( msgs.length, 5, 'logFatal()' );
    msg = msgs.pop();
    t.is( compare(fatalMessages, [msg]), 0, "fatalMessages listener" );
    t.is( compare(msg.info, ["fatalFoo"]), 0, "info matches" );
    t.is( msg.level, "FATAL", "level matches" );

    logger.removeListener("allMessages");
    logger.removeListener("fatalMessages");

    t.is( compare(firstTwo, logger.getMessages().slice(0, 2)), 0, "firstTwo" );
};