| Index: chrome/browser/instant/instant_extended_browsertest.cc
|
| diff --git a/chrome/browser/instant/instant_extended_browsertest.cc b/chrome/browser/instant/instant_extended_browsertest.cc
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..08f8b4d094579c90ea12e3e047faf8820e4c4b55
|
| --- /dev/null
|
| +++ b/chrome/browser/instant/instant_extended_browsertest.cc
|
| @@ -0,0 +1,82 @@
|
| +// Copyright 2013 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +#include "chrome/browser/instant/instant_loader.h"
|
| +#include "chrome/browser/instant/instant_test_utils.h"
|
| +#include "chrome/browser/ui/search/search.h"
|
| +#include "chrome/test/base/interactive_test_utils.h"
|
| +#include "chrome/test/base/ui_test_utils.h"
|
| +
|
| +class InstantExtendedTest : public InstantTestBase {
|
| + protected:
|
| + virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
|
| + chrome::search::EnableInstantExtendedAPIForTesting();
|
| + ASSERT_TRUE(test_server()->Start());
|
| + instant_url_ = test_server()->GetURL("files/instant_extended.html");
|
| + }
|
| +};
|
| +
|
| +IN_PROC_BROWSER_TEST_F(InstantExtendedTest, ExtendedModeIsOn) {
|
| + ASSERT_NO_FATAL_FAILURE(SetupInstant());
|
| + EXPECT_TRUE(instant()->extended_enabled_);
|
| +}
|
| +
|
| +// Test that Instant is preloaded when the omnibox is focused.
|
| +IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OmniboxFocusLoadsInstant) {
|
| + ASSERT_NO_FATAL_FAILURE(SetupInstant());
|
| +
|
| + // Explicitly unfocus the omnibox.
|
| + EXPECT_TRUE(ui_test_utils::BringBrowserWindowToFront(browser()));
|
| + ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER);
|
| +
|
| + EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_TAB_CONTAINER));
|
| + EXPECT_FALSE(omnibox()->model()->has_focus());
|
| +
|
| + // Delete any existing preview.
|
| + instant()->loader_.reset();
|
| + EXPECT_FALSE(instant()->GetPreviewContents());
|
| +
|
| + // Refocus the omnibox. The InstantController should've preloaded Instant.
|
| + FocusOmniboxAndWaitForInstantSupport();
|
| +
|
| + EXPECT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_TAB_CONTAINER));
|
| + EXPECT_TRUE(omnibox()->model()->has_focus());
|
| +
|
| + content::WebContents* preview_tab = instant()->GetPreviewContents();
|
| + EXPECT_TRUE(preview_tab);
|
| +
|
| + // Check that the page supports Instant, but it isn't showing.
|
| + EXPECT_TRUE(instant()->loader_->supports_instant());
|
| + EXPECT_FALSE(instant()->IsPreviewingSearchResults());
|
| + EXPECT_TRUE(instant()->model()->mode().is_default());
|
| +
|
| + // Adding a new tab shouldn't delete or recreate the preview; otherwise,
|
| + // what's the point of preloading?
|
| + AddBlankTabAndShow(browser());
|
| + EXPECT_EQ(preview_tab, instant()->GetPreviewContents());
|
| +
|
| + // Unfocusing and refocusing the omnibox should also preserve the preview.
|
| + ui_test_utils::ClickOnView(browser(), VIEW_ID_TAB_CONTAINER);
|
| + EXPECT_TRUE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_TAB_CONTAINER));
|
| +
|
| + FocusOmnibox();
|
| + EXPECT_FALSE(ui_test_utils::IsViewFocused(browser(), VIEW_ID_TAB_CONTAINER));
|
| + EXPECT_EQ(preview_tab, instant()->GetPreviewContents());
|
| +}
|
| +
|
| +IN_PROC_BROWSER_TEST_F(InstantExtendedTest, InputShowsOverlay) {
|
| + ASSERT_NO_FATAL_FAILURE(SetupInstant());
|
| +
|
| + // Focus omnibox and confirm overlay isn't shown.
|
| + FocusOmniboxAndWaitForInstantSupport();
|
| + content::WebContents* preview_tab = instant()->GetPreviewContents();
|
| + EXPECT_TRUE(preview_tab);
|
| + EXPECT_FALSE(instant()->IsPreviewingSearchResults());
|
| + EXPECT_TRUE(instant()->model()->mode().is_default());
|
| +
|
| + // Typing in the omnibox should show the overlay.
|
| + SetOmniboxTextAndWaitForInstantToShow("query");
|
| + EXPECT_TRUE(instant()->model()->mode().is_search_suggestions());
|
| + EXPECT_EQ(preview_tab, instant()->GetPreviewContents());
|
| +}
|
|
|