| 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" |
| 11 #include "base/time/time.h" | 11 #include "base/time/time.h" |
| 12 #include "chrome/browser/prerender/prerender_manager.h" | 12 #include "chrome/browser/prerender/prerender_manager.h" |
| 13 #include "chrome/browser/prerender/prerender_manager_factory.h" | 13 #include "chrome/browser/prerender/prerender_manager_factory.h" |
| 14 #include "chrome/browser/search/instant_unittest_base.h" | 14 #include "chrome/browser/search/instant_unittest_base.h" |
| 15 #include "chrome/browser/search/search.h" | 15 #include "chrome/browser/search/search.h" |
| 16 #include "chrome/browser/search_engines/template_url_service_factory.h" | 16 #include "chrome/browser/search_engines/template_url_service_factory.h" |
| 17 #include "chrome/browser/signin/fake_signin_manager_builder.h" | 17 #include "chrome/browser/signin/fake_signin_manager_builder.h" |
| 18 #include "chrome/browser/signin/signin_manager_factory.h" | 18 #include "chrome/browser/signin/signin_manager_factory.h" |
| 19 #include "chrome/browser/sync/profile_sync_service.h" | 19 #include "chrome/browser/sync/profile_sync_service.h" |
| 20 #include "chrome/browser/sync/profile_sync_service_factory.h" | 20 #include "chrome/browser/sync/profile_sync_service_factory.h" |
| 21 #include "chrome/browser/sync/profile_sync_service_mock.h" | 21 #include "chrome/browser/sync/profile_sync_service_mock.h" |
| 22 #include "chrome/browser/ui/search/search_ipc_router.h" | 22 #include "chrome/browser/ui/search/search_ipc_router.h" |
| 23 #include "chrome/browser/ui/tabs/tab_strip_model.h" | 23 #include "chrome/browser/ui/tabs/tab_strip_model.h" |
| 24 #include "chrome/browser/ui/webui/ntp/ntp_user_data_logger.h" |
| 24 #include "chrome/common/chrome_switches.h" | 25 #include "chrome/common/chrome_switches.h" |
| 25 #include "chrome/common/ntp_logging_events.h" | 26 #include "chrome/common/ntp_logging_events.h" |
| 26 #include "chrome/common/render_messages.h" | 27 #include "chrome/common/render_messages.h" |
| 27 #include "chrome/common/url_constants.h" | 28 #include "chrome/common/url_constants.h" |
| 28 #include "chrome/grit/generated_resources.h" | 29 #include "chrome/grit/generated_resources.h" |
| 29 #include "chrome/test/base/browser_with_test_window_test.h" | 30 #include "chrome/test/base/browser_with_test_window_test.h" |
| 30 #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 31 #include "chrome/test/base/chrome_render_view_host_test_harness.h" |
| 31 #include "chrome/test/base/testing_profile.h" | 32 #include "chrome/test/base/testing_profile.h" |
| 32 #include "components/omnibox/common/omnibox_focus_state.h" | 33 #include "components/omnibox/common/omnibox_focus_state.h" |
| 33 #include "components/search_engines/template_url_service.h" | 34 #include "components/search_engines/template_url_service.h" |
| (...skipping 275 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 309 | 310 |
| 310 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( | 311 const IPC::Message* message = process()->sink().GetUniqueMessageMatching( |
| 311 ChromeViewMsg_HistorySyncCheckResult::ID); | 312 ChromeViewMsg_HistorySyncCheckResult::ID); |
| 312 ASSERT_TRUE(message != NULL); | 313 ASSERT_TRUE(message != NULL); |
| 313 | 314 |
| 314 ChromeViewMsg_HistorySyncCheckResult::Param params; | 315 ChromeViewMsg_HistorySyncCheckResult::Param params; |
| 315 ChromeViewMsg_HistorySyncCheckResult::Read(message, ¶ms); | 316 ChromeViewMsg_HistorySyncCheckResult::Read(message, ¶ms); |
| 316 ASSERT_FALSE(base::get<0>(params)); | 317 ASSERT_FALSE(base::get<0>(params)); |
| 317 } | 318 } |
| 318 | 319 |
| 320 TEST_F(SearchTabHelperTest, OnMostVisitedItemsChangedFromServer) { |
| 321 InstantMostVisitedItem item; |
| 322 item.is_server_side_suggestion = true; |
| 323 std::vector<InstantMostVisitedItem> items; |
| 324 items.push_back(item); |
| 325 |
| 326 SearchTabHelper* search_tab_helper = |
| 327 SearchTabHelper::FromWebContents(web_contents()); |
| 328 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| 329 |
| 330 auto logger = NTPUserDataLogger::GetOrCreateFromWebContents(web_contents()); |
| 331 ASSERT_FALSE(logger->has_server_side_suggestions_); |
| 332 ASSERT_FALSE(logger->has_client_side_suggestions_); |
| 333 |
| 334 search_tab_helper->MostVisitedItemsChanged(items); |
| 335 |
| 336 ASSERT_TRUE(logger->has_server_side_suggestions_); |
| 337 ASSERT_FALSE(logger->has_client_side_suggestions_); |
| 338 } |
| 339 |
| 340 TEST_F(SearchTabHelperTest, OnMostVisitedItemsChangedFromClient) { |
| 341 InstantMostVisitedItem item; |
| 342 item.is_server_side_suggestion = false; |
| 343 std::vector<InstantMostVisitedItem> items; |
| 344 items.push_back(item); |
| 345 |
| 346 SearchTabHelper* search_tab_helper = |
| 347 SearchTabHelper::FromWebContents(web_contents()); |
| 348 ASSERT_NE(static_cast<SearchTabHelper*>(NULL), search_tab_helper); |
| 349 |
| 350 auto logger = NTPUserDataLogger::GetOrCreateFromWebContents(web_contents()); |
| 351 ASSERT_FALSE(logger->has_server_side_suggestions_); |
| 352 ASSERT_FALSE(logger->has_client_side_suggestions_); |
| 353 |
| 354 search_tab_helper->MostVisitedItemsChanged(items); |
| 355 |
| 356 ASSERT_FALSE(logger->has_server_side_suggestions_); |
| 357 ASSERT_TRUE(logger->has_client_side_suggestions_); |
| 358 } |
| 359 |
| 319 class TabTitleObserver : public content::WebContentsObserver { | 360 class TabTitleObserver : public content::WebContentsObserver { |
| 320 public: | 361 public: |
| 321 explicit TabTitleObserver(content::WebContents* contents) | 362 explicit TabTitleObserver(content::WebContents* contents) |
| 322 : WebContentsObserver(contents) {} | 363 : WebContentsObserver(contents) {} |
| 323 | 364 |
| 324 base::string16 title_on_start() { return title_on_start_; } | 365 base::string16 title_on_start() { return title_on_start_; } |
| 325 base::string16 title_on_commit() { return title_on_commit_; } | 366 base::string16 title_on_commit() { return title_on_commit_; } |
| 326 | 367 |
| 327 private: | 368 private: |
| 328 void DidStartProvisionalLoadForFrame( | 369 void DidStartProvisionalLoadForFrame( |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 409 } | 450 } |
| 410 | 451 |
| 411 TEST_F(SearchTabHelperPrerenderTest, | 452 TEST_F(SearchTabHelperPrerenderTest, |
| 412 OnTabActivatedNoPrerenderIfOmniboxBlurred) { | 453 OnTabActivatedNoPrerenderIfOmniboxBlurred) { |
| 413 SearchTabHelperPrerenderTest::omnibox_has_focus_ = false; | 454 SearchTabHelperPrerenderTest::omnibox_has_focus_ = false; |
| 414 SearchTabHelper* search_tab_helper = | 455 SearchTabHelper* search_tab_helper = |
| 415 SearchTabHelper::FromWebContents(web_contents()); | 456 SearchTabHelper::FromWebContents(web_contents()); |
| 416 search_tab_helper->OnTabActivated(); | 457 search_tab_helper->OnTabActivated(); |
| 417 ASSERT_FALSE(IsInstantURLMarkedForPrerendering()); | 458 ASSERT_FALSE(IsInstantURLMarkedForPrerendering()); |
| 418 } | 459 } |
| OLD | NEW |