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 9d7cc671acce0abb987728717c7f0cf903523905..e7111fa97cdc885ad8d315f5a39f6d388c1d77ca 100644 |
| --- a/chrome/browser/instant/instant_browsertest.cc |
| +++ b/chrome/browser/instant/instant_browsertest.cc |
| @@ -59,6 +59,7 @@ |
| #define MAYBE_DontCrashOnBlockedJS DISABLED_DontCrashOnBlockedJS |
| #define MAYBE_DontPersistSearchbox DISABLED_DontPersistSearchbox |
| #define MAYBE_PreloadsInstant DISABLED_PreloadsInstant |
| +#define MAYBE_PageVisibilityTest DISABLED_PageVisibilityTest |
| #define MAYBE_ExperimentEnabled DISABLED_ExperimentEnabled |
| #else |
| #define MAYBE_OnChangeEvent OnChangeEvent |
| @@ -80,6 +81,7 @@ |
| #define MAYBE_DontCrashOnBlockedJS DontCrashOnBlockedJS |
| #define MAYBE_DontPersistSearchbox DontPersistSearchbox |
| #define MAYBE_PreloadsInstant PreloadsInstant |
| +#define MAYBE_PageVisibilityTest PageVisibilityTest |
| #define MAYBE_ExperimentEnabled ExperimentEnabled |
| #endif |
| @@ -255,6 +257,14 @@ class InstantTest : public InProcessBrowserTest { |
| return browser()->instant()->GetPreviewContents() != NULL; |
| } |
| + bool IsTabContentsPageVisibiltyVisible(TabContents* tab_contents) { |
|
sreeram
2011/10/25 23:26:48
Typo in "Visibilty". In any case, I'd recommend gi
Shishir
2011/10/25 23:46:26
Done.
|
| + std::string visibility; |
| + if (!GetStringFromJavascript(tab_contents, "document.webkitVisibilityState", |
| + &visibility)) |
| + return false; |
| + return visibility == "visible"; |
| + } |
| + |
| // Returns the state of the search box as a string. This consists of the |
| // following: |
| // window.chrome.sv |
| @@ -888,6 +898,7 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE_PreloadsInstant) { |
| // Instant should have a preview, but not display it. |
| EXPECT_TRUE(HasPreview()); |
| EXPECT_FALSE(browser()->instant()->is_displayable()); |
| + EXPECT_FALSE(IsTabContentsPageVisibiltyVisible(tab_contents->tab_contents())); |
| // Adding a new tab shouldn't delete (or recreate) the TabContentsWrapper. |
| AddBlankTabAndShow(browser()); |
| @@ -903,6 +914,50 @@ IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE_PreloadsInstant) { |
| EXPECT_TRUE(browser()->instant()->IsCurrent()); |
| } |
| +// Tests that the instant search page's visibility is set correctly. |
| +IN_PROC_BROWSER_TEST_F(InstantTest, MAYBE_PageVisibilityTest) { |
| + ASSERT_TRUE(test_server()->Start()); |
| + EnableInstant(); |
| + ASSERT_NO_FATAL_FAILURE(SetupInstantProvider("search.html")); |
| + |
| + // Initially navigate to the empty page which should be visible. |
| + ASSERT_NO_FATAL_FAILURE(FindLocationBar()); |
| + location_bar_->location_entry()->SetUserText(ASCIIToUTF16( |
| + test_server()->GetURL("files/instant/empty.html").spec())); |
| + TabContents* initial_contents = browser()->GetSelectedTabContents(); |
| + TestNavigationObserver observer(content::Source<NavigationController>( |
| + &initial_contents->controller()), NULL, 1); |
| + SendKey(ui::VKEY_RETURN); |
| + observer.WaitForObservation(); |
|
sreeram
2011/10/25 23:26:48
This seems like a lot of trouble. Why not this?
A
Shishir
2011/10/25 23:46:26
Done.
|
| + EXPECT_TRUE(IsTabContentsPageVisibiltyVisible(initial_contents)); |
| + |
| + // Type something for instant to trigger and wait for preview to navigate. |
| + location_bar_->FocusLocation(false); |
| + SetupLocationBar(); |
| + SetupPreview(); |
| + SetLocationBarText("def"); |
| + TabContents* preview_contents = |
| + browser()->instant()->GetPreviewContents()->tab_contents(); |
| + EXPECT_TRUE(IsTabContentsPageVisibiltyVisible(preview_contents)); |
| + EXPECT_FALSE(IsTabContentsPageVisibiltyVisible(initial_contents)); |
| + |
| + // Delete the user text we should show the previous page. |
| + location_bar_->location_entry()->SetUserText(UTF8ToUTF16("")); |
| + EXPECT_FALSE(IsTabContentsPageVisibiltyVisible(preview_contents)); |
| + EXPECT_TRUE(IsTabContentsPageVisibiltyVisible(initial_contents)); |
| + |
| + // Set the user text back and we should see the preview again. |
| + location_bar_->location_entry()->SetUserText(UTF8ToUTF16("def")); |
| + EXPECT_TRUE(IsTabContentsPageVisibiltyVisible(preview_contents)); |
|
sreeram
2011/10/25 23:26:48
Just FYI: At first glance, I wouldn't have expecte
Shishir
2011/10/25 23:46:26
Do you suggest something else here to increase rob
sreeram
2011/10/26 04:29:52
I would normally have said to put in a call to Wai
|
| + EXPECT_FALSE(IsTabContentsPageVisibiltyVisible(initial_contents)); |
| + |
| + // Commit the preview. |
| + SendKey(ui::VKEY_RETURN); |
| + EXPECT_EQ(preview_contents, browser()->GetSelectedTabContents()); |
| + EXPECT_TRUE(IsTabContentsPageVisibiltyVisible(preview_contents)); |
| +} |
| + |
| + |
| // Tests the INSTANT experiment of the field trial. |
| class InstantFieldTrialInstantTest : public InstantTest { |
| public: |