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..5a0291f5c7660e5c764ae642964352b493d8964d |
--- /dev/null |
+++ b/chrome/browser/resources/chromeos/chromevox/testing/fake_objects.js |
@@ -0,0 +1,40 @@ |
+// Copyright 2014 The Chromium Authors. All rights reserved. |
David Tseng
2014/09/08 21:45:59
Maybe call this file fake_event.js?
|
+// 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 |
David Tseng
2014/09/08 21:45:59
Can you inherit from a ChromeEvent?
David Tseng
2014/09/09 20:37:48
Maybe call this class FakeChromeEvent then :).
|
+ */ |
+function FakeEvent() { |
+ /** @private {Function} */ |
David Tseng
2014/09/08 21:46:00
Is this valid js doc?
|
+ this.listener_ = null; |
+} |
+ |
+FakeEvent.prototype = { |
+ /** |
+ * Fakes the corresponding call on a Chrome event. Sets the listener and |
+ * fails the test if it is already set. |
David Tseng
2014/09/08 21:45:59
Why? This isn't the behavior of ChromeEvent.
|
+ * @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 noone. |
David Tseng
2014/09/08 21:45:59
nit: none
|
+ * @return {Function} The event's listener. |
+ */ |
+ getListener: function() { |
David Tseng
2014/09/08 21:45:59
Is this part of the ChromeEvent interface?
|
+ assertNotEquals(null, this.listener_); |
+ return this.listener_; |
+ }, |
+ |
+ /** |
+ * Asserts that this object doesn't have any listener added. |
+ */ |
+ assertNoListener: function() { |
+ assertEquals(null, this.listener_); |
+ } |
+}; |