UNPKG

sku-pg

Version:

Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!

209 lines (187 loc) 7.27 kB
<!DOCTYPE html> <html> <!-- Copyright 2006 The Closure Library Authors. All Rights Reserved. Use of this source code is governed by the Apache License, Version 2.0. See the COPYING file for details. --> <head> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>Closure Unit Tests - goog.debug.Logger</title> <script src="../base.js"></script> <script> goog.require('goog.debug.Logger'); goog.require('goog.testing.jsunit'); </script> </head> <body> <script> function getDebug(sb, logger, level) { var spacer = ''; if (level) { spacer = (new Array(level + 1)).join(' '); } sb[sb.length] = spacer; var name = logger.getName(); if (name) { sb[sb.length] = name; } else { sb[sb.length] = 'ROOT'; } sb[sb.length] = '\n'; var children = logger.getChildren(); for (var key in children) { getDebug(sb, children[key], level + 1); } }; function testParents() { var l1 = goog.debug.Logger.getLogger('goog.test'); var l2 = goog.debug.Logger.getLogger('goog.bar'); var l3 = goog.debug.Logger.getLogger('goog.bar.foo'); var l4 = goog.debug.Logger.getLogger('goog.bar.baaz'); var rootLogger = goog.debug.LogManager.getRoot(); var googLogger = goog.debug.Logger.getLogger('goog'); assertEquals(rootLogger, googLogger.getParent()); assertEquals(googLogger, l1.getParent()); assertEquals(googLogger, l2.getParent()); assertEquals(l2, l3.getParent()); assertEquals(l2, l4.getParent()); } function testLogging() { var root = goog.debug.LogManager.getRoot(); var handler = new TestHandler(); var f = goog.bind(handler.onPublish, handler); root.addHandler(f); var l4 = goog.debug.Logger.getLogger('goog.bar.baaz'); l4.log(goog.debug.Logger.Level.WARNING, 'foo'); assertNotNull(handler.logRecord); assertEquals(goog.debug.Logger.Level.WARNING, handler.logRecord.getLevel()); assertEquals('foo', handler.logRecord.getMessage()); handler.logRecord = null; root.removeHandler(f); l4.log(goog.debug.Logger.Level.WARNING, 'foo'); assertNull(handler.logRecord); } function testFiltering() { var root = goog.debug.LogManager.getRoot(); var handler = new TestHandler(); var f = goog.bind(handler.onPublish, handler); root.addHandler(f); var l3 = goog.debug.Logger.getLogger('goog.bar.foo'); l3.setLevel(goog.debug.Logger.Level.WARNING); var l4 = goog.debug.Logger.getLogger('goog.bar.baaz'); l4.setLevel(goog.debug.Logger.Level.INFO); l4.log(goog.debug.Logger.Level.WARNING, 'foo'); assertNotNull(handler.logRecord); assertEquals(goog.debug.Logger.Level.WARNING, handler.logRecord.getLevel()); assertEquals('foo', handler.logRecord.getMessage()); handler.reset(); l3.log(goog.debug.Logger.Level.INFO, 'bar'); assertNull(handler.logRecord); l3.log(goog.debug.Logger.Level.WARNING, 'baaz'); assertNotNull(handler.logRecord); handler.reset(); l3.log(goog.debug.Logger.Level.SEVERE, 'baaz'); assertNotNull(handler.logRecord); }; function testException() { var root = goog.debug.LogManager.getRoot(); var handler = new TestHandler(); var f = goog.bind(handler.onPublish, handler); root.addHandler(f); var logger = goog.debug.Logger.getLogger('goog.debug.logger_test'); var ex = Error('boo!'); logger.severe('hello', ex); assertNotNull(handler.logRecord); assertEquals(goog.debug.Logger.Level.SEVERE, handler.logRecord.getLevel()); assertEquals('hello', handler.logRecord.getMessage()); assertEquals(ex, handler.logRecord.getException()); assertEquals('Message: boo!', handler.logRecord.getExceptionText().substring(0, 13)); } function testGetPredefinedLevel() { assertEquals(goog.debug.Logger.Level.OFF, goog.debug.Logger.Level.getPredefinedLevel('OFF')); assertEquals(goog.debug.Logger.Level.SHOUT, goog.debug.Logger.Level.getPredefinedLevel('SHOUT')); assertEquals(goog.debug.Logger.Level.SEVERE, goog.debug.Logger.Level.getPredefinedLevel('SEVERE')); assertEquals(goog.debug.Logger.Level.WARNING, goog.debug.Logger.Level.getPredefinedLevel('WARNING')); assertEquals(goog.debug.Logger.Level.INFO, goog.debug.Logger.Level.getPredefinedLevel('INFO')); assertEquals(goog.debug.Logger.Level.CONFIG, goog.debug.Logger.Level.getPredefinedLevel('CONFIG')); assertEquals(goog.debug.Logger.Level.FINE, goog.debug.Logger.Level.getPredefinedLevel('FINE')); assertEquals(goog.debug.Logger.Level.FINER, goog.debug.Logger.Level.getPredefinedLevel('FINER')); assertEquals(goog.debug.Logger.Level.FINEST, goog.debug.Logger.Level.getPredefinedLevel('FINEST')); assertEquals(goog.debug.Logger.Level.ALL, goog.debug.Logger.Level.getPredefinedLevel('ALL')); } function testGetPredefinedLevelByValue() { assertEquals(goog.debug.Logger.Level.OFF, goog.debug.Logger.Level.getPredefinedLevelByValue(Infinity)); assertEquals(goog.debug.Logger.Level.SHOUT, goog.debug.Logger.Level.getPredefinedLevelByValue(1300)); assertEquals(goog.debug.Logger.Level.SHOUT, goog.debug.Logger.Level.getPredefinedLevelByValue(1200)); assertEquals(goog.debug.Logger.Level.SEVERE, goog.debug.Logger.Level.getPredefinedLevelByValue(1150)); assertEquals(goog.debug.Logger.Level.SEVERE, goog.debug.Logger.Level.getPredefinedLevelByValue(1000)); assertEquals(goog.debug.Logger.Level.WARNING, goog.debug.Logger.Level.getPredefinedLevelByValue(900)); assertEquals(goog.debug.Logger.Level.INFO, goog.debug.Logger.Level.getPredefinedLevelByValue(800)); assertEquals(goog.debug.Logger.Level.CONFIG, goog.debug.Logger.Level.getPredefinedLevelByValue(701)); assertEquals(goog.debug.Logger.Level.CONFIG, goog.debug.Logger.Level.getPredefinedLevelByValue(700)); assertEquals(goog.debug.Logger.Level.FINE, goog.debug.Logger.Level.getPredefinedLevelByValue(500)); assertEquals(goog.debug.Logger.Level.FINER, goog.debug.Logger.Level.getPredefinedLevelByValue(400)); assertEquals(goog.debug.Logger.Level.FINEST, goog.debug.Logger.Level.getPredefinedLevelByValue(300)); assertEquals(goog.debug.Logger.Level.ALL, goog.debug.Logger.Level.getPredefinedLevelByValue(0)); assertNull(goog.debug.Logger.Level.getPredefinedLevelByValue(-1)); } function TestHandler() { this.logRecord = null; } TestHandler.prototype.onPublish = function(logRecord) { this.logRecord = logRecord; }; TestHandler.prototype.reset = function() { this.logRecord = null; } function testGetLogRecord() { var name = 'test.get.log.record'; var level = 1; var msg = 'msg'; var logger = goog.debug.Logger.getLogger(name); var logRecord = logger.getLogRecord(level, msg) assertEquals(name, logRecord.getLoggerName()); assertEquals(level, logRecord.getLevel()); assertEquals(msg, logRecord.getMessage()); assertNull(logRecord.getException()); } function testGetLogRecordWithException() { var name = 'test.get.log.record'; var level = 1; var msg = 'msg'; var ex = Error('Hi'); var logger = goog.debug.Logger.getLogger(name); var logRecord = logger.getLogRecord(level, msg, ex) assertEquals(name, logRecord.getLoggerName()); assertEquals(level, logRecord.getLevel()); assertEquals(msg, logRecord.getMessage()); assertEquals(ex, logRecord.getException()); } </script> </body> </html>