Index: chrome/renderer/extensions/event_unittest.cc |
diff --git a/chrome/renderer/extensions/event_unittest.cc b/chrome/renderer/extensions/event_unittest.cc |
index 4b0619f9b29880875bfb1483d302ec774456ec2c..9cff07ae75445a1e0a41bf4c9a543b3953c5b766 100644 |
--- a/chrome/renderer/extensions/event_unittest.cc |
+++ b/chrome/renderer/extensions/event_unittest.cc |
@@ -65,6 +65,8 @@ class EventUnittest : public ModuleSystemTest { |
"exports.sendRequest = function() {};"); |
OverrideNativeHandler("apiDefinitions", |
"exports.GetExtensionAPIDefinition = function() {};"); |
+ OverrideNativeHandler("logging", |
+ "exports.DCHECK = function() {};"); |
} |
}; |
@@ -148,7 +150,7 @@ TEST_F(EventUnittest, NamedEventDispatch) { |
"var e = new event.Event('myevent');" |
"var called = false;" |
"e.addListener(function() { called = true; });" |
- "chromeHidden.Event.dispatch('myevent', []);" |
+ "chromeHidden.Event.dispatchJSON('myevent', []);" |
"assert.AssertTrue(called);"); |
module_system_->Require("test"); |
} |
@@ -246,4 +248,28 @@ TEST_F(EventUnittest, AddingFilterWithUrlFieldNotAListThrowsException) { |
module_system_->Require("test"); |
} |
+TEST_F(EventUnittest, MaxListeners) { |
+ ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); |
+ RegisterModule("test", |
+ "var event = require('event');" |
+ "var assert = requireNative('assert');" |
+ "var eventOpts = {supportsListeners: true, maxListeners: 1};" |
+ "var e = new event.Event('myevent', undefined, eventOpts);" |
+ "var cb = function() {};" |
+ "var caught = false;" |
+ "try {" |
+ " e.addListener(cb);" |
+ "} catch (e) {" |
+ " caught = true;" |
+ "}" |
+ "assert.AssertTrue(!caught);" |
+ "try {" |
+ " e.addListener(cb);" |
+ "} catch (e) {" |
+ " caught = true;" |
+ "}" |
+ "assert.AssertTrue(caught);"); |
+ module_system_->Require("test"); |
+} |
+ |
} // namespace |