Chromium Code Reviews| Index: chrome/test/automated_ui_tests/automated_ui_test_base.cc |
| =================================================================== |
| --- chrome/test/automated_ui_tests/automated_ui_test_base.cc (revision 14951) |
| +++ chrome/test/automated_ui_tests/automated_ui_test_base.cc (working copy) |
| @@ -25,6 +25,54 @@ |
| set_active_browser(automation()->GetBrowserWindow(0)); |
| } |
| +bool AutomatedUITestBase::CloseActiveTab() { |
| + BrowserProxy* browser = active_browser(); |
| + int tab_count; |
| + bool is_timeout; |
| + browser->GetTabCountWithTimeout(&tab_count, |
| + action_max_timeout_ms(), |
| + &is_timeout); |
| + |
| + if (is_timeout) { |
| + LogInfoMessage("get_tab_count_time_out"); |
|
Finnur
2009/05/01 04:05:49
nit: add a 'd' after time (timed_out)
|
| + return false; |
| + } |
| + |
| + if (tab_count > 1) { |
| + scoped_ptr<TabProxy> tab(GetActiveTab()); |
| + // Wait until tab is closed |
|
Finnur
2009/05/01 04:05:49
nit: End the comment in a period.
|
| + return tab->Close(true); |
| + } else if (tab_count == 1) { |
| + // Synchronously close the window if it is not the last window. |
| + return CloseActiveWindow(); |
| + } else { |
| + LogInfoMessage("invalid_tab_count"); |
| + return false; |
| + } |
| +} |
| + |
| +bool AutomatedUITestBase::CloseActiveWindow() { |
| + int browser_windows_count = 0; |
| + if (!automation()->GetNormalBrowserWindowCount(&browser_windows_count)) |
| + return false; |
| + // Avoid quitting the application by not closing the last window. |
| + if (browser_windows_count < 2) |
| + return false; |
| + bool application_closed; |
| + CloseBrowser(active_browser(), &application_closed); |
| + if (application_closed) { |
| + LogErrorMessage("Application closed unexpectedly."); |
| + return false; |
| + } |
| + BrowserProxy* browser = automation()->FindNormalBrowserWindow(); |
| + if (browser == NULL) { |
| + LogErrorMessage("Can't find browser window."); |
| + return false; |
| + } |
| + set_active_browser(browser); |
| + return true; |
| +} |
| + |
| bool AutomatedUITestBase::DuplicateTab() { |
| return RunCommand(IDC_DUPLICATE_TAB); |
| } |
| @@ -91,3 +139,18 @@ |
| } |
| return true; |
| } |
| + |
| +TabProxy* AutomatedUITestBase::GetActiveTab() { |
| + BrowserProxy* browser = active_browser(); |
| + if (browser == NULL) { |
| + LogErrorMessage("browser_window_not_found"); |
| + return false; |
| + } |
| + |
| + bool did_timeout; |
| + TabProxy* tab = |
| + browser->GetActiveTabWithTimeout(action_max_timeout_ms(), &did_timeout); |
| + if (did_timeout) |
| + return NULL; |
| + return tab; |
| +} |