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

Side by Side Diff: chrome/browser/ui/toolbar/toolbar_model_unittest.cc

Issue 17022004: Replace --google-base-suggest-url and --instant-url with --google-base-url. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: Created 7 years, 5 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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/toolbar/toolbar_model.h" 5 #include "chrome/browser/ui/toolbar/toolbar_model.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
11 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h" 11 #include "chrome/browser/autocomplete/autocomplete_classifier_factory.h"
12 #include "chrome/browser/search/search.h" 12 #include "chrome/browser/search/search.h"
13 #include "chrome/browser/search_engines/search_terms_data.h"
13 #include "chrome/browser/search_engines/template_url.h" 14 #include "chrome/browser/search_engines/template_url.h"
14 #include "chrome/browser/search_engines/template_url_service.h" 15 #include "chrome/browser/search_engines/template_url_service.h"
15 #include "chrome/browser/search_engines/template_url_service_factory.h" 16 #include "chrome/browser/search_engines/template_url_service_factory.h"
16 #include "chrome/browser/ui/browser.h" 17 #include "chrome/browser/ui/browser.h"
17 #include "chrome/browser/ui/tabs/tab_strip_model.h" 18 #include "chrome/browser/ui/tabs/tab_strip_model.h"
18 #include "chrome/browser/ui/toolbar/toolbar_model.h" 19 #include "chrome/browser/ui/toolbar/toolbar_model.h"
19 #include "chrome/common/chrome_switches.h" 20 #include "chrome/common/chrome_switches.h"
20 #include "chrome/test/base/browser_with_test_window_test.h" 21 #include "chrome/test/base/browser_with_test_window_test.h"
21 #include "content/public/browser/navigation_entry.h" 22 #include "content/public/browser/navigation_entry.h"
22 #include "content/public/browser/render_process_host.h" 23 #include "content/public/browser/render_process_host.h"
(...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after
175 176
176 ToolbarModelTest::~ToolbarModelTest() { 177 ToolbarModelTest::~ToolbarModelTest() {
177 } 178 }
178 179
179 void ToolbarModelTest::SetUp() { 180 void ToolbarModelTest::SetUp() {
180 BrowserWithTestWindowTest::SetUp(); 181 BrowserWithTestWindowTest::SetUp();
181 TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse( 182 TemplateURLServiceFactory::GetInstance()->SetTestingFactoryAndUse(
182 profile(), &TemplateURLServiceFactory::BuildInstanceFor); 183 profile(), &TemplateURLServiceFactory::BuildInstanceFor);
183 AutocompleteClassifierFactory::GetInstance()->SetTestingFactoryAndUse( 184 AutocompleteClassifierFactory::GetInstance()->SetTestingFactoryAndUse(
184 profile(), &AutocompleteClassifierFactory::BuildInstanceFor); 185 profile(), &AutocompleteClassifierFactory::BuildInstanceFor);
186 UIThreadSearchTermsData::SetGoogleBaseURL("http://google.com/");
185 } 187 }
186 188
187 void ToolbarModelTest::ResetDefaultTemplateURL() { 189 void ToolbarModelTest::ResetDefaultTemplateURL() {
188 ResetTemplateURLForInstant(GURL("http://does/not/exist")); 190 ResetTemplateURLForInstant(GURL("http://does/not/exist"));
189 } 191 }
190 192
191 void ToolbarModelTest::NavigateAndCheckText( 193 void ToolbarModelTest::NavigateAndCheckText(
192 const GURL& url, 194 const GURL& url,
193 const string16& expected_text, 195 const string16& expected_text,
194 const string16& expected_replace_text, 196 const string16& expected_replace_text,
195 bool would_replace, 197 bool would_replace,
196 bool should_display) { 198 bool should_display) {
197 NavigateAndCheckTextImpl(url, false, expected_text, would_replace, 199 NavigateAndCheckTextImpl(url, false, expected_text, would_replace,
198 should_display); 200 should_display);
199 NavigateAndCheckTextImpl(url, true, expected_replace_text, would_replace, 201 NavigateAndCheckTextImpl(url, true, expected_replace_text, would_replace,
200 should_display); 202 should_display);
201 } 203 }
202 204
203 void ToolbarModelTest::ResetTemplateURLForInstant(const GURL& instant_url) { 205 void ToolbarModelTest::ResetTemplateURLForInstant(const GURL& instant_url) {
204 TemplateURLData data; 206 TemplateURLData data;
205 data.short_name = ASCIIToUTF16("Google"); 207 data.short_name = ASCIIToUTF16("Google");
206 data.SetURL("http://google.com/search?q={searchTerms}"); 208 data.SetURL("{google:baseURL}search?q={searchTerms}");
207 data.instant_url = instant_url.spec(); 209 data.instant_url = instant_url.spec();
208 data.search_terms_replacement_key = "{google:instantExtendedEnabledKey}"; 210 data.search_terms_replacement_key = "{google:instantExtendedEnabledKey}";
209 TemplateURL* search_template_url = new TemplateURL(profile(), data); 211 TemplateURL* search_template_url = new TemplateURL(profile(), data);
210 TemplateURLService* template_url_service = 212 TemplateURLService* template_url_service =
211 TemplateURLServiceFactory::GetForProfile(profile()); 213 TemplateURLServiceFactory::GetForProfile(profile());
212 template_url_service->Add(search_template_url); 214 template_url_service->Add(search_template_url);
213 template_url_service->SetDefaultSearchProvider(search_template_url); 215 template_url_service->SetDefaultSearchProvider(search_template_url);
214 ASSERT_NE(0, search_template_url->id()); 216 ASSERT_NE(0, search_template_url->id());
215 template_url_service->Load(); 217 template_url_service->Load();
216 } 218 }
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
249 toolbar_model->WouldReplaceSearchURLWithSearchTerms()); 251 toolbar_model->WouldReplaceSearchURLWithSearchTerms());
250 } 252 }
251 253
252 254
253 // Actual tests --------------------------------------------------------------- 255 // Actual tests ---------------------------------------------------------------
254 256
255 // Test that we don't replace any URLs when the query extraction is disabled. 257 // Test that we don't replace any URLs when the query extraction is disabled.
256 TEST_F(ToolbarModelTest, ShouldDisplayURLQueryExtractionDisabled) { 258 TEST_F(ToolbarModelTest, ShouldDisplayURLQueryExtractionDisabled) {
257 ASSERT_FALSE(chrome::IsQueryExtractionEnabled()) 259 ASSERT_FALSE(chrome::IsQueryExtractionEnabled())
258 << "This test expects query extraction to be disabled."; 260 << "This test expects query extraction to be disabled.";
259 ResetDefaultTemplateURL();
260 AddTab(browser(), GURL(content::kAboutBlankURL)); 261 AddTab(browser(), GURL(content::kAboutBlankURL));
261 for (size_t i = 0; i < arraysize(test_items); ++i) { 262 for (size_t i = 0; i < arraysize(test_items); ++i) {
262 const TestItem& test_item = test_items[i]; 263 const TestItem& test_item = test_items[i];
263 NavigateAndCheckText(test_item.url, 264 NavigateAndCheckText(test_item.url, test_item.expected_text,
264 test_item.expected_text, 265 test_item.expected_replace_text_inactive, false,
265 test_item.expected_replace_text_inactive,
266 false,
267 test_item.should_display); 266 test_item.should_display);
268 } 267 }
269 } 268 }
270 269
271 // Test that we replace URLs when the query extraction API is enabled. 270 // Test that we replace URLs when the query extraction API is enabled.
272 TEST_F(ToolbarModelTest, ShouldDisplayURLQueryExtractionEnabled) { 271 TEST_F(ToolbarModelTest, ShouldDisplayURLQueryExtractionEnabled) {
273 chrome::EnableInstantExtendedAPIForTesting(); 272 chrome::EnableInstantExtendedAPIForTesting();
274 ResetDefaultTemplateURL();
275 AddTab(browser(), GURL(content::kAboutBlankURL)); 273 AddTab(browser(), GURL(content::kAboutBlankURL));
276 for (size_t i = 0; i < arraysize(test_items); ++i) { 274 for (size_t i = 0; i < arraysize(test_items); ++i) {
277 const TestItem& test_item = test_items[i]; 275 const TestItem& test_item = test_items[i];
278 NavigateAndCheckText(test_item.url, 276 NavigateAndCheckText(test_item.url, test_item.expected_text,
279 test_item.expected_text,
280 test_item.expected_replace_text_active, 277 test_item.expected_replace_text_active,
281 test_item.would_replace, 278 test_item.would_replace, test_item.should_display);
282 test_item.should_display);
283 } 279 }
284 } 280 }
285 281
286 // Verify that search terms are extracted while the page is loading. 282 // Verify that search terms are extracted while the page is loading.
287 TEST_F(ToolbarModelTest, SearchTermsWhileLoading) { 283 TEST_F(ToolbarModelTest, SearchTermsWhileLoading) {
288 chrome::EnableInstantExtendedAPIForTesting(); 284 chrome::EnableInstantExtendedAPIForTesting();
289 ResetDefaultTemplateURL(); 285 ResetDefaultTemplateURL();
290 AddTab(browser(), GURL(content::kAboutBlankURL)); 286 AddTab(browser(), GURL(content::kAboutBlankURL));
291 287
292 // While loading, we should be willing to extract search terms. 288 // While loading, we should be willing to extract search terms.
293 content::NavigationController* controller = 289 content::NavigationController* controller =
294 &browser()->tab_strip_model()->GetWebContentsAt(0)->GetController(); 290 &browser()->tab_strip_model()->GetWebContentsAt(0)->GetController();
295 controller->LoadURL(GURL("https://google.com/search?q=tractor+supply&espv=1"), 291 controller->LoadURL(GURL("https://google.com/search?q=tractor+supply&espv=1"),
296 content::Referrer(), content::PAGE_TRANSITION_LINK, 292 content::Referrer(), content::PAGE_TRANSITION_LINK,
297 std::string()); 293 std::string());
298 ToolbarModel* toolbar_model = browser()->toolbar_model(); 294 ToolbarModel* toolbar_model = browser()->toolbar_model();
299 controller->GetVisibleEntry()->GetSSL().security_style = 295 controller->GetVisibleEntry()->GetSSL().security_style =
300 content::SECURITY_STYLE_UNKNOWN; 296 content::SECURITY_STYLE_UNKNOWN;
301 EXPECT_TRUE(toolbar_model->WouldReplaceSearchURLWithSearchTerms()); 297 EXPECT_TRUE(toolbar_model->WouldReplaceSearchURLWithSearchTerms());
302 298
303 // When done loading, we shouldn't extract search terms if we didn't get an 299 // When done loading, we shouldn't extract search terms if we didn't get an
304 // authenticated connection. 300 // authenticated connection.
305 CommitPendingLoad(controller); 301 CommitPendingLoad(controller);
306 controller->GetVisibleEntry()->GetSSL().security_style = 302 controller->GetVisibleEntry()->GetSSL().security_style =
307 content::SECURITY_STYLE_UNKNOWN; 303 content::SECURITY_STYLE_UNKNOWN;
308 EXPECT_FALSE(toolbar_model->WouldReplaceSearchURLWithSearchTerms()); 304 EXPECT_FALSE(toolbar_model->WouldReplaceSearchURLWithSearchTerms());
309 } 305 }
306
307 // When the Google base URL is overridden on the command line, we should extract
308 // search terms from URLs that start with that base URL even when they're not
309 // secure.
310 TEST_F(ToolbarModelTest, GoogleBaseURL) {
311 chrome::EnableInstantExtendedAPIForTesting();
312 AddTab(browser(), GURL(content::kAboutBlankURL));
313
314 // If the Google base URL wasn't specified on the command line, then if it's
315 // HTTP, we should not extract search terms.
316 UIThreadSearchTermsData::SetGoogleBaseURL("http://www.foo.com/");
317 NavigateAndCheckText(
318 GURL("http://www.foo.com/search?q=tractor+supply&espv=1"),
319 ASCIIToUTF16("www.foo.com/search?q=tractor+supply&espv=1"),
320 ASCIIToUTF16("www.foo.com/search?q=tractor+supply&espv=1"), false,
321 true);
322
323 // The same URL, when specified on the command line, should allow search term
324 // extraction.
325 UIThreadSearchTermsData::SetGoogleBaseURL(std::string());
326 CommandLine::ForCurrentProcess()->AppendSwitchASCII(switches::kGoogleBaseURL,
327 "http://www.foo.com/");
328 NavigateAndCheckText(
329 GURL("http://www.foo.com/search?q=tractor+supply&espv=1"),
330 ASCIIToUTF16("www.foo.com/search?q=tractor+supply&espv=1"),
331 ASCIIToUTF16("tractor supply"), true, true);
332 }
OLDNEW
« no previous file with comments | « chrome/browser/ui/toolbar/toolbar_model_impl.cc ('k') | chrome/browser/ui/views/frame/browser_frame_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698