diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-04 16:19:10 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-06-04 16:19:10 +0000 |
commit | e0801156e169e1e91a73a6d3aa5dc7b22dae1cb3 (patch) | |
tree | 5c674776366f1de7cd404df5cbe6064bd192eab7 | |
parent | 159f06c0c7d7c88c079c2247860018756efb0725 (diff) | |
download | chromium_src-e0801156e169e1e91a73a6d3aa5dc7b22dae1cb3.zip chromium_src-e0801156e169e1e91a73a6d3aa5dc7b22dae1cb3.tar.gz chromium_src-e0801156e169e1e91a73a6d3aa5dc7b22dae1cb3.tar.bz2 |
Fix extension event name for managedModePrivate.onChange (whoops).
Add an API test for the event.
BUG=120635
TEST=ExtensionApiTest.ManagedModeOnChange
Review URL: https://chromiumcodereview.appspot.com/10447141
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@140298 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/browser/extensions/extension_apitest.h | 3 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_managed_mode_api.cc | 2 | ||||
-rw-r--r-- | chrome/browser/extensions/extension_managed_mode_apitest.cc | 35 | ||||
-rw-r--r-- | chrome/browser/managed_mode.h | 1 | ||||
-rw-r--r-- | chrome/browser_tests.isolate | 6 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/managed_mode/get_enter/manifest.json (renamed from chrome/test/data/extensions/api_test/managedMode/manifest.json) | 0 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/managed_mode/get_enter/test.js (renamed from chrome/test/data/extensions/api_test/managedMode/test.js) | 0 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/managed_mode/on_change/manifest.json | 8 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/managed_mode/on_change/test.html | 7 | ||||
-rw-r--r-- | chrome/test/data/extensions/api_test/managed_mode/on_change/test.js | 30 |
10 files changed, 85 insertions, 7 deletions
diff --git a/chrome/browser/extensions/extension_apitest.h b/chrome/browser/extensions/extension_apitest.h index 9e34373..2be4fd5 100644 --- a/chrome/browser/extensions/extension_apitest.h +++ b/chrome/browser/extensions/extension_apitest.h @@ -126,7 +126,8 @@ class ExtensionApiTest : public ExtensionBrowserTest { bool RunExtensionSubtest(const char* extension_name, const std::string& page_url); - // Same as RunExtensionSubtest, except run with the specific |flags|. + // Same as RunExtensionSubtest, except run with the specific |flags| + // (as defined in the Flags enum). bool RunExtensionSubtest(const char* extension_name, const std::string& page_url, int flags); diff --git a/chrome/browser/extensions/extension_managed_mode_api.cc b/chrome/browser/extensions/extension_managed_mode_api.cc index 44ac940..0e747d5 100644 --- a/chrome/browser/extensions/extension_managed_mode_api.cc +++ b/chrome/browser/extensions/extension_managed_mode_api.cc @@ -23,7 +23,7 @@ namespace { // Event that is fired when we enter or leave managed mode. -const char kChangeEventName[] = "experimental.managedMode.onChange"; +const char kChangeEventName[] = "managedModePrivate.onChange"; // Key to report whether the attempt to enter managed mode succeeded. const char kEnterSuccessKey[] = "success"; diff --git a/chrome/browser/extensions/extension_managed_mode_apitest.cc b/chrome/browser/extensions/extension_managed_mode_apitest.cc index 3085a4f..d8d1c07 100644 --- a/chrome/browser/extensions/extension_managed_mode_apitest.cc +++ b/chrome/browser/extensions/extension_managed_mode_apitest.cc @@ -5,15 +5,42 @@ #include "chrome/browser/managed_mode.h" #include "chrome/browser/extensions/extension_apitest.h" #include "chrome/common/chrome_switches.h" +#include "chrome/common/extensions/extension.h" +#include "chrome/test/base/ui_test_utils.h" // Tests enabling and querying managed mode. IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ManagedModeGetAndEnable) { - CommandLine::ForCurrentProcess()->AppendSwitch( - switches::kEnableExperimentalExtensionApis); - ASSERT_FALSE(ManagedMode::IsInManagedMode()); - ASSERT_TRUE(RunComponentExtensionTest("managedMode")) << message_; + ASSERT_TRUE(RunComponentExtensionTest("managed_mode/get_enter")) << message_; EXPECT_TRUE(ManagedMode::IsInManagedMode()); } + +// Tests the event when entering or leaving managed mode. +IN_PROC_BROWSER_TEST_F(ExtensionApiTest, ManagedModeOnChange) { + ASSERT_FALSE(ManagedMode::IsInManagedMode()); + + // We can't just call RunComponentExtension() like above, because we need to + // fire the event while the page is waiting. + FilePath extension_path = + test_data_dir_.AppendASCII("managed_mode/on_change"); + const extensions::Extension* extension = + LoadExtensionAsComponent(extension_path); + ASSERT_TRUE(extension) << "Failed to load extension."; + + ResultCatcher catcher; + // Tell the test what values for the |onChange| event to expect. + std::string page_url = "test.html?expect=true,false"; + ui_test_utils::NavigateToURL(browser(), + extension->GetResourceURL(page_url)); + + // Fire the extension event when entering managed mode. We directly call + // SetInManagedMode() to bypass any confirmation dialogs etc. + ManagedMode::GetInstance()->SetInManagedMode(true); + + // Fire the extension event when leaving managed mode. + ManagedMode::GetInstance()->SetInManagedMode(false); + + ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); +} diff --git a/chrome/browser/managed_mode.h b/chrome/browser/managed_mode.h index e76936b..d3779ca 100644 --- a/chrome/browser/managed_mode.h +++ b/chrome/browser/managed_mode.h @@ -55,6 +55,7 @@ class ManagedMode : public BrowserList::Observer, private: friend struct DefaultSingletonTraits<ManagedMode>; friend class Singleton<ManagedMode>; + FRIEND_TEST_ALL_PREFIXES(ExtensionApiTest, ManagedModeOnChange); static ManagedMode* GetInstance(); diff --git a/chrome/browser_tests.isolate b/chrome/browser_tests.isolate index b58d52a..e89b7ec 100644 --- a/chrome/browser_tests.isolate +++ b/chrome/browser_tests.isolate @@ -436,7 +436,11 @@ 'test/data/extensions/api_test/i18n/manifest.json', 'test/data/extensions/api_test/idle/manifest.json', 'test/data/extensions/api_test/input/manifest.json', - 'test/data/extensions/api_test/managedMode/manifest.json', + 'test/data/extensions/api_test/managed_mode/get_enter/manifest.json', + 'test/data/extensions/api_test/managed_mode/get_enter/test.js', + 'test/data/extensions/api_test/managed_mode/on_change/manifest.json', + 'test/data/extensions/api_test/managed_mode/on_change/test.html', + 'test/data/extensions/api_test/managed_mode/on_change/test.js', 'test/data/extensions/api_test/messaging/event_url/manifest.json', 'test/data/extensions/api_test/metrics/manifest.json', 'test/data/extensions/api_test/mutation_observers/manifest.json', diff --git a/chrome/test/data/extensions/api_test/managedMode/manifest.json b/chrome/test/data/extensions/api_test/managed_mode/get_enter/manifest.json index d5a8210..d5a8210 100644 --- a/chrome/test/data/extensions/api_test/managedMode/manifest.json +++ b/chrome/test/data/extensions/api_test/managed_mode/get_enter/manifest.json diff --git a/chrome/test/data/extensions/api_test/managedMode/test.js b/chrome/test/data/extensions/api_test/managed_mode/get_enter/test.js index 5f3ef1e..5f3ef1e 100644 --- a/chrome/test/data/extensions/api_test/managedMode/test.js +++ b/chrome/test/data/extensions/api_test/managed_mode/get_enter/test.js diff --git a/chrome/test/data/extensions/api_test/managed_mode/on_change/manifest.json b/chrome/test/data/extensions/api_test/managed_mode/on_change/manifest.json new file mode 100644 index 0000000..d263bf1 --- /dev/null +++ b/chrome/test/data/extensions/api_test/managed_mode/on_change/manifest.json @@ -0,0 +1,8 @@ +{ + "name" : "Managed Mode API Test Extension", + "version" : "0.1", + "manifest_version": 2, + "key": "MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDJ5+2VmV02HP3jkMhxbp2yuyzf4K4JsffgCf8zsPljLVV2A+JXGj0TbvzvDP3RDCKC5qPMprQkoYlKVW2b6H0kQ8dNmZsjxMqEz/ZDx4Z6/VvbMaz8pP+dENs5Io5XlG5Op2nsJF+y+LqbX6qbff9D/s4fTWyqKillpJN+48qs0wIBIw==", + "description" : "Managed Mode API Test Extension", + "permissions": [ "managedModePrivate" ] +} diff --git a/chrome/test/data/extensions/api_test/managed_mode/on_change/test.html b/chrome/test/data/extensions/api_test/managed_mode/on_change/test.html new file mode 100644 index 0000000..0c82e87 --- /dev/null +++ b/chrome/test/data/extensions/api_test/managed_mode/on_change/test.html @@ -0,0 +1,7 @@ +<html> +<head> +<script src="test.js"></script> +</head> +<body> +</body> +</html>
\ No newline at end of file diff --git a/chrome/test/data/extensions/api_test/managed_mode/on_change/test.js b/chrome/test/data/extensions/api_test/managed_mode/on_change/test.js new file mode 100644 index 0000000..6931dbb --- /dev/null +++ b/chrome/test/data/extensions/api_test/managed_mode/on_change/test.js @@ -0,0 +1,30 @@ +// 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. + +// Managed Mode API test +// Run with browser_tests --gtest_filter=ExtensionApiTest.ManagedModeOnChange + +// Listen until |event| has fired with all of the values in |expected| in that +// order. +function listenForSequence(event, expected) { + var done = chrome.test.listenForever(event, function(value) { + chrome.test.assertEq(expected.shift(), value); + if (expected.length == 0) + done(); + }); +} + +var managedMode = chrome.managedModePrivate; + +chrome.test.runTests([ + function testOnChange() { + var match = document.location.search.match(/^\?expect=(.*)$/); + chrome.test.assertTrue(match !== null); + var expected = match[1].split(/,/).map(function(value) { + return {'value': (value === 'true')}; + }); + + listenForSequence(managedMode.onChange, expected); + } +]); |