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 <string> | 5 #include <string> |
6 #include <vector> | 6 #include <vector> |
7 | 7 |
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/string_util.h" | 10 #include "base/strings/string_util.h" |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
51 return instant_service_->instant_search_prerenderer(); | 51 return instant_service_->instant_search_prerenderer(); |
52 } | 52 } |
53 | 53 |
54 void UpdateOmniboxStartMargin(int start_margin) { | 54 void UpdateOmniboxStartMargin(int start_margin) { |
55 instant_service_->OnOmniboxStartMarginChanged(start_margin); | 55 instant_service_->OnOmniboxStartMarginChanged(start_margin); |
56 } | 56 } |
57 | 57 |
58 scoped_ptr<MockInstantServiceObserver> instant_service_observer_; | 58 scoped_ptr<MockInstantServiceObserver> instant_service_observer_; |
59 }; | 59 }; |
60 | 60 |
61 TEST_F(InstantServiceTest, DispatchDefaultSearchProviderChanged) { | 61 class InstantServiceEnabledTest : public InstantServiceTest { |
| 62 protected: |
| 63 virtual void SetUp() OVERRIDE { |
| 64 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( |
| 65 "EmbeddedSearch", "Group1 use_cacheable_ntp:1 prefetch_results:1")); |
| 66 InstantServiceTest::SetUp(); |
| 67 } |
| 68 }; |
| 69 |
| 70 TEST_F(InstantServiceEnabledTest, DispatchDefaultSearchProviderChanged) { |
62 EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged()) | 71 EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged()) |
63 .Times(1); | 72 .Times(1); |
64 | 73 |
65 const std::string& new_base_url = "https://bar.com/"; | 74 const std::string& new_base_url = "https://bar.com/"; |
66 SetUserSelectedDefaultSearchProvider(new_base_url); | 75 SetUserSelectedDefaultSearchProvider(new_base_url); |
67 } | 76 } |
68 | 77 |
69 TEST_F(InstantServiceTest, DispatchGoogleURLUpdated) { | 78 TEST_F(InstantServiceTest, DispatchGoogleURLUpdated) { |
70 EXPECT_CALL(*instant_service_observer_.get(), GoogleURLUpdated()).Times(1); | 79 EXPECT_CALL(*instant_service_observer_.get(), GoogleURLUpdated()).Times(1); |
71 | 80 |
72 const std::string& new_base_url = "https://www.google.es/"; | 81 const std::string& new_base_url = "https://www.google.es/"; |
73 NotifyGoogleBaseURLUpdate(new_base_url); | 82 NotifyGoogleBaseURLUpdate(new_base_url); |
74 } | 83 } |
75 | 84 |
76 TEST_F(InstantServiceTest, SendsSearchURLsToRenderer) { | 85 TEST_F(InstantServiceEnabledTest, SendsSearchURLsToRenderer) { |
77 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial("EmbeddedSearch", | |
78 "Group1 use_cacheable_ntp:1")); | |
79 scoped_ptr<content::MockRenderProcessHost> rph( | 86 scoped_ptr<content::MockRenderProcessHost> rph( |
80 new content::MockRenderProcessHost(profile())); | 87 new content::MockRenderProcessHost(profile())); |
81 rph->sink().ClearMessages(); | 88 rph->sink().ClearMessages(); |
82 instant_service_->Observe( | 89 instant_service_->Observe( |
83 content::NOTIFICATION_RENDERER_PROCESS_CREATED, | 90 content::NOTIFICATION_RENDERER_PROCESS_CREATED, |
84 content::Source<content::MockRenderProcessHost>(rph.get()), | 91 content::Source<content::MockRenderProcessHost>(rph.get()), |
85 content::NotificationService::NoDetails()); | 92 content::NotificationService::NoDetails()); |
86 EXPECT_EQ(1U, rph->sink().message_count()); | 93 EXPECT_EQ(1U, rph->sink().message_count()); |
87 const IPC::Message* msg = rph->sink().GetMessageAt(0); | 94 const IPC::Message* msg = rph->sink().GetMessageAt(0); |
88 ASSERT_TRUE(msg); | 95 ASSERT_TRUE(msg); |
89 std::vector<GURL> search_urls; | 96 std::vector<GURL> search_urls; |
90 GURL new_tab_page_url; | 97 GURL new_tab_page_url; |
91 ChromeViewMsg_SetSearchURLs::Read(msg, &search_urls, &new_tab_page_url); | 98 ChromeViewMsg_SetSearchURLs::Read(msg, &search_urls, &new_tab_page_url); |
92 EXPECT_EQ(2U, search_urls.size()); | 99 EXPECT_EQ(2U, search_urls.size()); |
93 EXPECT_EQ("https://www.google.com/alt#quux=", search_urls[0].spec()); | 100 EXPECT_EQ("https://www.google.com/alt#quux=", search_urls[0].spec()); |
94 EXPECT_EQ("https://www.google.com/url?bar=", search_urls[1].spec()); | 101 EXPECT_EQ("https://www.google.com/url?bar=", search_urls[1].spec()); |
95 EXPECT_EQ("https://www.google.com/newtab", new_tab_page_url.spec()); | 102 EXPECT_EQ("https://www.google.com/newtab", new_tab_page_url.spec()); |
96 } | 103 } |
97 | 104 |
98 TEST_F(InstantServiceTest, InstantSearchDisabled) { | 105 TEST_F(InstantServiceTest, InstantSearchDisabled) { |
99 // 'prefetch_results' flag is not enabled in field trials. Make sure | 106 // 'prefetch_results' flag is not enabled in field trials. Make sure |
100 // InstantSearchPrerenderer is not initialized. | 107 // InstantSearchPrerenderer is not initialized. |
101 EXPECT_EQ(static_cast<InstantSearchPrerenderer*>(NULL), | 108 EXPECT_EQ(static_cast<InstantSearchPrerenderer*>(NULL), |
102 GetInstantSearchPrerenderer()); | 109 GetInstantSearchPrerenderer()); |
103 } | 110 } |
104 | 111 |
105 TEST_F(InstantServiceTest, | 112 TEST_F(InstantServiceEnabledTest, |
106 ResetInstantSearchPrerenderer_DefaultProviderChanged) { | 113 ResetInstantSearchPrerenderer_DefaultProviderChanged) { |
107 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( | |
108 "EmbeddedSearch", "Group1 use_cacheable_ntp:1 prefetch_results:1")); | |
109 EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged()) | 114 EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged()) |
110 .Times(2); | 115 .Times(2); |
111 | 116 |
112 // Set a default search provider that doesn't support Instant. | 117 // Set a default search provider that doesn't support Instant. |
113 TemplateURLData data; | 118 TemplateURLData data; |
114 data.SetURL("https://foobar.com/url?bar={searchTerms}"); | 119 data.SetURL("https://foobar.com/url?bar={searchTerms}"); |
115 TemplateURL* template_url = new TemplateURL(profile(), data); | 120 TemplateURL* template_url = new TemplateURL(profile(), data); |
116 // Takes ownership of |template_url|. | 121 // Takes ownership of |template_url|. |
117 template_url_service_->Add(template_url); | 122 template_url_service_->Add(template_url); |
118 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url); | 123 template_url_service_->SetUserSelectedDefaultSearchProvider(template_url); |
119 | 124 |
120 EXPECT_EQ(static_cast<InstantSearchPrerenderer*>(NULL), | 125 EXPECT_EQ(static_cast<InstantSearchPrerenderer*>(NULL), |
121 GetInstantSearchPrerenderer()); | 126 GetInstantSearchPrerenderer()); |
122 | 127 |
123 // Set a default search provider that supports Instant and make sure | 128 // Set a default search provider that supports Instant and make sure |
124 // InstantSearchPrerenderer is valid. | 129 // InstantSearchPrerenderer is valid. |
125 SetUserSelectedDefaultSearchProvider("https://google.com/"); | 130 SetUserSelectedDefaultSearchProvider("https://google.com/"); |
126 EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL), | 131 EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL), |
127 GetInstantSearchPrerenderer()); | 132 GetInstantSearchPrerenderer()); |
128 } | 133 } |
129 | 134 |
130 TEST_F(InstantServiceTest, ResetInstantSearchPrerenderer_GoogleBaseURLUpdated) { | 135 TEST_F(InstantServiceEnabledTest, |
131 ASSERT_TRUE(base::FieldTrialList::CreateFieldTrial( | 136 ResetInstantSearchPrerenderer_GoogleBaseURLUpdated) { |
132 "EmbeddedSearch", "Group1 use_cacheable_ntp:1 prefetch_results:1")); | |
133 EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged()) | 137 EXPECT_CALL(*instant_service_observer_.get(), DefaultSearchProviderChanged()) |
134 .Times(1); | 138 .Times(1); |
135 EXPECT_CALL(*instant_service_observer_.get(), GoogleURLUpdated()).Times(1); | 139 EXPECT_CALL(*instant_service_observer_.get(), GoogleURLUpdated()).Times(1); |
136 | 140 |
137 SetUserSelectedDefaultSearchProvider("https://google.com/"); | 141 SetUserSelectedDefaultSearchProvider("https://google.com/"); |
138 InstantSearchPrerenderer* old_prerenderer = GetInstantSearchPrerenderer(); | 142 InstantSearchPrerenderer* old_prerenderer = GetInstantSearchPrerenderer(); |
139 EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL), old_prerenderer); | 143 EXPECT_NE(static_cast<InstantSearchPrerenderer*>(NULL), old_prerenderer); |
140 | 144 |
141 const std::string& new_base_url = "https://www.google.es/"; | 145 const std::string& new_base_url = "https://www.google.es/"; |
142 NotifyGoogleBaseURLUpdate(new_base_url); | 146 NotifyGoogleBaseURLUpdate(new_base_url); |
143 EXPECT_NE(old_prerenderer, GetInstantSearchPrerenderer()); | 147 EXPECT_NE(old_prerenderer, GetInstantSearchPrerenderer()); |
144 } | 148 } |
145 | 149 |
146 TEST_F(InstantServiceTest, OmniboxStartMarginChanged) { | 150 TEST_F(InstantServiceTest, OmniboxStartMarginChanged) { |
147 int new_start_margin = 92; | 151 int new_start_margin = 92; |
148 EXPECT_CALL(*instant_service_observer_.get(), | 152 EXPECT_CALL(*instant_service_observer_.get(), |
149 OmniboxStartMarginChanged(new_start_margin)).Times(1); | 153 OmniboxStartMarginChanged(new_start_margin)).Times(1); |
150 UpdateOmniboxStartMargin(new_start_margin); | 154 UpdateOmniboxStartMargin(new_start_margin); |
151 } | 155 } |
OLD | NEW |