Index: chrome/browser/resources/chromeos/chromevox/testing/fake_objects.js |
diff --git a/chrome/browser/resources/chromeos/chromevox/testing/fake_objects.js b/chrome/browser/resources/chromeos/chromevox/testing/fake_objects.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..8c5419f7b28bbdafe38a9988e75fa1a20f137f39 |
--- /dev/null |
+++ b/chrome/browser/resources/chromeos/chromevox/testing/fake_objects.js |
@@ -0,0 +1,44 @@ |
+// Copyright 2014 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. |
+ |
+/** |
+ * Fakes a Chrome event that supports one listener. |
+ * @constructor |
+ * @extends {ChromeEvent} |
+ */ |
+function FakeChromeEvent() { |
+ /** |
+ * @private |
+ * @type {Function} |
+ */ |
+ this.listener_ = null; |
+} |
+ |
+FakeChromeEvent.prototype = { |
+ /** |
+ * Fakes the corresponding call on a Chrome event. Sets the listener and |
+ * fails the test if it is already set. |
+ * @param {Function} listener The new listener. |
+ */ |
+ addListener: function(listener) { |
+ this.assertNoListener(); |
+ this.listener_ = listener; |
+ }, |
+ |
+ /** |
+ * Gets the listener of the event, failing the test if there's none. |
+ * @return {Function} The event's listener. |
+ */ |
+ getListener: function() { |
+ assertNotEquals(null, this.listener_); |
+ return this.listener_; |
+ }, |
+ |
+ /** |
+ * Asserts that this object doesn't have any listener added. |
+ */ |
+ assertNoListener: function() { |
+ assertEquals(null, this.listener_); |
+ } |
+}; |