blob: 07d34c7ea43cc30fc6e77f107d76534fdb254944 [file] [log] [blame]
// Copyright 2011 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.debug.logRecordSerializerTest');
goog.setTestOnly('goog.debug.logRecordSerializerTest');
goog.require('goog.debug.LogRecord');
goog.require('goog.debug.Logger');
goog.require('goog.debug.logRecordSerializer');
goog.require('goog.testing.jsunit');
var NOW = 1311484654000;
var SEQ = 1231;
function testBasic() {
var rec = new goog.debug.LogRecord(goog.debug.Logger.Level.FINE,
'An awesome message', 'logger.name', NOW, SEQ);
var thawed = goog.debug.logRecordSerializer.parse(
goog.debug.logRecordSerializer.serialize(rec));
assertEquals(goog.debug.Logger.Level.FINE, thawed.getLevel());
assertEquals('An awesome message', thawed.getMessage());
assertEquals('logger.name', thawed.getLoggerName());
assertEquals(NOW, thawed.getMillis());
assertEquals(SEQ, thawed.getSequenceNumber());
assertNull(thawed.getException());
}
function testUnsafeParse() {
var rec = new goog.debug.LogRecord(goog.debug.Logger.Level.FINE,
'An awesome message', 'logger.name', NOW, SEQ);
var thawed = goog.debug.logRecordSerializer.parse(
goog.debug.logRecordSerializer.serialize(rec));
assertEquals(goog.debug.Logger.Level.FINE, thawed.getLevel());
assertEquals('An awesome message', thawed.getMessage());
assertEquals('logger.name', thawed.getLoggerName());
assertEquals(NOW, thawed.getMillis());
assertEquals(SEQ, thawed.getSequenceNumber());
assertNull(thawed.getException());
}
function testWithException() {
var err = new Error('it broke!');
var rec = new goog.debug.LogRecord(goog.debug.Logger.Level.FINE,
'An awesome message', 'logger.name', NOW, SEQ);
rec.setException(err);
var thawed = goog.debug.logRecordSerializer.unsafeParse(
goog.debug.logRecordSerializer.serialize(rec));
assertEquals(err.message, thawed.getException().message);
}
function testCustomLogLevel() {
var rec = new goog.debug.LogRecord(
new goog.debug.Logger.Level('CUSTOM', -1),
'An awesome message', 'logger.name', NOW, SEQ);
var thawed = goog.debug.logRecordSerializer.parse(
goog.debug.logRecordSerializer.serialize(rec));
assertEquals('CUSTOM', thawed.getLevel().name);
assertEquals(-1, thawed.getLevel().value);
}
function testWeirdLogLevel() {
var rec = new goog.debug.LogRecord(
new goog.debug.Logger.Level('FINE', -1),
'An awesome message', 'logger.name', NOW, SEQ);
var thawed = goog.debug.logRecordSerializer.parse(
goog.debug.logRecordSerializer.serialize(rec));
assertEquals('FINE', thawed.getLevel().name);
// Makes sure that the log leve is still -1 even though the name
// FINE is predefind.
assertEquals(-1, thawed.getLevel().value);
}