Commit | Line | Data |
---|---|---|
6a1aa64f DV |
1 | if (typeof(dojo) != 'undefined') { dojo.require('MochiKit.Logging'); } |
2 | if (typeof(JSAN) != 'undefined') { JSAN.use('MochiKit.Logging'); } | |
3 | if (typeof(tests) == 'undefined') { tests = {}; } | |
4 | ||
5 | tests.test_Logging = function (t) { | |
6 | ||
7 | // just in case | |
8 | logger.clear(); | |
9 | ||
10 | t.is( logLevelAtLeast('DEBUG')('INFO'), false, 'logLevelAtLeast false' ); | |
11 | t.is( logLevelAtLeast('WARNING')('INFO'), false, 'logLevelAtLeast true' ); | |
12 | t.ok( logger instanceof Logger, "global logger installed" ); | |
13 | ||
14 | var allMessages = []; | |
15 | logger.addListener("allMessages", null, | |
16 | bind(allMessages.push, allMessages)); | |
17 | ||
18 | var fatalMessages = []; | |
19 | logger.addListener("fatalMessages", "FATAL", | |
20 | bind(fatalMessages.push, fatalMessages)); | |
21 | ||
22 | var firstTwo = []; | |
23 | logger.addListener("firstTwo", null, | |
24 | bind(firstTwo.push, firstTwo)); | |
25 | ||
26 | ||
27 | log("foo"); | |
28 | var msgs = logger.getMessages(); | |
29 | t.is( msgs.length, 1, 'global log() put one message in queue' ); | |
30 | t.is( compare(allMessages, msgs), 0, "allMessages listener" ); | |
31 | var msg = msgs.pop(); | |
32 | t.is( compare(msg.info, ["foo"]), 0, "info matches" ); | |
33 | t.is( msg.level, "INFO", "level matches" ); | |
34 | ||
35 | logDebug("debugFoo"); | |
36 | t.is( msgs.length, 0, 'getMessages() returns copy' ); | |
37 | msgs = logger.getMessages(); | |
38 | t.is( compare(allMessages, msgs), 0, "allMessages listener" ); | |
39 | t.is( msgs.length, 2, 'logDebug()' ); | |
40 | msg = msgs.pop(); | |
41 | t.is( compare(msg.info, ["debugFoo"]), 0, "info matches" ); | |
42 | t.is( msg.level, "DEBUG", "level matches" ); | |
43 | ||
44 | logger.removeListener("firstTwo"); | |
45 | ||
46 | logError("errorFoo"); | |
47 | msgs = logger.getMessages(); | |
48 | t.is( compare(allMessages, msgs), 0, "allMessages listener" ); | |
49 | t.is( msgs.length, 3, 'logError()' ); | |
50 | msg = msgs.pop(); | |
51 | t.is( compare(msg.info, ["errorFoo"]), 0, "info matches" ); | |
52 | t.is( msg.level, "ERROR", "level matches" ); | |
53 | ||
54 | logWarning("warningFoo"); | |
55 | msgs = logger.getMessages(); | |
56 | t.is( compare(allMessages, msgs), 0, "allMessages listener" ); | |
57 | t.is( msgs.length, 4, 'logWarning()' ); | |
58 | msg = msgs.pop(); | |
59 | t.is( compare(msg.info, ["warningFoo"]), 0, "info matches" ); | |
60 | t.is( msg.level, "WARNING", "level matches" ); | |
61 | ||
62 | logFatal("fatalFoo"); | |
63 | msgs = logger.getMessages(); | |
64 | t.is( compare(allMessages, msgs), 0, "allMessages listener" ); | |
65 | t.is( msgs.length, 5, 'logFatal()' ); | |
66 | msg = msgs.pop(); | |
67 | t.is( compare(fatalMessages, [msg]), 0, "fatalMessages listener" ); | |
68 | t.is( compare(msg.info, ["fatalFoo"]), 0, "info matches" ); | |
69 | t.is( msg.level, "FATAL", "level matches" ); | |
70 | ||
71 | logger.removeListener("allMessages"); | |
72 | logger.removeListener("fatalMessages"); | |
73 | ||
74 | t.is( compare(firstTwo, logger.getMessages().slice(0, 2)), 0, "firstTwo" ); | |
75 | }; |