blob: cf5f4faa58c403ae1812f1772dbb3314c3bd17ab [file] [log] [blame]
// Copyright 2010 The Closure Library Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS-IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
goog.provide('goog.messaging.LoggerClientTest');
goog.setTestOnly('goog.messaging.LoggerClientTest');
goog.require('goog.debug');
goog.require('goog.debug.Logger');
goog.require('goog.messaging.LoggerClient');
goog.require('goog.testing.MockControl');
goog.require('goog.testing.jsunit');
goog.require('goog.testing.messaging.MockMessageChannel');
var mockControl;
var channel;
var client;
var logger;
function setUp() {
mockControl = new goog.testing.MockControl();
channel = new goog.testing.messaging.MockMessageChannel(mockControl);
client = new goog.messaging.LoggerClient(channel, 'log');
logger = goog.debug.Logger.getLogger('test.logging.Object');
}
function tearDown() {
channel.dispose();
client.dispose();
}
function testCommand() {
channel.send('log', {
name: 'test.logging.Object',
level: goog.debug.Logger.Level.WARNING.value,
message: 'foo bar',
exception: undefined
});
mockControl.$replayAll();
logger.warning('foo bar');
mockControl.$verifyAll();
}
function testCommandWithException() {
var ex = Error('oh no');
ex.stack = ['one', 'two'];
ex.message0 = 'message 0';
ex.message1 = 'message 1';
ex.ignoredProperty = 'ignored';
channel.send('log', {
name: 'test.logging.Object',
level: goog.debug.Logger.Level.WARNING.value,
message: 'foo bar',
exception: {
name: 'Error',
message: ex.message,
stack: ex.stack,
lineNumber: ex.lineNumber || 'Not available',
fileName: ex.fileName || window.location.href,
message0: ex.message0,
message1: ex.message1
}
});
mockControl.$replayAll();
logger.warning('foo bar', ex);
mockControl.$verifyAll();
}
function testCommandWithStringException() {
channel.send('log', {
name: 'test.logging.Object',
level: goog.debug.Logger.Level.WARNING.value,
message: 'foo bar',
exception: {
name: 'Unknown error',
message: 'oh no',
stack: '[Anonymous](object, foo bar, oh no)\n' +
'[Anonymous](foo bar, oh no)\n' + goog.debug.getStacktrace(),
lineNumber: 'Not available',
fileName: window.location.href
}
});
mockControl.$replayAll();
logger.warning('foo bar', 'oh no');
mockControl.$verifyAll();
}