OLD | NEW |
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 { | 9 namespace { |
10 | 10 |
11 class EventUnittest : public ModuleSystemTest { | 11 class EventUnittest : public ModuleSystemTest { |
12 virtual void SetUp() OVERRIDE { | 12 virtual void SetUp() OVERRIDE { |
13 ModuleSystemTest::SetUp(); | 13 ModuleSystemTest::SetUp(); |
14 module_system_->RunString("chrome = {};", "setup-chrome"); | 14 module_system_->RunString("chrome = {};", "setup-chrome"); |
15 | 15 |
16 RegisterModule("event", IDR_EVENT_BINDINGS_JS); | 16 RegisterModule("event", IDR_EVENT_BINDINGS_JS); |
| 17 RegisterModule("utils", IDR_UTILS_JS); |
17 | 18 |
18 // Mock out the native handler for event_bindings. These mocks will fail if | 19 // Mock out the native handler for event_bindings. These mocks will fail if |
19 // any invariants maintained by the real event_bindings are broken. | 20 // any invariants maintained by the real event_bindings are broken. |
20 OverrideNativeHandler("event_bindings", | 21 OverrideNativeHandler("event_bindings", |
21 "var assert = requireNative('assert');" | 22 "var assert = requireNative('assert');" |
22 "var attachedListeners = exports.attachedListeners = {};" | 23 "var attachedListeners = exports.attachedListeners = {};" |
23 "exports.AttachEvent = function(eventName) {" | 24 "exports.AttachEvent = function(eventName) {" |
24 " assert.AssertFalse(!!attachedListeners[eventName]);" | 25 " assert.AssertFalse(!!attachedListeners[eventName]);" |
25 " attachedListeners[eventName] = 1;" | 26 " attachedListeners[eventName] = 1;" |
26 "};" | 27 "};" |
27 "exports.DetachEvent = function(eventName) {" | 28 "exports.DetachEvent = function(eventName) {" |
28 " assert.AssertTrue(!!attachedListeners[eventName]);" | 29 " assert.AssertTrue(!!attachedListeners[eventName]);" |
29 " delete attachedListeners[eventName];" | 30 " delete attachedListeners[eventName];" |
30 "};"); | 31 "};"); |
31 OverrideNativeHandler("chrome_hidden", | 32 OverrideNativeHandler("chrome_hidden", |
32 "var chromeHidden = {};" | 33 "var chromeHidden = {};" |
33 "exports.GetChromeHidden = function() { return chromeHidden; };"); | 34 "exports.GetChromeHidden = function() { return chromeHidden; };"); |
| 35 OverrideNativeHandler("sendRequest", |
| 36 "exports.sendRequest = function() {};"); |
| 37 OverrideNativeHandler("apiDefinitions", |
| 38 "exports.GetExtensionAPIDefinition = function() {};"); |
34 } | 39 } |
35 }; | 40 }; |
36 | 41 |
37 TEST_F(EventUnittest, TestNothing) { | 42 TEST_F(EventUnittest, TestNothing) { |
38 ExpectNoAssertionsMade(); | 43 ExpectNoAssertionsMade(); |
39 } | 44 } |
40 | 45 |
41 TEST_F(EventUnittest, AddRemoveTwoListeners) { | 46 TEST_F(EventUnittest, AddRemoveTwoListeners) { |
42 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); | 47 ModuleSystem::NativesEnabledScope natives_enabled_scope(module_system_.get()); |
43 RegisterModule("test", | 48 RegisterModule("test", |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 "var assert = requireNative('assert');" | 85 "var assert = requireNative('assert');" |
81 "var e = new event.Event('myevent');" | 86 "var e = new event.Event('myevent');" |
82 "var called = false;" | 87 "var called = false;" |
83 "e.addListener(function() { called = true; });" | 88 "e.addListener(function() { called = true; });" |
84 "chromeHidden.Event.dispatch('myevent', []);" | 89 "chromeHidden.Event.dispatch('myevent', []);" |
85 "assert.AssertTrue(called);"); | 90 "assert.AssertTrue(called);"); |
86 module_system_->Require("test"); | 91 module_system_->Require("test"); |
87 } | 92 } |
88 | 93 |
89 } // namespace | 94 } // namespace |
OLD | NEW |