diff options
Diffstat (limited to 'chrome/app')
-rw-r--r-- | chrome/app/chrome_main_uitest.cc | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/chrome/app/chrome_main_uitest.cc b/chrome/app/chrome_main_uitest.cc index 6f115d6..603da88 100644 --- a/chrome/app/chrome_main_uitest.cc +++ b/chrome/app/chrome_main_uitest.cc @@ -6,6 +6,8 @@ #include "base/command_line.h" #include "base/file_util.h" +#include "chrome/app/chrome_command_ids.h" +#include "chrome/common/chrome_switches.h" #include "net/base/net_util.h" typedef UITest ChromeMainTest; @@ -35,4 +37,65 @@ TEST_F(ChromeMainTest, ReuseBrowserInstanceWhenOpeningFile) { ASSERT_TRUE(automation()->IsURLDisplayed(net::FilePathToFileURL(test_file))); } + +TEST_F(ChromeMainTest, SecondLaunchWithIncognitoUrl) { + include_testing_id_ = false; + int num_normal_windows; + // We should start with one normal window. + ASSERT_TRUE(automation()->GetNormalBrowserWindowCount(&num_normal_windows)); + ASSERT_EQ(1, num_normal_windows); + + // Run with --incognito switch and an URL specified. + FilePath test_file = test_data_directory_.AppendASCII("empty.html"); + CommandLine command_line(CommandLine::NO_PROGRAM); + command_line.AppendSwitch(switches::kIncognito); + command_line.AppendArgPath(test_file); + ASSERT_TRUE(LaunchAnotherBrowserBlockUntilClosed(command_line)); + + // There should be one normal and one incognito window now. + ASSERT_TRUE(automation()->WaitForWindowCountToBecome(2)); + ASSERT_TRUE(automation()->GetNormalBrowserWindowCount(&num_normal_windows)); + ASSERT_EQ(1, num_normal_windows); +} + +TEST_F(ChromeMainTest, SecondLaunchFromIncognitoWithNormalUrl) { + include_testing_id_ = false; + int num_normal_windows; + // We should start with one normal window. + ASSERT_TRUE(automation()->GetNormalBrowserWindowCount(&num_normal_windows)); + ASSERT_EQ(1, num_normal_windows); + + scoped_refptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); + ASSERT_TRUE(browser_proxy.get()); + + // Create an off the record window. + ASSERT_TRUE(browser_proxy->RunCommand(IDC_NEW_INCOGNITO_WINDOW)); + int window_count; + ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count)); + ASSERT_EQ(2, window_count); + ASSERT_TRUE(automation()->GetNormalBrowserWindowCount(&num_normal_windows)); + ASSERT_EQ(1, num_normal_windows); + + // Close the first window. + ASSERT_TRUE(browser_proxy->RunCommand(IDC_CLOSE_WINDOW)); + browser_proxy = NULL; + + // There should only be the incognito window open now. + ASSERT_TRUE(automation()->GetBrowserWindowCount(&window_count)); + ASSERT_EQ(1, window_count); + ASSERT_TRUE(automation()->GetNormalBrowserWindowCount(&num_normal_windows)); + ASSERT_EQ(0, num_normal_windows); + + // Run with just an URL specified, no --incognito switch. + FilePath test_file = test_data_directory_.AppendASCII("empty.html"); + CommandLine command_line(CommandLine::NO_PROGRAM); + command_line.AppendArgPath(test_file); + ASSERT_TRUE(LaunchAnotherBrowserBlockUntilClosed(command_line)); + + // There should be one normal and one incognito window now. + ASSERT_TRUE(automation()->WaitForWindowCountToBecome(2)); + ASSERT_TRUE(automation()->GetNormalBrowserWindowCount(&num_normal_windows)); + ASSERT_EQ(1, num_normal_windows); +} + #endif // !OS_MACOSX |