Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(18)

Unified Diff: chrome/browser/ui/search/instant_extended_interactive_uitest.cc

Issue 14043009: Fall back to local page if online NTP fails to load. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix failing tests Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/ui/search/instant_extended_interactive_uitest.cc
diff --git a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
index 5eee78fa9db8db3ec23ac03030c76569c0028b5e..605e563d1ae2848305fa68b220ed62be5bd8fea1 100644
--- a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
+++ b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc
@@ -29,6 +29,8 @@
#include "chrome/browser/search_engines/template_url_service_factory.h"
#include "chrome/browser/themes/theme_service.h"
#include "chrome/browser/themes/theme_service_factory.h"
+#include "chrome/browser/ui/browser_list.h"
+#include "chrome/browser/ui/browser_tabstrip.h"
#include "chrome/browser/ui/omnibox/omnibox_view.h"
#include "chrome/browser/ui/search/instant_commit_type.h"
#include "chrome/browser/ui/search/instant_ntp.h"
@@ -85,8 +87,8 @@ class InstantExtendedTest : public InProcessBrowserTest,
submit_count_(0) {
}
protected:
- virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
- chrome::EnableInstantExtendedAPIForTesting();
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
+ command_line->AppendSwitch(switches::kEnableInstantExtendedAPI);
ASSERT_TRUE(https_test_server().Start());
GURL instant_url = https_test_server().GetURL(
"files/instant_extended.html?strk=1&");
@@ -153,8 +155,11 @@ class InstantPolicyTest : public ExtensionBrowserTest, public InstantTestBase {
InstantPolicyTest() {}
protected:
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
+ command_line->AppendSwitch(switches::kEnableInstantExtendedAPI);
+ }
+
virtual void SetUpInProcessBrowserTestFixture() OVERRIDE {
- chrome::EnableInstantExtendedAPIForTesting();
ASSERT_TRUE(https_test_server().Start());
GURL instant_url = https_test_server().GetURL(
"files/instant_extended.html?strk=1&");
@@ -734,8 +739,12 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, PreloadedNTPDoesntSupportInstant) {
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
FocusOmniboxAndWaitForInstantOverlayAndNTPSupport();
- // NTP contents should not be preloaded.
- ASSERT_EQ(static_cast<InstantNTP*>(NULL), instant()->ntp());
+ // NTP contents should have fallen back to the local page.
+ ASSERT_TRUE(instant()->ntp_);
samarth 2013/05/03 04:39:17 nit: just write: ASSERT_NE(NULL, instant()->ntp())
David Black 2013/05/03 06:14:44 Done.
+ content::WebContents* ntp_contents = instant()->ntp_->contents();
+ EXPECT_TRUE(ntp_contents);
+ GURL ntp_url = ntp_contents->GetURL();
+ EXPECT_EQ(chrome::kChromeSearchLocalNtpUrl, ntp_url.spec()); //asdf
// Open new tab. Should use local NTP.
ui_test_utils::NavigateToURLWithDisposition(
@@ -1989,9 +1998,13 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OverlayDoesntSupportInstant) {
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser()));
// Focus the omnibox. When the support determination response comes back,
- // Instant will destroy the non-Instant page.
+ // Instant will destroy the non-Instant page and fall back to the local page.
FocusOmniboxAndWaitForInstantOverlayAndNTPSupport();
- EXPECT_EQ(NULL, instant()->GetOverlayContents());
+ ASSERT_TRUE(instant()->overlay_);
samarth 2013/05/03 04:39:17 Same here and elsewhere
David Black 2013/05/03 06:14:44 Done.
+ content::WebContents* overlay_contents = instant()->overlay_->contents();
+ EXPECT_TRUE(overlay_contents);//asdf
+ GURL overlay_url = overlay_contents->GetURL();
+ EXPECT_EQ(chrome::kChromeSearchLocalNtpUrl, overlay_url.spec());
// The local overlay is used on the next Update().
SetOmniboxText("query");
@@ -2003,9 +2016,14 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OverlayDoesntSupportInstant) {
FocusOmnibox();
EXPECT_FALSE(instant()->overlay()->IsLocal());
- // Overlay destroyed again after determining support.
+ // Overlay falls back to local again after determining support.
FocusOmniboxAndWaitForInstantOverlaySupport();
- EXPECT_EQ(NULL, instant()->GetOverlayContents());
+ ASSERT_TRUE(instant()->overlay_);
+ overlay_contents = instant()->overlay_->contents();
+ EXPECT_TRUE(overlay_contents);//asdf
+ overlay_url = overlay_contents->GetURL();
+ EXPECT_EQ(chrome::kChromeSearchLocalNtpUrl, overlay_url.spec());
+
}
// Test that if Instant alters the input from URL to search, it's respected.
@@ -2049,3 +2067,61 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, InputChangedFromSearchToURL) {
// Confirm that the Instant overlay was NOT committed.
EXPECT_NE(overlay, browser()->tab_strip_model()->GetActiveWebContents());
}
+
+class InstantExtendedOnlineTest : public InProcessBrowserTest,
samarth 2013/05/03 04:39:17 nit: how about InstantExtendedFirstTabTest or some
David Black 2013/05/03 06:14:44 Done.
+ public InstantTestBase {
+ public:
+ InstantExtendedOnlineTest() {}
+ protected:
+ virtual void SetUpCommandLine(CommandLine* command_line) OVERRIDE {
+ command_line->AppendSwitch(switches::kEnableInstantExtendedAPI);
+ command_line->AppendSwitch(switches::kEnableLocalFirstLoadNTP);
+ }
+};
+
+IN_PROC_BROWSER_TEST_F(
+ InstantExtendedOnlineTest, RedirectToLocalOnLoadFailure) {
+ // Create a new window to test the first NTP load.
+ ui_test_utils::NavigateToURLWithDisposition(
+ browser(),
+ GURL(chrome::kChromeUINewTabURL),
+ NEW_WINDOW,
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_BROWSER);
+
+ const BrowserList* native_browser_list = BrowserList::GetInstance(
+ chrome::HOST_DESKTOP_TYPE_NATIVE);
+ ASSERT_EQ(2u, native_browser_list->size());
+ set_browser(native_browser_list->get(1));
+
+ FocusOmniboxAndWaitForInstantOverlayAndNTPSupport();
+
+ // Also make sure our instant_tab_ is loaded.
+ if (!instant()->instant_tab_) {
+ content::WindowedNotificationObserver instant_tab_observer(
+ chrome::NOTIFICATION_INSTANT_TAB_SUPPORT_DETERMINED,
+ content::NotificationService::AllSources());
+ instant_tab_observer.Wait();
+ }
+
+ // NTP contents should be preloaded.
samarth 2013/05/03 04:39:17 So you're relying on the fact that initially we tr
David Black 2013/05/03 06:14:44 Yep. I can't use the normal way of overriding the
sreeram 2013/05/05 08:40:39 I think the right way would be to set the template
+ ASSERT_NE(static_cast<InstantNTP*>(NULL), instant()->ntp());
+ content::WebContents* ntp_contents = instant()->ntp_->contents();
+ EXPECT_TRUE(ntp_contents);
+ GURL ntp_url = ntp_contents->GetURL();
+ EXPECT_EQ(chrome::kChromeSearchLocalGoogleNtpUrl, ntp_url.spec());
+
+ // Overlay contents should be preloaded.
+ ASSERT_NE(static_cast<InstantOverlay*>(NULL), instant()->overlay());
+ content::WebContents* overlay_contents = instant()->overlay_->contents();
+ EXPECT_TRUE(overlay_contents);
+ GURL overlay_url = overlay_contents->GetURL();
+ EXPECT_EQ(chrome::kChromeSearchLocalGoogleNtpUrl, overlay_url.spec());
+
+ // Instant tab contents should be preloaded.
+ ASSERT_NE(static_cast<InstantTab*>(NULL), instant()->instant_tab());
+ content::WebContents* instant_tab_contents =
+ instant()->instant_tab_->contents();
+ EXPECT_TRUE(instant_tab_contents);
+ GURL instant_tab_url = instant_tab_contents->GetURL();
+ EXPECT_EQ(chrome::kChromeSearchLocalGoogleNtpUrl, instant_tab_url.spec());
+}

Powered by Google App Engine
This is Rietveld 408576698