Chromium Code Reviews| Index: chrome/browser/instant/instant_browsertest.cc |
| diff --git a/chrome/browser/instant/instant_browsertest.cc b/chrome/browser/instant/instant_browsertest.cc |
| index 1c210afd3a9e469918418c15c1176d6cdcfb6b5b..2d6fafdec0a4180072d4729071b84846b93487d8 100644 |
| --- a/chrome/browser/instant/instant_browsertest.cc |
| +++ b/chrome/browser/instant/instant_browsertest.cc |
| @@ -237,11 +237,14 @@ IN_PROC_BROWSER_TEST_F(InstantTest, OnSubmitEvent) { |
| // Commit the search by pressing Enter. |
| browser()->window()->GetLocationBar()->AcceptInput(); |
| - // After the commit, Instant should not be showing, or even have a preview. |
| - EXPECT_FALSE(instant()->GetPreviewContents()); |
| + // After the commit, Instant should not be showing. |
| EXPECT_FALSE(instant()->IsCurrent()); |
| EXPECT_FALSE(instant()->is_showing()); |
| + // The old loader is deleted and a new one is created. |
| + EXPECT_TRUE(instant()->GetPreviewContents()); |
| + EXPECT_NE(instant()->GetPreviewContents(), preview_tab); |
| + |
| // Check that the current active tab is indeed what was once the preview. |
| EXPECT_EQ(preview_tab, chrome::GetActiveTabContents(browser())); |
| @@ -295,11 +298,14 @@ IN_PROC_BROWSER_TEST_F(InstantTest, OnCancelEvent) { |
| EXPECT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser())); |
| ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER); |
| - // After the commit, Instant should not be showing, or even have a preview. |
| - EXPECT_FALSE(instant()->GetPreviewContents()); |
| + // After the commit, Instant should not be showing. |
| EXPECT_FALSE(instant()->IsCurrent()); |
| EXPECT_FALSE(instant()->is_showing()); |
| + // The old loader is deleted and a new one is created. |
| + EXPECT_TRUE(instant()->GetPreviewContents()); |
| + EXPECT_NE(instant()->GetPreviewContents(), preview_tab); |
| + |
| // Check that the current active tab is indeed what was once the preview. |
| EXPECT_EQ(preview_tab, chrome::GetActiveTabContents(browser())); |
| @@ -825,3 +831,34 @@ IN_PROC_BROWSER_TEST_F(InstantTest, NewWindowDismissesInstant) { |
| EXPECT_FALSE(instant()->is_showing()); |
| } |
| #endif |
| + |
| +// Tests that: |
| +// - Instant loader is recreated on OnStaleLoader call when it is hidden. |
| +// - Instant loader is not recreated on OnStaleLoader call when it is visible. |
| +// - Instant loader will be recreated when omnibox looses focus after the timer |
|
sreeram
2012/08/24 22:30:01
looses -> loses :)
Shishir
2012/08/27 18:05:21
Done.
|
| +// has stopped. |
| +IN_PROC_BROWSER_TEST_F(InstantTest, InstantLoaderRefresh) { |
| + ASSERT_NO_FATAL_FAILURE(SetupInstant("instant.html")); |
| + instant()->OnAutocompleteGotFocus(); |
| + WaitFor(chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED); |
| + |
| + // Instant is not showing, so a refresh should create a new preview contents. |
| + EXPECT_TRUE(instant()->loader()->supports_instant()); |
| + instant()->OnStaleLoader(); |
| + EXPECT_FALSE(instant()->loader()->supports_instant()); |
| + WaitFor(chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED); |
| + |
| + // Show Instant. |
| + SetOmniboxText("query"); |
| + WaitFor(chrome::NOTIFICATION_INSTANT_CONTROLLER_SHOWN); |
| + |
| + // Refresh the loader, the preview contents should remain the same. |
| + instant()->OnStaleLoader(); |
| + EXPECT_TRUE(instant()->is_showing()); |
| + |
| + instant()->stale_loader_timer_.Stop(); |
| + // The refresh should happen once the omnibox loses focus. |
| + EXPECT_TRUE(instant()->loader()->supports_instant()); |
| + instant()->OnAutocompleteLostFocus(NULL); |
| + EXPECT_FALSE(instant()->loader()->supports_instant()); |
| +} |