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 74a916b052dc6df563c3097a2a86c2181eb11553..d4c497daf2990cb53519cdbec1bad411edb9bd57 100644 |
--- a/chrome/browser/ui/search/instant_extended_interactive_uitest.cc |
+++ b/chrome/browser/ui/search/instant_extended_interactive_uitest.cc |
@@ -26,6 +26,7 @@ |
#include "chrome/browser/extensions/extension_browsertest.h" |
#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/favicon/favicon_tab_helper.h" |
+#include "chrome/browser/google/google_url_tracker.h" |
#include "chrome/browser/history/history_db_task.h" |
#include "chrome/browser/history/history_service.h" |
#include "chrome/browser/history/history_service_factory.h" |
@@ -35,6 +36,7 @@ |
#include "chrome/browser/search/instant_service.h" |
#include "chrome/browser/search/instant_service_factory.h" |
#include "chrome/browser/search/search.h" |
+#include "chrome/browser/search/search_test_utils.h" |
#include "chrome/browser/search_engines/template_url_service.h" |
#include "chrome/browser/search_engines/template_url_service_factory.h" |
#include "chrome/browser/task_manager/task_manager.h" |
@@ -62,7 +64,9 @@ |
#include "components/sessions/serialized_navigation_entry.h" |
#include "content/public/browser/navigation_controller.h" |
#include "content/public/browser/navigation_entry.h" |
+#include "content/public/browser/notification_details.h" |
#include "content/public/browser/notification_service.h" |
+#include "content/public/browser/notification_source.h" |
#include "content/public/browser/render_process_host.h" |
#include "content/public/browser/render_view_host.h" |
#include "content/public/browser/site_instance.h" |
@@ -1553,16 +1557,23 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OnDefaultSearchProviderChanged) { |
EXPECT_EQ(1, instant_service->GetInstantProcessCount()); |
// Navigating to the NTP should use the Instant render process. |
- content::WindowedNotificationObserver new_tab_observer( |
- content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
- content::NotificationService::AllSources()); |
ui_test_utils::NavigateToURLWithDisposition( |
browser(), |
- GURL(chrome::kChromeUINewTabURL), |
+ GURL(chrome::kChromeSearchLocalNtpUrl), |
CURRENT_TAB, |
- ui_test_utils::BROWSER_TEST_NONE); |
- new_tab_observer.Wait(); |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ content::WebContents* local_ntp_contents = |
+ browser()->tab_strip_model()->GetActiveWebContents(); |
+ EXPECT_TRUE(chrome::IsInstantNTP(local_ntp_contents)); |
+ EXPECT_TRUE(instant_service->IsInstantProcess( |
+ local_ntp_contents->GetRenderProcessHost()->GetID())); |
+ GURL local_ntp_url = local_ntp_contents->GetURL(); |
+ ui_test_utils::NavigateToURLWithDisposition( |
+ browser(), |
+ GURL(chrome::kChromeUINewTabURL), |
+ NEW_FOREGROUND_TAB, |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
content::WebContents* ntp_contents = |
browser()->tab_strip_model()->GetActiveWebContents(); |
EXPECT_TRUE(chrome::IsInstantNTP(ntp_contents)); |
@@ -1577,27 +1588,27 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OnDefaultSearchProviderChanged) { |
EXPECT_FALSE(instant_service->IsInstantProcess( |
active_tab->GetRenderProcessHost()->GetID())); |
- TemplateURLData data; |
- data.short_name = ASCIIToUTF16("t"); |
- data.SetURL("http://defaultturl/q={searchTerms}"); |
- data.suggestions_url = "http://defaultturl2/q={searchTerms}"; |
- data.instant_url = "http://does/not/exist"; |
- data.alternate_urls.push_back(data.instant_url + "#q={searchTerms}"); |
- data.search_terms_replacement_key = "strk"; |
- |
- TemplateURL* template_url = new TemplateURL(browser()->profile(), data); |
- TemplateURLService* service = |
- TemplateURLServiceFactory::GetForProfile(browser()->profile()); |
- ui_test_utils::WaitForTemplateURLServiceToLoad(service); |
- service->Add(template_url); // Takes ownership of |template_url|. |
- |
- // Change the default search provider. |
- content::WindowedNotificationObserver observer( |
+ content::WindowedNotificationObserver ntp_observer( |
content::NOTIFICATION_LOAD_STOP, |
content::Source<content::NavigationController>( |
&ntp_contents->GetController())); |
- service->SetDefaultSearchProvider(template_url); |
- observer.Wait(); |
+ content::WindowedNotificationObserver local_ntp_observer( |
+ content::NOTIFICATION_LOAD_STOP, |
+ content::Source<content::NavigationController>( |
+ &local_ntp_contents->GetController())); |
+ |
+ // Change the default search provider. |
+ search_test_utils::SetDefaultInstantTemplateUrl(browser()->profile(), false); |
+ |
+ ntp_observer.Wait(); |
+ local_ntp_observer.Wait(); |
+ |
+ // |local_ntp_contents| should use the Instant render process. |
+ EXPECT_TRUE(chrome::IsInstantNTP(local_ntp_contents)); |
+ EXPECT_TRUE(instant_service->IsInstantProcess( |
+ local_ntp_contents->GetRenderProcessHost()->GetID())); |
+ // Make sure the URL remains the same. |
+ EXPECT_EQ(local_ntp_url, local_ntp_contents->GetURL()); |
// |ntp_contents| should not use the Instant render process. |
EXPECT_FALSE(chrome::IsInstantNTP(ntp_contents)); |
@@ -1607,49 +1618,78 @@ IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OnDefaultSearchProviderChanged) { |
EXPECT_EQ(ntp_url, ntp_contents->GetURL()); |
} |
-IN_PROC_BROWSER_TEST_F(InstantExtendedTest, |
- ReloadLocalNTPOnSearchProviderChange) { |
+IN_PROC_BROWSER_TEST_F(InstantExtendedTest, OnGoogleBaseURLChanged) { |
+ InstantService* instant_service = |
+ InstantServiceFactory::GetForProfile(browser()->profile()); |
+ ASSERT_NE(static_cast<InstantService*>(NULL), instant_service); |
+ |
// Setup Instant. |
ASSERT_NO_FATAL_FAILURE(SetupInstant(browser())); |
FocusOmniboxAndWaitForInstantNTPSupport(); |
+ EXPECT_EQ(1, instant_service->GetInstantProcessCount()); |
- // Navigate to Local NTP. |
- content::WindowedNotificationObserver new_tab_observer( |
- content::NOTIFICATION_NAV_ENTRY_COMMITTED, |
- content::NotificationService::AllSources()); |
+ // Navigating to the NTP should use the Instant render process. |
ui_test_utils::NavigateToURLWithDisposition( |
browser(), |
GURL(chrome::kChromeSearchLocalNtpUrl), |
CURRENT_TAB, |
- ui_test_utils::BROWSER_TEST_NONE); |
- new_tab_observer.Wait(); |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_NAVIGATION); |
+ content::WebContents* local_ntp_contents = |
+ browser()->tab_strip_model()->GetActiveWebContents(); |
+ EXPECT_TRUE(chrome::IsInstantNTP(local_ntp_contents)); |
+ EXPECT_TRUE(instant_service->IsInstantProcess( |
+ local_ntp_contents->GetRenderProcessHost()->GetID())); |
+ GURL local_ntp_url = local_ntp_contents->GetURL(); |
+ ui_test_utils::NavigateToURLWithDisposition( |
+ browser(), |
+ GURL(chrome::kChromeUINewTabURL), |
+ NEW_FOREGROUND_TAB, |
+ ui_test_utils::BROWSER_TEST_WAIT_FOR_TAB); |
content::WebContents* ntp_contents = |
browser()->tab_strip_model()->GetActiveWebContents(); |
+ EXPECT_TRUE(chrome::IsInstantNTP(ntp_contents)); |
+ EXPECT_TRUE(instant_service->IsInstantProcess( |
+ ntp_contents->GetRenderProcessHost()->GetID())); |
GURL ntp_url = ntp_contents->GetURL(); |
- TemplateURLData data; |
- data.short_name = ASCIIToUTF16("t"); |
- data.SetURL("http://defaultturl/q={searchTerms}"); |
- data.suggestions_url = "http://defaultturl2/q={searchTerms}"; |
- data.instant_url = "http://does/not/exist"; |
- data.alternate_urls.push_back(data.instant_url + "#q={searchTerms}"); |
- data.search_terms_replacement_key = "strk"; |
- |
- TemplateURL* template_url = new TemplateURL(browser()->profile(), data); |
- TemplateURLService* service = |
- TemplateURLServiceFactory::GetForProfile(browser()->profile()); |
- ui_test_utils::WaitForTemplateURLServiceToLoad(service); |
- service->Add(template_url); // Takes ownership of |template_url|. |
- |
- // Change the default search provider. This will reload the local NTP and the |
- // page URL will remain the same. |
- content::WindowedNotificationObserver observer( |
+ AddBlankTabAndShow(browser()); |
+ content::WebContents* active_tab = |
+ browser()->tab_strip_model()->GetActiveWebContents(); |
+ EXPECT_FALSE(chrome::IsInstantNTP(active_tab)); |
+ EXPECT_FALSE(instant_service->IsInstantProcess( |
+ active_tab->GetRenderProcessHost()->GetID())); |
+ |
+ content::WindowedNotificationObserver ntp_observer( |
content::NOTIFICATION_LOAD_STOP, |
content::Source<content::NavigationController>( |
&ntp_contents->GetController())); |
- service->SetDefaultSearchProvider(template_url); |
- observer.Wait(); |
+ content::WindowedNotificationObserver local_ntp_observer( |
+ content::NOTIFICATION_LOAD_STOP, |
+ content::Source<content::NavigationController>( |
+ &local_ntp_contents->GetController())); |
+ |
+ // Change the Google Base URL |
samarth
2013/08/02 21:51:15
Can you not do this in a unit test? Everything els
Anuj
2013/08/09 07:22:00
Done.
|
+ PrefService* profile_prefs = browser()->profile()->GetPrefs(); |
+ profile_prefs->SetString(prefs::kLastPromptedGoogleURL, |
+ std::string("https://www.google.com")); |
+ GoogleURLTracker::UpdatedDetails details(GURL("https://www.google.com/"), |
+ GURL("https://www.google.es/")); |
+ content::NotificationService::current()->Notify( |
+ chrome::NOTIFICATION_GOOGLE_URL_UPDATED, |
+ content::Source<Profile>(browser()->profile()->GetOriginalProfile()), |
+ content::Details<GoogleURLTracker::UpdatedDetails>(&details)); |
+ |
+ // Ensure both local_ntp and ntp tabs reload. |
+ ntp_observer.Wait(); |
+ local_ntp_observer.Wait(); |
+ |
+ // |local_ntp_contents| should use the Instant render process. |
+ EXPECT_TRUE(chrome::IsInstantNTP(local_ntp_contents)); |
+ EXPECT_TRUE(instant_service->IsInstantProcess( |
+ local_ntp_contents->GetRenderProcessHost()->GetID())); |
+ // Make sure the URL remains the same. |
+ EXPECT_EQ(local_ntp_url, local_ntp_contents->GetURL()); |
// Make sure the URL remains the same. |
EXPECT_EQ(ntp_url, ntp_contents->GetURL()); |