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

Unified Diff: chrome/renderer/extensions/event_unittest.cc

Issue 375243002: Move ModuleSystemTest and the tests that use it into extensions/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: namespace extensions Created 6 years, 5 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 side-by-side diff with in-line comments
Download patch
Index: chrome/renderer/extensions/event_unittest.cc
diff --git a/chrome/renderer/extensions/event_unittest.cc b/chrome/renderer/extensions/event_unittest.cc
deleted file mode 100644
index cd491acc50d062268b0000a6099c2569c9e2cbd8..0000000000000000000000000000000000000000
--- a/chrome/renderer/extensions/event_unittest.cc
+++ /dev/null
@@ -1,294 +0,0 @@
-// Copyright (c) 2012 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.
-
-#include "chrome/test/base/module_system_test.h"
-
-#include "extensions/common/extension_urls.h"
-#include "grit/extensions_renderer_resources.h"
-
-namespace extensions {
-namespace {
-
-class EventUnittest : public ModuleSystemTest {
- virtual void SetUp() OVERRIDE {
- ModuleSystemTest::SetUp();
-
- env()->RegisterModule(kEventBindings, IDR_EVENT_BINDINGS_JS);
- env()->RegisterModule("json_schema", IDR_JSON_SCHEMA_JS);
- env()->RegisterModule(kSchemaUtils, IDR_SCHEMA_UTILS_JS);
- env()->RegisterModule("uncaught_exception_handler",
- IDR_UNCAUGHT_EXCEPTION_HANDLER_JS);
- env()->RegisterModule("unload_event", IDR_UNLOAD_EVENT_JS);
- env()->RegisterModule("utils", IDR_UTILS_JS);
-
- // Mock out the native handler for event_bindings. These mocks will fail if
- // any invariants maintained by the real event_bindings are broken.
- env()->OverrideNativeHandler(
- "event_natives",
- "var assert = requireNative('assert');"
- "var attachedListeners = exports.attachedListeners = {};"
- "var attachedFilteredListeners = "
- " exports.attachedFilteredListeners = {};"
- "var nextId = 0;"
- "var idToName = {};"
- "exports.AttachEvent = function(eventName) {"
- " assert.AssertFalse(!!attachedListeners[eventName]);"
- " attachedListeners[eventName] = 1;"
- "};"
- "exports.DetachEvent = function(eventName) {"
- " assert.AssertTrue(!!attachedListeners[eventName]);"
- " delete attachedListeners[eventName];"
- "};"
- "exports.IsEventAttached = function(eventName) {"
- " return !!attachedListeners[eventName];"
- "};"
- "exports.AttachFilteredEvent = function(name, filters) {"
- " var id = nextId++;"
- " idToName[id] = name;"
- " attachedFilteredListeners[name] ="
- " attachedFilteredListeners[name] || [];"
- " attachedFilteredListeners[name][id] = filters;"
- " return id;"
- "};"
- "exports.DetachFilteredEvent = function(id, manual) {"
- " var i = attachedFilteredListeners[idToName[id]].indexOf(id);"
- " attachedFilteredListeners[idToName[id]].splice(i, 1);"
- "};"
- "exports.HasFilteredListener = function(name) {"
- " return attachedFilteredListeners[name].length;"
- "};");
- env()->OverrideNativeHandler("sendRequest",
- "exports.sendRequest = function() {};");
- env()->OverrideNativeHandler(
- "apiDefinitions",
- "exports.GetExtensionAPIDefinitionsForTest = function() {};");
- env()->OverrideNativeHandler("logging", "exports.DCHECK = function() {};");
- env()->OverrideNativeHandler("schema_registry",
- "exports.GetSchema = function() {};");
- }
-};
-
-TEST_F(EventUnittest, TestNothing) {
- ExpectNoAssertionsMade();
-}
-
-TEST_F(EventUnittest, AddRemoveTwoListeners) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var assert = requireNative('assert');"
- "var Event = require('event_bindings').Event;"
- "var eventNatives = requireNative('event_natives');"
- "var myEvent = new Event('named-event');"
- "var cb1 = function() {};"
- "var cb2 = function() {};"
- "myEvent.addListener(cb1);"
- "myEvent.addListener(cb2);"
- "myEvent.removeListener(cb1);"
- "assert.AssertTrue(!!eventNatives.attachedListeners['named-event']);"
- "myEvent.removeListener(cb2);"
- "assert.AssertFalse(!!eventNatives.attachedListeners['named-event']);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, OnUnloadDetachesAllListeners) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var assert = requireNative('assert');"
- "var Event = require('event_bindings').Event;"
- "var eventNatives = requireNative('event_natives');"
- "var myEvent = new Event('named-event');"
- "var cb1 = function() {};"
- "var cb2 = function() {};"
- "myEvent.addListener(cb1);"
- "myEvent.addListener(cb2);"
- "require('unload_event').dispatch();"
- "assert.AssertFalse(!!eventNatives.attachedListeners['named-event']);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, OnUnloadDetachesAllListenersEvenDupes) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var assert = requireNative('assert');"
- "var Event = require('event_bindings').Event;"
- "var eventNatives = requireNative('event_natives');"
- "var myEvent = new Event('named-event');"
- "var cb1 = function() {};"
- "myEvent.addListener(cb1);"
- "myEvent.addListener(cb1);"
- "require('unload_event').dispatch();"
- "assert.AssertFalse(!!eventNatives.attachedListeners['named-event']);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, EventsThatSupportRulesMustHaveAName) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var eventOpts = {supportsRules: true};"
- "var assert = requireNative('assert');"
- "var caught = false;"
- "try {"
- " var myEvent = new Event(undefined, undefined, eventOpts);"
- "} catch (e) {"
- " caught = true;"
- "}"
- "assert.AssertTrue(caught);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, NamedEventDispatch) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var dispatchEvent = require('event_bindings').dispatchEvent;"
- "var assert = requireNative('assert');"
- "var e = new Event('myevent');"
- "var called = false;"
- "e.addListener(function() { called = true; });"
- "dispatchEvent('myevent', []);"
- "assert.AssertTrue(called);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, AddListenerWithFiltersThrowsErrorByDefault) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule("test",
- "var Event = require('event_bindings').Event;"
- "var assert = requireNative('assert');"
- "var e = new Event('myevent');"
- "var filter = [{"
- " url: {hostSuffix: 'google.com'},"
- "}];"
- "var caught = false;"
- "try {"
- " e.addListener(function() {}, filter);"
- "} catch (e) {"
- " caught = true;"
- "}"
- "assert.AssertTrue(caught);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, FilteredEventsAttachment) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var assert = requireNative('assert');"
- "var bindings = requireNative('event_natives');"
- "var eventOpts = {supportsListeners: true, supportsFilters: true};"
- "var e = new Event('myevent', undefined, eventOpts);"
- "var cb = function() {};"
- "var filters = {url: [{hostSuffix: 'google.com'}]};"
- "e.addListener(cb, filters);"
- "assert.AssertTrue(bindings.HasFilteredListener('myevent'));"
- "e.removeListener(cb);"
- "assert.AssertFalse(bindings.HasFilteredListener('myevent'));");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, DetachFilteredEvent) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var assert = requireNative('assert');"
- "var bindings = requireNative('event_natives');"
- "var eventOpts = {supportsListeners: true, supportsFilters: true};"
- "var e = new Event('myevent', undefined, eventOpts);"
- "var cb1 = function() {};"
- "var cb2 = function() {};"
- "var filters = {url: [{hostSuffix: 'google.com'}]};"
- "e.addListener(cb1, filters);"
- "e.addListener(cb2, filters);"
- "privates(e).impl.detach_();"
- "assert.AssertFalse(bindings.HasFilteredListener('myevent'));");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, AttachAndRemoveSameFilteredEventListener) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var assert = requireNative('assert');"
- "var bindings = requireNative('event_natives');"
- "var eventOpts = {supportsListeners: true, supportsFilters: true};"
- "var e = new Event('myevent', undefined, eventOpts);"
- "var cb = function() {};"
- "var filters = {url: [{hostSuffix: 'google.com'}]};"
- "e.addListener(cb, filters);"
- "e.addListener(cb, filters);"
- "assert.AssertTrue(bindings.HasFilteredListener('myevent'));"
- "e.removeListener(cb);"
- "assert.AssertTrue(bindings.HasFilteredListener('myevent'));"
- "e.removeListener(cb);"
- "assert.AssertFalse(bindings.HasFilteredListener('myevent'));");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, AddingFilterWithUrlFieldNotAListThrowsException) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var assert = requireNative('assert');"
- "var eventOpts = {supportsListeners: true, supportsFilters: true};"
- "var e = new Event('myevent', undefined, eventOpts);"
- "var cb = function() {};"
- "var filters = {url: {hostSuffix: 'google.com'}};"
- "var caught = false;"
- "try {"
- " e.addListener(cb, filters);"
- "} catch (e) {"
- " caught = true;"
- "}"
- "assert.AssertTrue(caught);");
- env()->module_system()->Require("test");
-}
-
-TEST_F(EventUnittest, MaxListeners) {
- ModuleSystem::NativesEnabledScope natives_enabled_scope(
- env()->module_system());
- env()->RegisterModule(
- "test",
- "var Event = require('event_bindings').Event;"
- "var assert = requireNative('assert');"
- "var eventOpts = {supportsListeners: true, maxListeners: 1};"
- "var e = new 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);");
- env()->module_system()->Require("test");
-}
-
-} // namespace
-} // namespace extensions

Powered by Google App Engine
This is Rietveld 408576698