blob: 4c7de214ee72440f534f6c9f8cb97865b02bdbdf [file] [log] [blame]
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
const { assert } = chai;
import * as Common from '../../../../front_end/common/common.js';
describe('Console', () => {
let consoleImpl: Common.Console.Console;
beforeEach(() => {
consoleImpl = new Common.Console.Console();
});
it('adds messages', () => {
consoleImpl.addMessage('Foo', Common.Console.MessageLevel.Info, true);
const messages = consoleImpl.messages();
assert.equal(messages.length, 1);
assert.equal(messages[0].text, 'Foo');
});
it('adds handles messages of all types', () => {
const messageTypes = new Map<string, string>([
['Info', 'log'],
['Warning', 'warn'],
['Error', 'error']
]);
for (const [type, method] of messageTypes) {
consoleImpl = new Common.Console.Console();
// Dispatch the message of the appropriate type.
consoleImpl[method](type);
// Now read the message back and check it.
const messages = consoleImpl.messages();
assert.equal(messages.length, 1);
assert.equal(messages[0].text, type);
assert.equal(messages[0].level, Common.Console.MessageLevel[type]);
}
});
it('stores messages', () => {
consoleImpl.addMessage('Foo', Common.Console.MessageLevel.Info, true);
consoleImpl.addMessage('Baz', Common.Console.MessageLevel.Warning, true);
consoleImpl.addMessage('Bar', Common.Console.MessageLevel.Error, true);
consoleImpl.addMessage('Donkey', Common.Console.MessageLevel.Info, true);
const messages = consoleImpl.messages();
assert.equal(messages.length, 4);
});
it('dispatches events to listeners', (done) => {
consoleImpl.addEventListener(Common.Console.Events.MessageAdded, ({data}) => {
assert.equal(data.text, 'Foo');
done();
});
consoleImpl.addMessage('Foo', Common.Console.MessageLevel.Info, true);
});
});