98 lines
2.8 KiB
JavaScript
98 lines
2.8 KiB
JavaScript
// 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();
|
|
}
|