| Index: chrome/browser/instant/instant_browsertest.cc
|
| diff --git a/chrome/browser/instant/instant_browsertest.cc b/chrome/browser/instant/instant_browsertest.cc
|
| index 5ee9c4f462d1adebdf96b96df15ee86f8507e785..8fa7c25ba4a368b7690814cab402ca728e4c34de 100644
|
| --- a/chrome/browser/instant/instant_browsertest.cc
|
| +++ b/chrome/browser/instant/instant_browsertest.cc
|
| @@ -208,6 +208,14 @@ class InstantTest : public InProcessBrowserTest {
|
| browser()->instant()->loader_.get()->url() : GURL();
|
| }
|
|
|
| + bool LoaderIsReady() const {
|
| + return browser()->instant()->loader_->ready();
|
| + }
|
| +
|
| + const string16& GetUserText() const {
|
| + return browser()->instant()->loader_->user_text();
|
| + }
|
| +
|
| void SendKey(ui::KeyboardCode key) {
|
| ASSERT_TRUE(ui_test_utils::SendKeyPressSync(
|
| browser(), key, false, false, false, false));
|
| @@ -991,6 +999,67 @@ IN_PROC_BROWSER_TEST_F(InstantFieldTrialHiddenTest, MAYBE_ExperimentEnabled) {
|
| TabContentsWrapper* tab_contents = browser()->instant()->GetPreviewContents();
|
| EXPECT_TRUE(tab_contents);
|
|
|
| + // Wait for the underlying loader to finish processing.
|
| + WaitForMessageToBeProcessedByRenderer(tab_contents);
|
| +
|
| + EXPECT_STR_EQ("def", location_bar_->location_entry()->GetText());
|
| + EXPECT_STR_EQ("defghi", GetUserText());
|
| + EXPECT_TRUE(LoaderIsReady());
|
| +
|
| + // Press <Enter> in the omnibox, causing the preview to be committed.
|
| + SendKey(ui::VKEY_RETURN);
|
| +
|
| + // The preview contents should now be the active tab contents.
|
| + EXPECT_FALSE(browser()->instant()->GetPreviewContents());
|
| + EXPECT_FALSE(HasPreview());
|
| + EXPECT_FALSE(browser()->instant()->is_displayable());
|
| + EXPECT_FALSE(browser()->instant()->IsCurrent());
|
| + EXPECT_EQ(tab_contents, browser()->GetSelectedTabContentsWrapper());
|
| +}
|
| +
|
| +// Tests the SILENT experiment of the field trial.
|
| +class InstantFieldTrialSilentTest : public InstantTest {
|
| + public:
|
| + virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
|
| + command_line->AppendSwitchASCII(switches::kInstantFieldTrial,
|
| + switches::kInstantFieldTrialSilent);
|
| + }
|
| +};
|
| +
|
| +// Tests that instant is active, even without calling EnableInstant().
|
| +IN_PROC_BROWSER_TEST_F(InstantFieldTrialSilentTest, MAYBE_ExperimentEnabled) {
|
| + // Check that instant is enabled, despite not setting the preference.
|
| + Profile* profile = browser()->profile();
|
| + EXPECT_FALSE(profile->GetPrefs()->GetBoolean(prefs::kInstantEnabled));
|
| + EXPECT_TRUE(InstantController::IsEnabled(profile));
|
| +
|
| + ASSERT_TRUE(test_server()->Start());
|
| + SetupInstantProvider("search.html");
|
| + ui_test_utils::WindowedNotificationObserver instant_support_observer(
|
| + chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED,
|
| + content::NotificationService::AllSources());
|
| + SetupLocationBar();
|
| + WaitForPreviewToNavigate();
|
| + instant_support_observer.Wait();
|
| +
|
| + // Type into the omnibox, but don't press <Enter> yet.
|
| + location_bar_->location_entry()->SetUserText(UTF8ToUTF16("def"));
|
| +
|
| + // Check that instant is active, but the preview is not showing.
|
| + EXPECT_TRUE(HasPreview());
|
| + EXPECT_FALSE(browser()->instant()->is_displayable());
|
| + EXPECT_FALSE(browser()->instant()->IsCurrent());
|
| +
|
| + TabContentsWrapper* tab_contents = browser()->instant()->GetPreviewContents();
|
| + EXPECT_TRUE(tab_contents);
|
| +
|
| + // Wait for the underlying loader to finish processing.
|
| + WaitForMessageToBeProcessedByRenderer(tab_contents);
|
| +
|
| + EXPECT_STR_EQ("def", location_bar_->location_entry()->GetText());
|
| + EXPECT_STR_EQ("", GetUserText());
|
| + EXPECT_FALSE(LoaderIsReady());
|
| +
|
| // Press <Enter> in the omnibox, causing the preview to be committed.
|
| SendKey(ui::VKEY_RETURN);
|
|
|
| @@ -1002,8 +1071,8 @@ IN_PROC_BROWSER_TEST_F(InstantFieldTrialHiddenTest, MAYBE_ExperimentEnabled) {
|
| EXPECT_EQ(tab_contents, browser()->GetSelectedTabContentsWrapper());
|
| }
|
|
|
| -// Tests the SearchToNonSearch scenario under the HIDDEN field trial.
|
| -IN_PROC_BROWSER_TEST_F(InstantFieldTrialHiddenTest, MAYBE_SearchToNonSearch) {
|
| +// Tests the SearchToNonSearch scenario under the SILENT field trial.
|
| +IN_PROC_BROWSER_TEST_F(InstantFieldTrialSilentTest, MAYBE_SearchToNonSearch) {
|
| ASSERT_TRUE(test_server()->Start());
|
| ui_test_utils::WindowedNotificationObserver instant_support_observer(
|
| chrome::NOTIFICATION_INSTANT_SUPPORT_DETERMINED,
|
|
|