OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/search/search_tab_helper.h" | 5 #include "chrome/browser/ui/search/search_tab_helper.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
9 #include "base/metrics/field_trial.h" | 9 #include "base/metrics/field_trial.h" |
10 #include "base/strings/utf_string_conversions.h" | 10 #include "base/strings/utf_string_conversions.h" |
(...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
343 data.new_tab_url = std::string("https://foo.com/newtab?strk"); | 343 data.new_tab_url = std::string("https://foo.com/newtab?strk"); |
344 data.alternate_urls.push_back("http://foo.com/alt#quux={searchTerms}"); | 344 data.alternate_urls.push_back("http://foo.com/alt#quux={searchTerms}"); |
345 data.search_terms_replacement_key = "strk"; | 345 data.search_terms_replacement_key = "strk"; |
346 | 346 |
347 TemplateURL* template_url = new TemplateURL(data); | 347 TemplateURL* template_url = new TemplateURL(data); |
348 template_url_service->Add(template_url); | 348 template_url_service->Add(template_url); |
349 template_url_service->SetUserSelectedDefaultSearchProvider(template_url); | 349 template_url_service->SetUserSelectedDefaultSearchProvider(template_url); |
350 } | 350 } |
351 }; | 351 }; |
352 | 352 |
353 TEST_F(SearchTabHelperWindowTest, OnProvisionalLoadFailRedirectNTPToLocal) { | |
354 AddTab(browser(), GURL(chrome::kChromeUINewTabURL)); | |
355 content::WebContents* contents = | |
356 browser()->tab_strip_model()->GetWebContentsAt(0); | |
357 content::NavigationController* controller = &contents->GetController(); | |
358 | |
359 SearchTabHelper* search_tab_helper = | |
360 SearchTabHelper::FromWebContents(contents); | |
361 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); | |
362 | |
363 // A failed provisional load of a cacheable NTP should be redirected to local | |
364 // NTP. | |
365 const GURL cacheableNTPURL = chrome::GetNewTabPageURL(profile()); | |
366 search_tab_helper->DidFailProvisionalLoad( | |
367 contents->GetMainFrame(), cacheableNTPURL, 1, base::string16()); | |
368 CommitPendingLoad(controller); | |
369 EXPECT_EQ(GURL(chrome::kChromeSearchLocalNtpUrl), | |
370 controller->GetLastCommittedEntry()->GetURL()); | |
371 } | |
372 | |
373 TEST_F(SearchTabHelperWindowTest, OnProvisionalLoadFailDontRedirectIfAborted) { | |
374 AddTab(browser(), GURL("chrome://blank")); | |
375 content::WebContents* contents = | |
376 browser()->tab_strip_model()->GetWebContentsAt(0); | |
377 content::NavigationController* controller = &contents->GetController(); | |
378 | |
379 SearchTabHelper* search_tab_helper = | |
380 SearchTabHelper::FromWebContents(contents); | |
381 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); | |
382 | |
383 // A failed provisional load of a cacheable NTP should be redirected to local | |
384 // NTP. | |
385 const GURL cacheableNTPURL = chrome::GetNewTabPageURL(profile()); | |
386 search_tab_helper->DidFailProvisionalLoad(contents->GetMainFrame(), | |
387 cacheableNTPURL, | |
388 net::ERR_ABORTED, | |
389 base::string16()); | |
390 CommitPendingLoad(controller); | |
391 EXPECT_EQ(GURL("chrome://blank"), | |
392 controller->GetLastCommittedEntry()->GetURL()); | |
393 } | |
394 | |
395 TEST_F(SearchTabHelperWindowTest, OnProvisionalLoadFailDontRedirectNonNTP) { | |
396 AddTab(browser(), GURL(chrome::kChromeUINewTabURL)); | |
397 content::WebContents* contents = | |
398 browser()->tab_strip_model()->GetWebContentsAt(0); | |
399 content::NavigationController* controller = &contents->GetController(); | |
400 | |
401 SearchTabHelper* search_tab_helper = | |
402 SearchTabHelper::FromWebContents(contents); | |
403 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); | |
404 | |
405 // Any other web page shouldn't be redirected when provisional load fails. | |
406 search_tab_helper->DidFailProvisionalLoad(contents->GetMainFrame(), | |
407 GURL("http://www.example.com"), | |
408 1, | |
409 base::string16()); | |
410 CommitPendingLoad(controller); | |
411 EXPECT_NE(GURL(chrome::kChromeSearchLocalNtpUrl), | |
412 controller->GetLastCommittedEntry()->GetURL()); | |
413 } | |
414 | |
415 class SearchTabHelperPrerenderTest : public InstantUnitTestBase { | 353 class SearchTabHelperPrerenderTest : public InstantUnitTestBase { |
416 public: | 354 public: |
417 ~SearchTabHelperPrerenderTest() override {} | 355 ~SearchTabHelperPrerenderTest() override {} |
418 | 356 |
419 protected: | 357 protected: |
420 void SetUp() override { | 358 void SetUp() override { |
421 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( | 359 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
422 "EmbeddedSearch", | 360 "EmbeddedSearch", |
423 "Group1 espv:89 prefetch_results:1 " | 361 "Group1 espv:89 prefetch_results:1 " |
424 "prerender_instant_url_on_omnibox_focus:1")); | 362 "prerender_instant_url_on_omnibox_focus:1")); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
471 } | 409 } |
472 | 410 |
473 TEST_F(SearchTabHelperPrerenderTest, | 411 TEST_F(SearchTabHelperPrerenderTest, |
474 OnTabActivatedNoPrerenderIfOmniboxBlurred) { | 412 OnTabActivatedNoPrerenderIfOmniboxBlurred) { |
475 SearchTabHelperPrerenderTest::omnibox_has_focus_ = false; | 413 SearchTabHelperPrerenderTest::omnibox_has_focus_ = false; |
476 SearchTabHelper* search_tab_helper = | 414 SearchTabHelper* search_tab_helper = |
477 SearchTabHelper::FromWebContents(web_contents()); | 415 SearchTabHelper::FromWebContents(web_contents()); |
478 search_tab_helper->OnTabActivated(); | 416 search_tab_helper->OnTabActivated(); |
479 ASSERT_FALSE(IsInstantURLMarkedForPrerendering()); | 417 ASSERT_FALSE(IsInstantURLMarkedForPrerendering()); |
480 } | 418 } |
OLD | NEW |