blob: f9e64ae45cb4d257532ff3107ae0634c087a8872 [file] [log] [blame]
// Copyright 2017 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.
goog.setTestOnly('internal_message_listener_test');
goog.require('mr.InternalMessageListener');
describe('Tests mr.InternalMessageListener', () => {
let listener;
const failCallback = response => {
fail('should not have called back');
};
const validEvent = {'type': mr.InternalMessageType.RETRIEVE_LOG_DATA};
const validSender = {
'id': 'foo',
'url': 'chrome-extension://foo/feedback.html'
};
beforeEach(() => {
chrome.runtime = {id: 'foo'};
listener = new mr.InternalMessageListener();
});
it('rejects invalid extension id', () => {
const sender = {
'id': 'invalid',
'url': 'chrome-extension://invalid/feedback.html'
};
const result = listener.validateEvent(validEvent, sender, failCallback);
expect(result).toBe(false);
});
it('rejects invalid extension url', () => {
const sender = {'id': 'foo', 'url': 'chrome-extension://foo/invalid.html'};
const result = listener.validateEvent(validEvent, sender, failCallback);
expect(result).toBe(false);
});
it('rejects invalid message type', () => {
const result = listener.validateEvent(
{'type': mr.InternalMessageType.START}, validSender, failCallback);
expect(result).toBe(false);
});
it('passes validation', () => {
const result = listener.validateEvent(validEvent, validSender, () => {});
expect(result).toBe(true);
});
});