Index: chrome/browser/extensions/api/managed_mode_private/managed_mode_apitest.cc |
=================================================================== |
--- chrome/browser/extensions/api/managed_mode_private/managed_mode_apitest.cc (revision 0) |
+++ chrome/browser/extensions/api/managed_mode_private/managed_mode_apitest.cc (revision 0) |
@@ -0,0 +1,47 @@ |
+// 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/browser/managed_mode/managed_mode.h" |
+#include "chrome/browser/extensions/extension_apitest.h" |
+#include "chrome/browser/ui/browser.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) { |
+ ASSERT_FALSE(ManagedMode::IsInManagedMode()); |
+ |
+ 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(browser()->profile()); |
+ |
+ // Fire the extension event when leaving managed mode. |
+ ManagedMode::GetInstance()->SetInManagedMode(NULL); |
+ |
+ ASSERT_TRUE(catcher.GetNextResult()) << catcher.message(); |
+} |