Chromium Code Reviews| Index: chrome/browser/extensions/extension_tabs_test.cc |
| diff --git a/chrome/browser/extensions/extension_tabs_test.cc b/chrome/browser/extensions/extension_tabs_test.cc |
| index 3428abce0d1f2624fa45c286173fe6b1e8e7bb16..c9aad4bad4d35b82de8640c52282e2bec5e6fc13 100644 |
| --- a/chrome/browser/extensions/extension_tabs_test.cc |
| +++ b/chrome/browser/extensions/extension_tabs_test.cc |
| @@ -12,8 +12,10 @@ |
| #include "base/string_util.h" |
| #include "base/values.h" |
| #include "chrome/browser/extensions/extension_function_test_utils.h" |
| -#include "chrome/browser/extensions/extension_tab_util.h" |
| #include "chrome/browser/extensions/extension_tabs_module_constants.h" |
| +#include "chrome/browser/extensions/extension_tab_util.h" |
| +#include "chrome/browser/prefs/incognito_mode_prefs.h" |
| +#include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/browser_window.h" |
| #include "chrome/test/base/in_process_browser_test.h" |
| @@ -126,3 +128,73 @@ IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, UpdateNoPermissions) { |
| browser())); |
| EXPECT_EQ(base::Value::TYPE_NULL, result->GetType()); |
| } |
| + |
| +IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, |
| + DontCreateNormalWindowWhenIncognitoForced) { |
| + static const char kArgsWithoutExplicitIncognitoParam[] = |
| + "[{\"url\": \"about:blank\"}]"; |
| + static const char kArgsWithExplicitIncognitoParam[] = |
| + "[{\"url\": \"about:blank\", \"incognito\": false }]"; |
| + // Force Incognito mode. |
| + IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), |
| + IncognitoModePrefs::FORCED); |
| + // Run without an explicit "incognito" param. |
| + EXPECT_TRUE(MatchPattern( |
| + RunFunctionAndReturnError( |
| + new CreateWindowFunction(), |
| + kArgsWithoutExplicitIncognitoParam, |
|
Aaron Boodman
2011/10/25 08:35:09
In this case, shouldn't we default to incognito? S
rustema
2011/10/26 07:13:41
Makes sense. Done.
|
| + browser()), |
| + extension_tabs_module_constants::kIncognitoModeIsForced)); |
| + |
| + // Run with an explicit "incognito" param. |
| + EXPECT_TRUE(MatchPattern( |
| + RunFunctionAndReturnError( |
| + new CreateWindowFunction(), |
| + kArgsWithExplicitIncognitoParam, |
| + browser()), |
| + extension_tabs_module_constants::kIncognitoModeIsForced)); |
| + |
| + // Now try opening a normal window from incognito window. |
| + Browser* incognito_browser = CreateIncognitoBrowser(); |
| + // Run without an explicit "incognito" param. |
| + EXPECT_TRUE(MatchPattern( |
| + RunFunctionAndReturnError( |
| + new CreateWindowFunction(), |
| + kArgsWithoutExplicitIncognitoParam, |
| + incognito_browser), |
| + extension_tabs_module_constants::kIncognitoModeIsForced)); |
| + |
| + // Run with an explicit "incognito" param. |
| + EXPECT_TRUE(MatchPattern( |
| + RunFunctionAndReturnError( |
| + new CreateWindowFunction(), |
| + kArgsWithExplicitIncognitoParam, |
| + incognito_browser), |
| + extension_tabs_module_constants::kIncognitoModeIsForced)); |
| +} |
| + |
| +IN_PROC_BROWSER_TEST_F(ExtensionTabsTest, |
| + DontCreateIncognitoWindowWhenIncognitoDisabled) { |
| + static const char kArgs[] = |
| + "[{\"url\": \"about:blank\", \"incognito\": true }]"; |
| + |
| + Browser* incognito_browser = CreateIncognitoBrowser(); |
| + // Disable Incognito mode. |
| + IncognitoModePrefs::SetAvailability(browser()->profile()->GetPrefs(), |
| + IncognitoModePrefs::DISABLED); |
| + // Run in normal window. |
| + EXPECT_TRUE(MatchPattern( |
| + RunFunctionAndReturnError( |
| + new CreateWindowFunction(), |
| + kArgs, |
| + browser()), |
| + extension_tabs_module_constants::kIncognitoModeIsDisabled)); |
| + |
| + // Run in incognito window. |
| + EXPECT_TRUE(MatchPattern( |
| + RunFunctionAndReturnError( |
| + new CreateWindowFunction(), |
| + kArgs, |
| + incognito_browser), |
| + extension_tabs_module_constants::kIncognitoModeIsDisabled)); |
| +} |