sku-pg
Version:
Skulpt is a Javascript implementation of Python 2.x. Python that runs in your browser!
173 lines (133 loc) • 4.04 kB
HTML
<html>
<!--
Copyright 2008 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.
-->
<!--
Author: arv@google.com (Erik Arvidsson)
-->
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>
Closure Unit Tests - goog.gears.LoggerClient
</title>
<script src="../base.js"></script>
<script>
goog.require('goog.debug.Logger');
goog.require('goog.debug.Logger.Level');
goog.require('goog.events.EventTarget');
goog.require('goog.gears.LoggerClient');
goog.require('goog.gears.Worker');
goog.require('goog.testing.StrictMock');
goog.require('goog.testing.jsunit');
</script>
</head>
<body>
<script>
var LOGGER_NAME = 'WorkerLog';
var LOG_COMMAND_ID = 1;
var client, logger;
function setUp() {
// Remove instance so we get new instances for every run.
goog.gears.LoggerClient.instance_ = null;
logger = goog.debug.Logger.getLogger(LOGGER_NAME);
}
function tearDown() {
if (client) {
client.dispose();
client = null;
}
}
function getMockWorker(levelValue, workerName, ex) {
var mockWorker = new goog.testing.StrictMock(goog.gears.Worker);
// Normalize stack
ex.stack = 'STACK';
ex.message0 = 'message one';
ex.message1 = 'message two';
// The logger client creates a new object based on the error object.
var errorLikeObject = {
message: (workerName ? workerName + ': ' : '') + ex.message,
stack: ex.stack,
message0: ex.message0,
message1: ex.message1
};
mockWorker.sendCommand(LOG_COMMAND_ID, [
LOGGER_NAME,
levelValue,
'one',
undefined
]);
mockWorker.sendCommand(LOG_COMMAND_ID, [
LOGGER_NAME,
levelValue,
'two',
errorLikeObject
]);
return mockWorker;
}
function testShout() {
var ex = Error('custom shout error');
var mockWorker = getMockWorker(goog.debug.Logger.Level.SHOUT.value,
'',
ex);
mockWorker.$replay();
client = new goog.gears.LoggerClient(mockWorker, LOG_COMMAND_ID);
logger.shout('one');
logger.shout('two', ex);
mockWorker.$verify();
}
function testSevere() {
var ex = Error('custom severe error');
var mockWorker = getMockWorker(goog.debug.Logger.Level.SEVERE.value,
'',
ex);
mockWorker.$replay();
client = new goog.gears.LoggerClient(mockWorker, LOG_COMMAND_ID);
logger.severe('one');
logger.severe('two', ex);
mockWorker.$verify();
}
function testWarning() {
var ex = Error('custom warning error');
var mockWorker = getMockWorker(goog.debug.Logger.Level.WARNING.value,
'',
ex);
mockWorker.$replay();
client = new goog.gears.LoggerClient(mockWorker, LOG_COMMAND_ID);
logger.warning('one');
logger.warning('two', ex);
mockWorker.$verify();
}
function testWarningWithPrefix() {
var ex = Error('custom warning error');
var workerName = 'W';
var mockWorker = getMockWorker(goog.debug.Logger.Level.WARNING.value,
workerName,
ex);
mockWorker.$replay();
client = new goog.gears.LoggerClient(mockWorker, LOG_COMMAND_ID, workerName);
logger.warning('one');
logger.warning('two', ex);
mockWorker.$verify();
}
function testLogRecord() {
var ex = Error('custom severe error');
var workerName = 'W';
var mockWorker = getMockWorker(goog.debug.Logger.Level.SEVERE.value,
workerName,
ex);
mockWorker.$replay();
client = new goog.gears.LoggerClient(mockWorker, LOG_COMMAND_ID, workerName);
var logRecord1 =
logger.getLogRecord(goog.debug.Logger.Level.SEVERE, 'one');
logger.logRecord(logRecord1);
var logRecord2 =
logger.getLogRecord(goog.debug.Logger.Level.SEVERE, 'two', ex);
logger.logRecord(logRecord2);
mockWorker.$verify();
}
</script>
</body>
</html>