| Index: chrome/browser/dom_ui/options_ui_uitest.cc
|
| ===================================================================
|
| --- chrome/browser/dom_ui/options_ui_uitest.cc (revision 0)
|
| +++ chrome/browser/dom_ui/options_ui_uitest.cc (revision 0)
|
| @@ -0,0 +1,103 @@
|
| +// Copyright (c) 2010 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 "base/command_line.h"
|
| +#include "chrome/app/chrome_dll_resource.h"
|
| +#include "chrome/common/chrome_switches.h"
|
| +#include "chrome/common/url_constants.h"
|
| +#include "chrome/test/automation/browser_proxy.h"
|
| +#include "chrome/test/automation/tab_proxy.h"
|
| +#include "chrome/test/automation/window_proxy.h"
|
| +#include "chrome/test/ui/ui_test.h"
|
| +
|
| +namespace {
|
| +
|
| +class OptionsUITest : public UITest {
|
| + public:
|
| + OptionsUITest() {
|
| + dom_automation_enabled_ = true;
|
| + // TODO(csilv): Remove when dom-ui options is enabled by default.
|
| + launch_arguments_.AppendSwitch(switches::kEnableTabbedOptions);
|
| + }
|
| +
|
| + void AssertIsOptionsPage(TabProxy* tab) {
|
| + std::wstring title;
|
| + ASSERT_TRUE(tab->GetTabTitle(&title));
|
| + ASSERT_EQ(L"Chromium Options", title);
|
| + }
|
| +};
|
| +
|
| +TEST_F(OptionsUITest, LoadOptionsByURL) {
|
| + scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
|
| + ASSERT_TRUE(browser.get());
|
| +
|
| + scoped_refptr<TabProxy> tab = browser->GetActiveTab();
|
| + ASSERT_TRUE(tab.get());
|
| +
|
| + // Go to the options tab via URL.
|
| + NavigateToURL(GURL(chrome::kChromeUIOptionsURL));
|
| + AssertIsOptionsPage(tab);
|
| +}
|
| +
|
| +TEST_F(OptionsUITest, CommandOpensOptionsTab) {
|
| + scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
|
| + ASSERT_TRUE(browser.get());
|
| +
|
| + int tab_count = -1;
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(1, tab_count);
|
| +
|
| + // Bring up the options tab via command.
|
| + ASSERT_TRUE(browser->RunCommand(IDC_OPTIONS));
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(2, tab_count);
|
| +
|
| + scoped_refptr<TabProxy> tab = browser->GetActiveTab();
|
| + ASSERT_TRUE(tab.get());
|
| + AssertIsOptionsPage(tab);
|
| +}
|
| +
|
| +TEST_F(OptionsUITest, CommandAgainGoesBackToOptionsTab) {
|
| + scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
|
| + ASSERT_TRUE(browser.get());
|
| +
|
| + int tab_count = -1;
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(1, tab_count);
|
| +
|
| + // Bring up the options tab via command.
|
| + ASSERT_TRUE(browser->RunCommand(IDC_OPTIONS));
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(2, tab_count);
|
| +
|
| + scoped_refptr<TabProxy> tab = browser->GetActiveTab();
|
| + ASSERT_TRUE(tab.get());
|
| + AssertIsOptionsPage(tab);
|
| +
|
| + // Switch to first tab and run command again.
|
| + ASSERT_TRUE(browser->ActivateTab(0));
|
| + ASSERT_TRUE(browser->WaitForTabToBecomeActive(0, action_max_timeout_ms()));
|
| + ASSERT_TRUE(browser->RunCommandAsync(IDC_OPTIONS));
|
| +
|
| + // Ensure the options ui tab is active.
|
| + ASSERT_TRUE(browser->WaitForTabToBecomeActive(1, action_max_timeout_ms()));
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(2, tab_count);
|
| +}
|
| +
|
| +TEST_F(OptionsUITest, TwoCommandsOneTab) {
|
| + scoped_refptr<BrowserProxy> browser(automation()->GetBrowserWindow(0));
|
| + ASSERT_TRUE(browser.get());
|
| +
|
| + int tab_count = -1;
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(1, tab_count);
|
| +
|
| + ASSERT_TRUE(browser->RunCommand(IDC_OPTIONS));
|
| + ASSERT_TRUE(browser->RunCommandAsync(IDC_OPTIONS));
|
| + ASSERT_TRUE(browser->GetTabCount(&tab_count));
|
| + ASSERT_EQ(2, tab_count);
|
| +}
|
| +
|
| +} // namespace
|
|
|
| Property changes on: chrome/browser/dom_ui/options_ui_uitest.cc
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|