| 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 | }; |