diff options
-rw-r--r-- | chrome/browser/browser_uitest.cc | 2 | ||||
-rw-r--r-- | chrome/browser/session_restore_uitest.cc | 39 | ||||
-rw-r--r-- | chrome/browser/tab_restore_uitest.cc | 2 | ||||
-rw-r--r-- | chrome/test/automation/automation_proxy_uitest.cc | 2 | ||||
-rw-r--r-- | chrome/test/automation/tab_proxy.cc | 7 | ||||
-rw-r--r-- | chrome/test/automation/tab_proxy.h | 4 |
6 files changed, 40 insertions, 16 deletions
diff --git a/chrome/browser/browser_uitest.cc b/chrome/browser/browser_uitest.cc index 0739179..470d2a5 100644 --- a/chrome/browser/browser_uitest.cc +++ b/chrome/browser/browser_uitest.cc @@ -236,7 +236,7 @@ TEST_F(BrowserTest, DuplicateTab) { browser_proxy.reset(automation()->GetBrowserWindow(1)); tab_proxy.reset(browser_proxy->GetTab(0)); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); // Verify the stack of urls. GURL url; diff --git a/chrome/browser/session_restore_uitest.cc b/chrome/browser/session_restore_uitest.cc index 903bf0d..665ebe1 100644 --- a/chrome/browser/session_restore_uitest.cc +++ b/chrome/browser/session_restore_uitest.cc @@ -100,7 +100,7 @@ class SessionRestoreUITest : public UITest { ASSERT_EQ(0, active_tab_index); scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetActiveTab()); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); ASSERT_TRUE(tab_proxy->GetCurrentURL(url)); } @@ -128,7 +128,7 @@ TEST_F(SessionRestoreUITest, Basic) { window_count == 1); scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); ASSERT_EQ(url2, GetActiveTabURL()); tab_proxy->GoBack(); @@ -151,7 +151,7 @@ TEST_F(SessionRestoreUITest, RestoresForwardAndBackwardNavs) { window_count == 1); scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); ASSERT_TRUE(GetActiveTabURL() == url2); ASSERT_TRUE(tab_proxy->GoForward()); @@ -188,7 +188,7 @@ TEST_F(SessionRestoreUITest, RestoresCrossSiteForwardAndBackwardNavs) { int tab_count; ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count) && tab_count == 1); scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); // Check that back and forward work as expected. GURL url; @@ -237,13 +237,13 @@ TEST_F(SessionRestoreUITest, TwoTabsSecondSelected) { ASSERT_EQ(1, active_tab_index); tab_proxy.reset(browser_proxy->GetActiveTab()); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); ASSERT_TRUE(GetActiveTabURL() == url2); ASSERT_TRUE(browser_proxy->ActivateTab(0)); tab_proxy.reset(browser_proxy->GetActiveTab()); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); ASSERT_TRUE(GetActiveTabURL() == url1); } @@ -316,7 +316,7 @@ TEST_F(SessionRestoreUITest, DISABLED_DontRestoreWhileIncognito) { ASSERT_TRUE(browser_proxy.get()); scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(0)); ASSERT_TRUE(tab_proxy.get()); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); GURL url; ASSERT_TRUE(tab_proxy->GetCurrentURL(&url)); ASSERT_TRUE(url != url1); @@ -403,25 +403,34 @@ TEST_F(SessionRestoreUITest, ShareProcessesOnRestore) { } scoped_ptr<BrowserProxy> browser_proxy(automation()->GetBrowserWindow(0)); + printf("check point\n"); ASSERT_TRUE(browser_proxy.get() != NULL); int tab_count; ASSERT_TRUE(browser_proxy->GetTabCount(&tab_count)); + printf("check point\n"); // Create two new tabs. int new_tab_count; ASSERT_TRUE(browser_proxy->ApplyAccelerator(IDC_NEWTAB)); + printf("check point\n"); ASSERT_TRUE(browser_proxy->WaitForTabCountToChange(tab_count, &new_tab_count, kWaitForActionMsec)); + printf("check point\n"); scoped_ptr<TabProxy> last_tab(browser_proxy->GetTab(new_tab_count - 1)); ASSERT_TRUE(last_tab.get() != NULL); // Do a reload to ensure new tab page has loaded. + printf("check point\n"); ASSERT_TRUE(last_tab->Reload()); tab_count = new_tab_count; + printf("check point\n"); ASSERT_TRUE(browser_proxy->ApplyAccelerator(IDC_NEWTAB)); + printf("check point\n"); ASSERT_TRUE(browser_proxy->WaitForTabCountToChange(tab_count, &new_tab_count, kWaitForActionMsec)); + printf("check point\n"); last_tab.reset(browser_proxy->GetTab(new_tab_count - 1)); ASSERT_TRUE(last_tab.get() != NULL); + printf("check point\n"); // Do a reload to ensure new tab page has loaded. ASSERT_TRUE(last_tab->Reload()); int expected_process_count = GetBrowserProcessCount(); @@ -429,22 +438,34 @@ TEST_F(SessionRestoreUITest, ShareProcessesOnRestore) { // Restart. browser_proxy.reset(); last_tab.reset(); + printf("check point\n"); QuitBrowserAndRestore(); + printf("check point\n"); // Wait for each tab to finish being restored, then make sure the process // count matches. browser_proxy.reset(automation()->GetBrowserWindow(0)); + printf("check point\n"); ASSERT_TRUE(browser_proxy.get() != NULL); int restored_tab_count; + printf("check point\n"); ASSERT_TRUE(browser_proxy->GetTabCount(&restored_tab_count)); + printf("check point\n"); ASSERT_EQ(new_tab_count, restored_tab_count); + printf("check point\n"); scoped_ptr<TabProxy> tab_proxy(browser_proxy->GetTab(restored_tab_count - 2)); + printf("check point\n"); ASSERT_TRUE(tab_proxy.get() != NULL); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + printf("check point\n"); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); + printf("check point\n"); tab_proxy.reset(browser_proxy->GetTab(restored_tab_count - 1)); + printf("check point\n"); ASSERT_TRUE(tab_proxy.get() != NULL); - ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored()); + printf("check point\n"); + ASSERT_TRUE(tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); + printf("check point\n"); ASSERT_EQ(expected_process_count, GetBrowserProcessCount()); } diff --git a/chrome/browser/tab_restore_uitest.cc b/chrome/browser/tab_restore_uitest.cc index 811b6d2..16fef52 100644 --- a/chrome/browser/tab_restore_uitest.cc +++ b/chrome/browser/tab_restore_uitest.cc @@ -73,7 +73,7 @@ class TabRestoreUITest : public UITest { // Wait for the restored tab to finish loading. scoped_ptr<TabProxy> restored_tab_proxy( browser_proxy->GetTab(restored_tab_count - 1)); - ASSERT_TRUE(restored_tab_proxy->WaitForTabToBeRestored()); + ASSERT_TRUE(restored_tab_proxy->WaitForTabToBeRestored(kWaitForActionMsec)); } GURL url1_; diff --git a/chrome/test/automation/automation_proxy_uitest.cc b/chrome/test/automation/automation_proxy_uitest.cc index 74a2eef..c1bd5b8 100644 --- a/chrome/test/automation/automation_proxy_uitest.cc +++ b/chrome/test/automation/automation_proxy_uitest.cc @@ -800,7 +800,7 @@ TEST_F(AutomationProxyTest, AutocompleteParallelProxy) scoped_ptr<AutocompleteEditProxy> edit2( automation()->GetAutocompleteEditForBrowser(browser2.get())); ASSERT_TRUE(edit2.get()); - EXPECT_TRUE(browser2->GetTab(0)->WaitForTabToBeRestored()); + EXPECT_TRUE(browser2->GetTab(0)->WaitForTabToBeRestored(kWaitForActionMsec)); const std::wstring text_to_set1 = L"Lollerskates"; const std::wstring text_to_set2 = L"Roflcopter"; std::wstring actual_text1, actual_text2; diff --git a/chrome/test/automation/tab_proxy.cc b/chrome/test/automation/tab_proxy.cc index 2cca9a4..c359f34 100644 --- a/chrome/test/automation/tab_proxy.cc +++ b/chrome/test/automation/tab_proxy.cc @@ -797,13 +797,14 @@ bool TabProxy::ProcessUnhandledAccelerator(const MSG& msg) { // This message expects no response } -bool TabProxy::WaitForTabToBeRestored() { +bool TabProxy::WaitForTabToBeRestored(uint32 timeout_ms) { if (!is_valid()) return false; IPC::Message* response = NULL; - return sender_->SendAndWaitForResponse( + bool is_timeout; + return sender_->SendAndWaitForResponseWithTimeout( new AutomationMsg_WaitForTabToBeRestored(0, handle_), &response, - AutomationMsg_TabFinishedRestoring::ID); + AutomationMsg_TabFinishedRestoring::ID, timeout_ms, &is_timeout); } bool TabProxy::GetSecurityState(SecurityStyle* security_style, diff --git a/chrome/test/automation/tab_proxy.h b/chrome/test/automation/tab_proxy.h index baa5a0f..6c2e660 100644 --- a/chrome/test/automation/tab_proxy.h +++ b/chrome/test/automation/tab_proxy.h @@ -237,7 +237,9 @@ class TabProxy : public AutomationResourceProxy { // to handle the keys bool ProcessUnhandledAccelerator(const MSG& msg); - bool WaitForTabToBeRestored(); + // Waits for the tab to finish being restored. Returns true on success. + // timeout_ms gives the max amount of time to wait for restore to complete. + bool WaitForTabToBeRestored(uint32 timeout_ms); // Retrieves the different security states for the current tab. bool GetSecurityState(SecurityStyle* security_style, |