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

Side by Side Diff: chrome/renderer/extensions/event_unittest.cc

Issue 15855010: Make ExtensionMsg_MessageInvoke run a module system function rather than a (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix test compile Created 7 years, 6 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/renderer/extensions/dispatcher.cc ('k') | chrome/renderer/extensions/extension_helper.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/test/base/module_system_test.h" 5 #include "chrome/test/base/module_system_test.h"
6 6
7 #include "grit/renderer_resources.h" 7 #include "grit/renderer_resources.h"
8 8
9 namespace extensions { 9 namespace extensions {
10 namespace { 10 namespace {
11 11
12 class EventUnittest : public ModuleSystemTest { 12 class EventUnittest : public ModuleSystemTest {
13 virtual void SetUp() OVERRIDE { 13 virtual void SetUp() OVERRIDE {
14 ModuleSystemTest::SetUp(); 14 ModuleSystemTest::SetUp();
15 module_system_->RunString("chrome = {};", "setup-chrome"); 15 module_system_->RunString("chrome = {};", "setup-chrome");
16 16
17 RegisterModule("event", IDR_EVENT_BINDINGS_JS); 17 RegisterModule("event", IDR_EVENT_BINDINGS_JS);
18 RegisterModule("schemaUtils", IDR_SCHEMA_UTILS_JS); 18 RegisterModule("schemaUtils", IDR_SCHEMA_UTILS_JS);
19 RegisterModule("utils", IDR_UTILS_JS); 19 RegisterModule("utils", IDR_UTILS_JS);
20 RegisterModule("json_schema", IDR_JSON_SCHEMA_JS); 20 RegisterModule("json_schema", IDR_JSON_SCHEMA_JS);
21 RegisterModule("unload_event", IDR_UNLOAD_EVENT_JS);
21 22
22 // Mock out the native handler for event_bindings. These mocks will fail if 23 // Mock out the native handler for event_bindings. These mocks will fail if
23 // any invariants maintained by the real event_bindings are broken. 24 // any invariants maintained by the real event_bindings are broken.
24 OverrideNativeHandler("event_bindings", 25 OverrideNativeHandler("event_bindings",
25 "var assert = requireNative('assert');" 26 "var assert = requireNative('assert');"
26 "var attachedListeners = exports.attachedListeners = {};" 27 "var attachedListeners = exports.attachedListeners = {};"
27 "var attachedFilteredListeners = " 28 "var attachedFilteredListeners = "
28 " exports.attachedFilteredListeners = {};" 29 " exports.attachedFilteredListeners = {};"
29 "var nextId = 0;" 30 "var nextId = 0;"
30 "var idToName = {};" 31 "var idToName = {};"
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 "var assert = requireNative('assert');" 107 "var assert = requireNative('assert');"
107 "require('event');" 108 "require('event');"
108 "var Event = requireNative('chrome').GetChrome().Event;" 109 "var Event = requireNative('chrome').GetChrome().Event;"
109 "var eventBindings = requireNative('event_bindings');" 110 "var eventBindings = requireNative('event_bindings');"
110 "var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();" 111 "var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();"
111 "var myEvent = new Event('named-event');" 112 "var myEvent = new Event('named-event');"
112 "var cb1 = function() {};" 113 "var cb1 = function() {};"
113 "var cb2 = function() {};" 114 "var cb2 = function() {};"
114 "myEvent.addListener(cb1);" 115 "myEvent.addListener(cb1);"
115 "myEvent.addListener(cb2);" 116 "myEvent.addListener(cb2);"
116 "chromeHidden.dispatchOnUnload();" 117 "require('unload_event').dispatch();"
117 "assert.AssertFalse(!!eventBindings.attachedListeners['named-event']);"); 118 "assert.AssertFalse(!!eventBindings.attachedListeners['named-event']);");
118 module_system_->Require("test"); 119 module_system_->Require("test");
119 } 120 }
120 121
121 TEST_F(EventUnittest, OnUnloadDetachesAllListenersEvenDupes) { 122 TEST_F(EventUnittest, OnUnloadDetachesAllListenersEvenDupes) {
122 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); 123 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get());
123 RegisterModule("test", 124 RegisterModule("test",
124 "var assert = requireNative('assert');" 125 "var assert = requireNative('assert');"
125 "require('event');" 126 "require('event');"
126 "var Event = requireNative('chrome').GetChrome().Event;" 127 "var Event = requireNative('chrome').GetChrome().Event;"
127 "var eventBindings = requireNative('event_bindings');" 128 "var eventBindings = requireNative('event_bindings');"
128 "var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();" 129 "var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();"
129 "var myEvent = new Event('named-event');" 130 "var myEvent = new Event('named-event');"
130 "var cb1 = function() {};" 131 "var cb1 = function() {};"
131 "myEvent.addListener(cb1);" 132 "myEvent.addListener(cb1);"
132 "myEvent.addListener(cb1);" 133 "myEvent.addListener(cb1);"
133 "chromeHidden.dispatchOnUnload();" 134 "require('unload_event').dispatch();"
134 "assert.AssertFalse(!!eventBindings.attachedListeners['named-event']);"); 135 "assert.AssertFalse(!!eventBindings.attachedListeners['named-event']);");
135 module_system_->Require("test"); 136 module_system_->Require("test");
136 } 137 }
137 138
138 TEST_F(EventUnittest, EventsThatSupportRulesMustHaveAName) { 139 TEST_F(EventUnittest, EventsThatSupportRulesMustHaveAName) {
139 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); 140 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get());
140 RegisterModule("test", 141 RegisterModule("test",
141 "require('event');" 142 "require('event');"
142 "var Event = requireNative('chrome').GetChrome().Event;" 143 "var Event = requireNative('chrome').GetChrome().Event;"
143 "var eventOpts = {supportsRules: true};" 144 "var eventOpts = {supportsRules: true};"
144 "var assert = requireNative('assert');" 145 "var assert = requireNative('assert');"
145 "var caught = false;" 146 "var caught = false;"
146 "try {" 147 "try {"
147 " var myEvent = new Event(undefined, undefined, eventOpts);" 148 " var myEvent = new Event(undefined, undefined, eventOpts);"
148 "} catch (e) {" 149 "} catch (e) {"
149 " caught = true;" 150 " caught = true;"
150 "}" 151 "}"
151 "assert.AssertTrue(caught);"); 152 "assert.AssertTrue(caught);");
152 module_system_->Require("test"); 153 module_system_->Require("test");
153 } 154 }
154 155
155 TEST_F(EventUnittest, NamedEventDispatch) { 156 TEST_F(EventUnittest, NamedEventDispatch) {
156 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); 157 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get());
157 RegisterModule("test", 158 RegisterModule("test",
158 "require('event');" 159 "var event = require('event');"
159 "var Event = requireNative('chrome').GetChrome().Event;" 160 "var Event = requireNative('chrome').GetChrome().Event;"
160 "var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();" 161 "var chromeHidden = requireNative('chrome_hidden').GetChromeHidden();"
161 "var assert = requireNative('assert');" 162 "var assert = requireNative('assert');"
162 "var e = new Event('myevent');" 163 "var e = new Event('myevent');"
163 "var called = false;" 164 "var called = false;"
164 "e.addListener(function() { called = true; });" 165 "e.addListener(function() { called = true; });"
165 "chromeHidden.Event.dispatchEvent('myevent', []);" 166 "event.dispatchEvent('myevent', []);"
166 "assert.AssertTrue(called);"); 167 "assert.AssertTrue(called);");
167 module_system_->Require("test"); 168 module_system_->Require("test");
168 } 169 }
169 170
170 TEST_F(EventUnittest, AddListenerWithFiltersThrowsErrorByDefault) { 171 TEST_F(EventUnittest, AddListenerWithFiltersThrowsErrorByDefault) {
171 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); 172 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get());
172 RegisterModule("test", 173 RegisterModule("test",
173 "require('event');" 174 "require('event');"
174 "var Event = requireNative('chrome').GetChrome().Event;" 175 "var Event = requireNative('chrome').GetChrome().Event;"
175 "var assert = requireNative('assert');" 176 "var assert = requireNative('assert');"
(...skipping 109 matching lines...) Expand 10 before | Expand all | Expand 10 after
285 " e.addListener(cb);" 286 " e.addListener(cb);"
286 "} catch (e) {" 287 "} catch (e) {"
287 " caught = true;" 288 " caught = true;"
288 "}" 289 "}"
289 "assert.AssertTrue(caught);"); 290 "assert.AssertTrue(caught);");
290 module_system_->Require("test"); 291 module_system_->Require("test");
291 } 292 }
292 293
293 } // namespace 294 } // namespace
294 } // namespace extensions 295 } // namespace extensions
OLDNEW
« no previous file with comments | « chrome/renderer/extensions/dispatcher.cc ('k') | chrome/renderer/extensions/extension_helper.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698