| Index: chrome/browser/resources/google_now/common_test_util.js
|
| diff --git a/chrome/browser/resources/google_now/common_test_util.js b/chrome/browser/resources/google_now/common_test_util.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..9a4215b304206654098fd7ac9b8c735377960c9c
|
| --- /dev/null
|
| +++ b/chrome/browser/resources/google_now/common_test_util.js
|
| @@ -0,0 +1,56 @@
|
| +// Copyright 2013 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.
|
| +
|
| +// Common test utilities.
|
| +
|
| +function emptyMock() {}
|
| +
|
| +// Container for event handlers added by mocked 'addListener' functions.
|
| +var mockEventHandlers = {};
|
| +
|
| +/**
|
| + * Mocks 'addListener' function of an API event. The mocked function will keep
|
| + * track of handlers.
|
| + * @param {Object} topLevelContainer Top-level container of the original
|
| + * function. Can be either 'chrome' or 'instrumented'.
|
| + * @param {string} eventIdentifier Event identifier, such as
|
| + * 'runtime.onSuspend'.
|
| + */
|
| +function mockChromeEvent(topLevelContainer, eventIdentifier) {
|
| + var eventIdentifierParts = eventIdentifier.split('.');
|
| + var eventName = eventIdentifierParts.pop();
|
| + var originalMethodContainer = topLevelContainer;
|
| + var mockEventContainer = mockEventHandlers;
|
| + eventIdentifierParts.forEach(function(fragment) {
|
| + originalMethodContainer =
|
| + originalMethodContainer[fragment] =
|
| + originalMethodContainer[fragment] || {};
|
| + mockEventContainer =
|
| + mockEventContainer[fragment] =
|
| + mockEventContainer[fragment] || {};
|
| + });
|
| +
|
| + mockEventContainer[eventName] = [];
|
| + originalMethodContainer[eventName] = {
|
| + addListener: function(callback) {
|
| + mockEventContainer[eventName].push(callback);
|
| + }
|
| + };
|
| +}
|
| +
|
| +/**
|
| + * Gets the array of event handlers added by a mocked 'addListener' function.
|
| + * @param {string} eventIdentifier Event identifier, such as
|
| + * 'runtime.onSuspend'.
|
| + * @return {Array.<Function>} Array of handlers.
|
| + */
|
| +function getMockHandlerContainer(eventIdentifier) {
|
| + var eventIdentifierParts = eventIdentifier.split('.');
|
| + var mockEventContainer = mockEventHandlers;
|
| + eventIdentifierParts.forEach(function(fragment) {
|
| + mockEventContainer = mockEventContainer[fragment];
|
| + });
|
| +
|
| + return mockEventContainer;
|
| +}
|
|
|