Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(704)

Unified Diff: chrome/browser/resources/google_now/common_test_util.js

Issue 23477006: Unit tests for utility.js (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fixing unit test + more arv@ comments Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;
+}

Powered by Google App Engine
This is Rietveld 408576698