Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 "base/bind.h" | 5 #include "base/bind.h" |
| 6 #include "base/bind_helpers.h" | 6 #include "base/bind_helpers.h" |
| 7 #include "base/callback.h" | 7 #include "base/callback.h" |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "base/memory/scoped_vector.h" | 9 #include "base/memory/scoped_vector.h" |
| 10 #include "base/run_loop.h" | 10 #include "base/run_loop.h" |
| (...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 103 data.SetURL(url); | 103 data.SetURL(url); |
| 104 data.suggestions_url = suggest_url; | 104 data.suggestions_url = suggest_url; |
| 105 if (!alternate_url.empty()) | 105 if (!alternate_url.empty()) |
| 106 data.alternate_urls.push_back(alternate_url); | 106 data.alternate_urls.push_back(alternate_url); |
| 107 data.favicon_url = GURL(favicon_url); | 107 data.favicon_url = GURL(favicon_url); |
| 108 data.safe_for_autoreplace = safe_for_autoreplace; | 108 data.safe_for_autoreplace = safe_for_autoreplace; |
| 109 data.show_in_default_list = show_in_default_list; | 109 data.show_in_default_list = show_in_default_list; |
| 110 base::SplitString(encodings, ';', &data.input_encodings); | 110 base::SplitString(encodings, ';', &data.input_encodings); |
| 111 data.date_created = date_created; | 111 data.date_created = date_created; |
| 112 data.last_modified = last_modified; | 112 data.last_modified = last_modified; |
| 113 return new TemplateURL(model->profile(), data); | 113 return new TemplateURL(data); |
| 114 } | 114 } |
| 115 | 115 |
| 116 TemplateURL* AddKeywordWithDate( | 116 TemplateURL* AddKeywordWithDate( |
| 117 TemplateURLService* model, | 117 TemplateURLService* model, |
| 118 const std::string& short_name, | 118 const std::string& short_name, |
| 119 const std::string& keyword, | 119 const std::string& keyword, |
| 120 const std::string& url, | 120 const std::string& url, |
| 121 const std::string& suggest_url, | 121 const std::string& suggest_url, |
| 122 const std::string& alternate_url, | 122 const std::string& alternate_url, |
| 123 const std::string& favicon_url, | 123 const std::string& favicon_url, |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 188 void VerifyObserverCount(int expected_changed_count); | 188 void VerifyObserverCount(int expected_changed_count); |
| 189 void VerifyObserverFired(); | 189 void VerifyObserverFired(); |
| 190 TemplateURLService* model() { return test_util_.model(); } | 190 TemplateURLService* model() { return test_util_.model(); } |
| 191 const SearchTermsData& search_terms_data() { | 191 const SearchTermsData& search_terms_data() { |
| 192 return model()->search_terms_data(); | 192 return model()->search_terms_data(); |
| 193 } | 193 } |
| 194 | 194 |
| 195 protected: | 195 protected: |
| 196 TemplateURLServiceTestUtil test_util_; | 196 TemplateURLServiceTestUtil test_util_; |
| 197 | 197 |
| 198 void TestGenerateSearchURL(SearchTermsData* search_terms_data) { | 198 void TestGenerateSearchURL(const SearchTermsData& search_terms_data) { |
| 199 struct GenerateSearchURLCase { | 199 struct GenerateSearchURLCase { |
| 200 const char* test_name; | 200 const char* test_name; |
| 201 const char* url; | 201 const char* url; |
| 202 const char* expected; | 202 const char* expected; |
| 203 } generate_url_cases[] = { | 203 } generate_url_cases[] = { |
| 204 { "invalid URL", "foo{searchTerms}", "" }, | 204 { "invalid URL", "foo{searchTerms}", "" }, |
| 205 { "URL with no replacements", "http://foo/", "http://foo/" }, | 205 { "URL with no replacements", "http://foo/", "http://foo/" }, |
| 206 { "basic functionality", "http://foo/{searchTerms}", | 206 { "basic functionality", "http://foo/{searchTerms}", |
| 207 "http://foo/blah.blah.blah.blah.blah" } | 207 "http://foo/blah.blah.blah.blah.blah" } |
| 208 }; | 208 }; |
| 209 | 209 |
| 210 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(generate_url_cases); ++i) { | 210 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(generate_url_cases); ++i) { |
| 211 TemplateURLData data; | 211 TemplateURLData data; |
| 212 data.SetURL(generate_url_cases[i].url); | 212 data.SetURL(generate_url_cases[i].url); |
| 213 TemplateURL t_url(NULL, data); | 213 TemplateURL t_url(data); |
| 214 std::string result; | 214 std::string result; |
| 215 if (search_terms_data) { | 215 result = TemplateURLService::GenerateSearchURL( |
|
Peter Kasting
2014/06/17 21:07:54
Nit: Combine this with the line above
hashimoto
2014/06/17 21:58:02
Done.
Also removed the code below which prints th
| |
| 216 result = TemplateURLService::GenerateSearchURLUsingTermsData( | 216 &t_url, search_terms_data).spec(); |
| 217 &t_url, *search_terms_data).spec(); | |
| 218 } else { | |
| 219 result = TemplateURLService::GenerateSearchURL(&t_url).spec(); | |
| 220 } | |
| 221 EXPECT_EQ(result, generate_url_cases[i].expected) | 217 EXPECT_EQ(result, generate_url_cases[i].expected) |
| 222 << generate_url_cases[i].test_name << " failed. Expected " | 218 << generate_url_cases[i].test_name << " failed. Expected " |
| 223 << generate_url_cases[i].expected << " Actual " << result; | 219 << generate_url_cases[i].expected << " Actual " << result; |
| 224 } | 220 } |
| 225 } | 221 } |
| 226 | 222 |
| 227 | 223 |
| 228 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceTest); | 224 DISALLOW_COPY_AND_ASSIGN(TemplateURLServiceTest); |
| 229 }; | 225 }; |
| 230 | 226 |
| (...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 296 data.short_name = ASCIIToUTF16("unittest"); | 292 data.short_name = ASCIIToUTF16("unittest"); |
| 297 data.SetKeyword(ASCIIToUTF16("unittest")); | 293 data.SetKeyword(ASCIIToUTF16("unittest")); |
| 298 data.SetURL("http://www.unittest.com/{searchTerms}"); | 294 data.SetURL("http://www.unittest.com/{searchTerms}"); |
| 299 data.favicon_url = GURL("http://favicon.url"); | 295 data.favicon_url = GURL("http://favicon.url"); |
| 300 data.show_in_default_list = true; | 296 data.show_in_default_list = true; |
| 301 data.safe_for_autoreplace = safe_for_autoreplace; | 297 data.safe_for_autoreplace = safe_for_autoreplace; |
| 302 data.input_encodings.push_back("UTF-8"); | 298 data.input_encodings.push_back("UTF-8"); |
| 303 data.date_created = Time::FromTimeT(100); | 299 data.date_created = Time::FromTimeT(100); |
| 304 data.last_modified = Time::FromTimeT(100); | 300 data.last_modified = Time::FromTimeT(100); |
| 305 data.prepopulate_id = prepopulate_id; | 301 data.prepopulate_id = prepopulate_id; |
| 306 return new TemplateURL(test_util_.profile(), data); | 302 return new TemplateURL(data); |
| 307 } | 303 } |
| 308 | 304 |
| 309 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) { | 305 void TemplateURLServiceTest::VerifyObserverCount(int expected_changed_count) { |
| 310 EXPECT_EQ(expected_changed_count, test_util_.GetObserverCount()); | 306 EXPECT_EQ(expected_changed_count, test_util_.GetObserverCount()); |
| 311 test_util_.ResetObserverCount(); | 307 test_util_.ResetObserverCount(); |
| 312 } | 308 } |
| 313 | 309 |
| 314 void TemplateURLServiceTest::VerifyObserverFired() { | 310 void TemplateURLServiceTest::VerifyObserverFired() { |
| 315 EXPECT_LE(1, test_util_.GetObserverCount()); | 311 EXPECT_LE(1, test_util_.GetObserverCount()); |
| 316 test_util_.ResetObserverCount(); | 312 test_util_.ResetObserverCount(); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 330 | 326 |
| 331 TemplateURLData data; | 327 TemplateURLData data; |
| 332 data.short_name = ASCIIToUTF16("google"); | 328 data.short_name = ASCIIToUTF16("google"); |
| 333 data.SetKeyword(ASCIIToUTF16("keyword")); | 329 data.SetKeyword(ASCIIToUTF16("keyword")); |
| 334 data.SetURL("http://www.google.com/foo/bar"); | 330 data.SetURL("http://www.google.com/foo/bar"); |
| 335 data.favicon_url = GURL("http://favicon.url"); | 331 data.favicon_url = GURL("http://favicon.url"); |
| 336 data.safe_for_autoreplace = true; | 332 data.safe_for_autoreplace = true; |
| 337 data.date_created = Time::FromTimeT(100); | 333 data.date_created = Time::FromTimeT(100); |
| 338 data.last_modified = Time::FromTimeT(100); | 334 data.last_modified = Time::FromTimeT(100); |
| 339 data.sync_guid = "00000000-0000-0000-0000-000000000001"; | 335 data.sync_guid = "00000000-0000-0000-0000-000000000001"; |
| 340 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 336 TemplateURL* t_url = new TemplateURL(data); |
| 341 model()->Add(t_url); | 337 model()->Add(t_url); |
| 342 ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(), | 338 ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(), |
| 343 NULL)); | 339 NULL)); |
| 344 VerifyObserverCount(1); | 340 VerifyObserverCount(1); |
| 345 base::RunLoop().RunUntilIdle(); | 341 base::RunLoop().RunUntilIdle(); |
| 346 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 342 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 347 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(t_url->keyword())); | 343 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(t_url->keyword())); |
| 348 // We need to make a second copy as the model takes ownership of |t_url| and | 344 // We need to make a second copy as the model takes ownership of |t_url| and |
| 349 // will delete it. We have to do this after calling Add() since that gives | 345 // will delete it. We have to do this after calling Add() since that gives |
| 350 // |t_url| its ID. | 346 // |t_url| its ID. |
| 351 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(), | 347 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data())); |
| 352 t_url->data())); | |
| 353 | 348 |
| 354 // Reload the model to verify it was actually saved to the database. | 349 // Reload the model to verify it was actually saved to the database. |
| 355 test_util_.ResetModel(true); | 350 test_util_.ResetModel(true); |
| 356 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 351 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 357 TemplateURL* loaded_url = | 352 TemplateURL* loaded_url = |
| 358 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); | 353 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); |
| 359 ASSERT_TRUE(loaded_url != NULL); | 354 ASSERT_TRUE(loaded_url != NULL); |
| 360 AssertEquals(*cloned_url, *loaded_url); | 355 AssertEquals(*cloned_url, *loaded_url); |
| 361 ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(), | 356 ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(), |
| 362 NULL)); | 357 NULL)); |
| 363 | 358 |
| 364 // We expect the last_modified time to be updated to the present time on an | 359 // We expect the last_modified time to be updated to the present time on an |
| 365 // explicit reset. We have to set up the expectation here because ResetModel | 360 // explicit reset. We have to set up the expectation here because ResetModel |
| 366 // resets the TimeProvider in the TemplateURLService. | 361 // resets the TimeProvider in the TemplateURLService. |
| 367 StrictMock<base::MockTimeProvider> mock_time; | 362 StrictMock<base::MockTimeProvider> mock_time; |
| 368 model()->set_time_provider(&base::MockTimeProvider::StaticNow); | 363 model()->set_time_provider(&base::MockTimeProvider::StaticNow); |
| 369 EXPECT_CALL(mock_time, Now()).WillOnce(Return(base::Time::FromDoubleT(1337))); | 364 EXPECT_CALL(mock_time, Now()).WillOnce(Return(base::Time::FromDoubleT(1337))); |
| 370 | 365 |
| 371 // Mutate an element and verify it succeeded. | 366 // Mutate an element and verify it succeeded. |
| 372 model()->ResetTemplateURL(loaded_url, ASCIIToUTF16("a"), ASCIIToUTF16("b"), | 367 model()->ResetTemplateURL(loaded_url, ASCIIToUTF16("a"), ASCIIToUTF16("b"), |
| 373 "c"); | 368 "c"); |
| 374 ASSERT_EQ(ASCIIToUTF16("a"), loaded_url->short_name()); | 369 ASSERT_EQ(ASCIIToUTF16("a"), loaded_url->short_name()); |
| 375 ASSERT_EQ(ASCIIToUTF16("b"), loaded_url->keyword()); | 370 ASSERT_EQ(ASCIIToUTF16("b"), loaded_url->keyword()); |
| 376 ASSERT_EQ("c", loaded_url->url()); | 371 ASSERT_EQ("c", loaded_url->url()); |
| 377 ASSERT_FALSE(loaded_url->safe_for_autoreplace()); | 372 ASSERT_FALSE(loaded_url->safe_for_autoreplace()); |
| 378 ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(), | 373 ASSERT_TRUE(model()->CanReplaceKeyword(ASCIIToUTF16("keyword"), GURL(), |
| 379 NULL)); | 374 NULL)); |
| 380 ASSERT_FALSE(model()->CanReplaceKeyword(ASCIIToUTF16("b"), GURL(), NULL)); | 375 ASSERT_FALSE(model()->CanReplaceKeyword(ASCIIToUTF16("b"), GURL(), NULL)); |
| 381 cloned_url.reset(new TemplateURL(loaded_url->profile(), loaded_url->data())); | 376 cloned_url.reset(new TemplateURL(loaded_url->data())); |
| 382 base::RunLoop().RunUntilIdle(); | 377 base::RunLoop().RunUntilIdle(); |
| 383 test_util_.ResetModel(true); | 378 test_util_.ResetModel(true); |
| 384 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 379 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 385 loaded_url = model()->GetTemplateURLForKeyword(ASCIIToUTF16("b")); | 380 loaded_url = model()->GetTemplateURLForKeyword(ASCIIToUTF16("b")); |
| 386 ASSERT_TRUE(loaded_url != NULL); | 381 ASSERT_TRUE(loaded_url != NULL); |
| 387 AssertEquals(*cloned_url, *loaded_url); | 382 AssertEquals(*cloned_url, *loaded_url); |
| 388 // We changed a TemplateURL in the service, so ensure that the time was | 383 // We changed a TemplateURL in the service, so ensure that the time was |
| 389 // updated. | 384 // updated. |
| 390 ASSERT_EQ(base::Time::FromDoubleT(1337), loaded_url->last_modified()); | 385 ASSERT_EQ(base::Time::FromDoubleT(1337), loaded_url->last_modified()); |
| 391 | 386 |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 405 std::string(), true, "UTF-8", Time(), Time()); | 400 std::string(), true, "UTF-8", Time(), Time()); |
| 406 VerifyObserverCount(1); | 401 VerifyObserverCount(1); |
| 407 | 402 |
| 408 // Test what happens when we try to add a TemplateURL with the same keyword as | 403 // Test what happens when we try to add a TemplateURL with the same keyword as |
| 409 // one in the model. | 404 // one in the model. |
| 410 TemplateURLData data; | 405 TemplateURLData data; |
| 411 data.short_name = ASCIIToUTF16("second"); | 406 data.short_name = ASCIIToUTF16("second"); |
| 412 data.SetKeyword(ASCIIToUTF16("keyword")); | 407 data.SetKeyword(ASCIIToUTF16("keyword")); |
| 413 data.SetURL("http://test2"); | 408 data.SetURL("http://test2"); |
| 414 data.safe_for_autoreplace = false; | 409 data.safe_for_autoreplace = false; |
| 415 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 410 TemplateURL* t_url = new TemplateURL(data); |
| 416 model()->Add(t_url); | 411 model()->Add(t_url); |
| 417 | 412 |
| 418 // Because the old TemplateURL was replaceable and the new one wasn't, the new | 413 // Because the old TemplateURL was replaceable and the new one wasn't, the new |
| 419 // one should have replaced the old. | 414 // one should have replaced the old. |
| 420 VerifyObserverCount(1); | 415 VerifyObserverCount(1); |
| 421 EXPECT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); | 416 EXPECT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); |
| 422 EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name()); | 417 EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name()); |
| 423 EXPECT_EQ(ASCIIToUTF16("keyword"), t_url->keyword()); | 418 EXPECT_EQ(ASCIIToUTF16("keyword"), t_url->keyword()); |
| 424 EXPECT_FALSE(t_url->safe_for_autoreplace()); | 419 EXPECT_FALSE(t_url->safe_for_autoreplace()); |
| 425 | 420 |
| 426 // Now try adding a replaceable TemplateURL. This should just delete the | 421 // Now try adding a replaceable TemplateURL. This should just delete the |
| 427 // passed-in URL. | 422 // passed-in URL. |
| 428 data.short_name = ASCIIToUTF16("third"); | 423 data.short_name = ASCIIToUTF16("third"); |
| 429 data.SetURL("http://test3"); | 424 data.SetURL("http://test3"); |
| 430 data.safe_for_autoreplace = true; | 425 data.safe_for_autoreplace = true; |
| 431 model()->Add(new TemplateURL(test_util_.profile(), data)); | 426 model()->Add(new TemplateURL(data)); |
| 432 VerifyObserverCount(0); | 427 VerifyObserverCount(0); |
| 433 EXPECT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); | 428 EXPECT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); |
| 434 EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name()); | 429 EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name()); |
| 435 EXPECT_EQ(ASCIIToUTF16("keyword"), t_url->keyword()); | 430 EXPECT_EQ(ASCIIToUTF16("keyword"), t_url->keyword()); |
| 436 EXPECT_FALSE(t_url->safe_for_autoreplace()); | 431 EXPECT_FALSE(t_url->safe_for_autoreplace()); |
| 437 | 432 |
| 438 // Now try adding a non-replaceable TemplateURL again. This should uniquify | 433 // Now try adding a non-replaceable TemplateURL again. This should uniquify |
| 439 // the existing entry's keyword. | 434 // the existing entry's keyword. |
| 440 data.short_name = ASCIIToUTF16("fourth"); | 435 data.short_name = ASCIIToUTF16("fourth"); |
| 441 data.SetURL("http://test4"); | 436 data.SetURL("http://test4"); |
| 442 data.safe_for_autoreplace = false; | 437 data.safe_for_autoreplace = false; |
| 443 TemplateURL* t_url2 = new TemplateURL(test_util_.profile(), data); | 438 TemplateURL* t_url2 = new TemplateURL(data); |
| 444 model()->Add(t_url2); | 439 model()->Add(t_url2); |
| 445 VerifyObserverCount(1); | 440 VerifyObserverCount(1); |
| 446 EXPECT_EQ(t_url2, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); | 441 EXPECT_EQ(t_url2, model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); |
| 447 EXPECT_EQ(ASCIIToUTF16("fourth"), t_url2->short_name()); | 442 EXPECT_EQ(ASCIIToUTF16("fourth"), t_url2->short_name()); |
| 448 EXPECT_EQ(ASCIIToUTF16("keyword"), t_url2->keyword()); | 443 EXPECT_EQ(ASCIIToUTF16("keyword"), t_url2->keyword()); |
| 449 EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name()); | 444 EXPECT_EQ(ASCIIToUTF16("second"), t_url->short_name()); |
| 450 EXPECT_EQ(ASCIIToUTF16("test2"), t_url->keyword()); | 445 EXPECT_EQ(ASCIIToUTF16("test2"), t_url->keyword()); |
| 451 } | 446 } |
| 452 | 447 |
| 453 TEST_F(TemplateURLServiceTest, AddExtensionKeyword) { | 448 TEST_F(TemplateURLServiceTest, AddExtensionKeyword) { |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 466 | 461 |
| 467 // Add an extension keyword that conflicts with each of the above three | 462 // Add an extension keyword that conflicts with each of the above three |
| 468 // keywords. | 463 // keywords. |
| 469 TemplateURLData data; | 464 TemplateURLData data; |
| 470 data.short_name = ASCIIToUTF16("test"); | 465 data.short_name = ASCIIToUTF16("test"); |
| 471 data.SetKeyword(ASCIIToUTF16("keyword1")); | 466 data.SetKeyword(ASCIIToUTF16("keyword1")); |
| 472 data.SetURL(std::string(extensions::kExtensionScheme) + "://test4"); | 467 data.SetURL(std::string(extensions::kExtensionScheme) + "://test4"); |
| 473 data.safe_for_autoreplace = false; | 468 data.safe_for_autoreplace = false; |
| 474 | 469 |
| 475 // Both replaceable and non-replaceable keywords should be uniquified. | 470 // Both replaceable and non-replaceable keywords should be uniquified. |
| 476 TemplateURL* extension1 = new TemplateURL(test_util_.profile(), data); | 471 TemplateURL* extension1 = new TemplateURL(data); |
| 477 model()->Add(extension1); | 472 model()->Add(extension1); |
| 478 ASSERT_EQ(extension1, | 473 ASSERT_EQ(extension1, |
| 479 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1"))); | 474 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword1"))); |
| 480 EXPECT_EQ(original1, | 475 EXPECT_EQ(original1, |
| 481 model()->GetTemplateURLForKeyword(ASCIIToUTF16("test1"))); | 476 model()->GetTemplateURLForKeyword(ASCIIToUTF16("test1"))); |
| 482 data.SetKeyword(ASCIIToUTF16("keyword2")); | 477 data.SetKeyword(ASCIIToUTF16("keyword2")); |
| 483 TemplateURL* extension2 = new TemplateURL(test_util_.profile(), data); | 478 TemplateURL* extension2 = new TemplateURL(data); |
| 484 model()->Add(extension2); | 479 model()->Add(extension2); |
| 485 ASSERT_EQ(extension2, | 480 ASSERT_EQ(extension2, |
| 486 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2"))); | 481 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword2"))); |
| 487 EXPECT_EQ(original2, | 482 EXPECT_EQ(original2, |
| 488 model()->GetTemplateURLForKeyword(ASCIIToUTF16("test2"))); | 483 model()->GetTemplateURLForKeyword(ASCIIToUTF16("test2"))); |
| 489 | 484 |
| 490 // They should override extension keywords added earlier. | 485 // They should override extension keywords added earlier. |
| 491 data.SetKeyword(ASCIIToUTF16("keyword3")); | 486 data.SetKeyword(ASCIIToUTF16("keyword3")); |
| 492 TemplateURL* extension3 = new TemplateURL(test_util_.profile(), data); | 487 TemplateURL* extension3 = new TemplateURL(data); |
| 493 model()->Add(extension3); | 488 model()->Add(extension3); |
| 494 ASSERT_EQ(extension3, | 489 ASSERT_EQ(extension3, |
| 495 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword3"))); | 490 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword3"))); |
| 496 EXPECT_EQ(original3, | 491 EXPECT_EQ(original3, |
| 497 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword3_"))); | 492 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword3_"))); |
| 498 } | 493 } |
| 499 | 494 |
| 500 TEST_F(TemplateURLServiceTest, AddSameKeywordWithExtensionPresent) { | 495 TEST_F(TemplateURLServiceTest, AddSameKeywordWithExtensionPresent) { |
| 501 test_util_.VerifyLoad(); | 496 test_util_.VerifyLoad(); |
| 502 | 497 |
| (...skipping 10 matching lines...) Expand all Loading... | |
| 513 "replaceable", "keyword", "http://test1", std::string(), std::string(), | 508 "replaceable", "keyword", "http://test1", std::string(), std::string(), |
| 514 std::string(), true, "UTF-8", Time(), Time()); | 509 std::string(), true, "UTF-8", Time(), Time()); |
| 515 | 510 |
| 516 // Adding another replaceable keyword should remove the existing one, but | 511 // Adding another replaceable keyword should remove the existing one, but |
| 517 // leave the extension as is. | 512 // leave the extension as is. |
| 518 TemplateURLData data; | 513 TemplateURLData data; |
| 519 data.short_name = ASCIIToUTF16("name1"); | 514 data.short_name = ASCIIToUTF16("name1"); |
| 520 data.SetKeyword(ASCIIToUTF16("keyword")); | 515 data.SetKeyword(ASCIIToUTF16("keyword")); |
| 521 data.SetURL("http://test3"); | 516 data.SetURL("http://test3"); |
| 522 data.safe_for_autoreplace = true; | 517 data.safe_for_autoreplace = true; |
| 523 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 518 TemplateURL* t_url = new TemplateURL(data); |
| 524 model()->Add(t_url); | 519 model()->Add(t_url); |
| 525 EXPECT_EQ(extension, | 520 EXPECT_EQ(extension, |
| 526 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword_"))); | 521 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword_"))); |
| 527 EXPECT_TRUE(model()->GetTemplateURLForHost("test1") == NULL); | 522 EXPECT_TRUE(model()->GetTemplateURLForHost("test1") == NULL); |
| 528 EXPECT_EQ(t_url, model()->GetTemplateURLForHost("test3")); | 523 EXPECT_EQ(t_url, model()->GetTemplateURLForHost("test3")); |
| 529 | 524 |
| 530 // Adding a nonreplaceable keyword should remove the existing replaceable | 525 // Adding a nonreplaceable keyword should remove the existing replaceable |
| 531 // keyword. | 526 // keyword. |
| 532 data.short_name = ASCIIToUTF16("name2"); | 527 data.short_name = ASCIIToUTF16("name2"); |
| 533 data.SetURL("http://test4"); | 528 data.SetURL("http://test4"); |
| 534 data.safe_for_autoreplace = false; | 529 data.safe_for_autoreplace = false; |
| 535 TemplateURL* t_url2 = new TemplateURL(test_util_.profile(), data); | 530 TemplateURL* t_url2 = new TemplateURL(data); |
| 536 model()->Add(t_url2); | 531 model()->Add(t_url2); |
| 537 EXPECT_EQ(t_url2, | 532 EXPECT_EQ(t_url2, |
| 538 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); | 533 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword"))); |
| 539 EXPECT_TRUE(model()->GetTemplateURLForHost("test3") == NULL); | 534 EXPECT_TRUE(model()->GetTemplateURLForHost("test3") == NULL); |
| 540 EXPECT_EQ(extension, | 535 EXPECT_EQ(extension, |
| 541 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword_"))); | 536 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword_"))); |
| 542 } | 537 } |
| 543 | 538 |
| 544 TEST_F(TemplateURLServiceTest, GenerateKeyword) { | 539 TEST_F(TemplateURLServiceTest, GenerateKeyword) { |
| 545 ASSERT_EQ(ASCIIToUTF16("foo"), | 540 ASSERT_EQ(ASCIIToUTF16("foo"), |
| 546 TemplateURLService::GenerateKeyword(GURL("http://foo"))); | 541 TemplateURLService::GenerateKeyword(GURL("http://foo"))); |
| 547 // www. should be stripped. | 542 // www. should be stripped. |
| 548 ASSERT_EQ(ASCIIToUTF16("foo"), | 543 ASSERT_EQ(ASCIIToUTF16("foo"), |
| 549 TemplateURLService::GenerateKeyword(GURL("http://www.foo"))); | 544 TemplateURLService::GenerateKeyword(GURL("http://www.foo"))); |
| 550 // Make sure we don't get a trailing '/'. | 545 // Make sure we don't get a trailing '/'. |
| 551 ASSERT_EQ(ASCIIToUTF16("blah"), | 546 ASSERT_EQ(ASCIIToUTF16("blah"), |
| 552 TemplateURLService::GenerateKeyword(GURL("http://blah/"))); | 547 TemplateURLService::GenerateKeyword(GURL("http://blah/"))); |
| 553 // Don't generate the empty string. | 548 // Don't generate the empty string. |
| 554 ASSERT_EQ(ASCIIToUTF16("www"), | 549 ASSERT_EQ(ASCIIToUTF16("www"), |
| 555 TemplateURLService::GenerateKeyword(GURL("http://www."))); | 550 TemplateURLService::GenerateKeyword(GURL("http://www."))); |
| 556 } | 551 } |
| 557 | 552 |
| 558 TEST_F(TemplateURLServiceTest, GenerateSearchURL) { | 553 TEST_F(TemplateURLServiceTest, GenerateSearchURL) { |
| 559 TestGenerateSearchURL(NULL); | |
| 560 } | |
| 561 | |
| 562 TEST_F(TemplateURLServiceTest, GenerateSearchURLUsingTermsData) { | |
| 563 // Run the test for GenerateSearchURLUsingTermsData on the "IO" thread and | |
| 564 // wait for it to finish. | |
| 565 TestSearchTermsData search_terms_data("http://google.com/"); | 554 TestSearchTermsData search_terms_data("http://google.com/"); |
| 566 TestGenerateSearchURL(&search_terms_data); | 555 TestGenerateSearchURL(search_terms_data); |
|
Peter Kasting
2014/06/17 21:07:54
Nit: If this is now the only caller of this functi
hashimoto
2014/06/17 21:58:03
Done.
| |
| 567 } | 556 } |
| 568 | 557 |
| 569 TEST_F(TemplateURLServiceTest, ClearBrowsingData_Keywords) { | 558 TEST_F(TemplateURLServiceTest, ClearBrowsingData_Keywords) { |
| 570 Time now = Time::Now(); | 559 Time now = Time::Now(); |
| 571 TimeDelta one_day = TimeDelta::FromDays(1); | 560 TimeDelta one_day = TimeDelta::FromDays(1); |
| 572 Time month_ago = now - TimeDelta::FromDays(30); | 561 Time month_ago = now - TimeDelta::FromDays(30); |
| 573 | 562 |
| 574 // Nothing has been added. | 563 // Nothing has been added. |
| 575 EXPECT_EQ(0U, model()->GetTemplateURLs().size()); | 564 EXPECT_EQ(0U, model()->GetTemplateURLs().size()); |
| 576 | 565 |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 684 // Add a new TemplateURL. | 673 // Add a new TemplateURL. |
| 685 test_util_.VerifyLoad(); | 674 test_util_.VerifyLoad(); |
| 686 const size_t initial_count = model()->GetTemplateURLs().size(); | 675 const size_t initial_count = model()->GetTemplateURLs().size(); |
| 687 TemplateURLData data; | 676 TemplateURLData data; |
| 688 data.short_name = ASCIIToUTF16("google"); | 677 data.short_name = ASCIIToUTF16("google"); |
| 689 data.SetKeyword(ASCIIToUTF16("keyword")); | 678 data.SetKeyword(ASCIIToUTF16("keyword")); |
| 690 data.SetURL("http://www.google.com/foo/bar"); | 679 data.SetURL("http://www.google.com/foo/bar"); |
| 691 data.favicon_url = GURL("http://favicon.url"); | 680 data.favicon_url = GURL("http://favicon.url"); |
| 692 data.date_created = Time::FromTimeT(100); | 681 data.date_created = Time::FromTimeT(100); |
| 693 data.last_modified = Time::FromTimeT(100); | 682 data.last_modified = Time::FromTimeT(100); |
| 694 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 683 TemplateURL* t_url = new TemplateURL(data); |
| 695 model()->Add(t_url); | 684 model()->Add(t_url); |
| 696 | 685 |
| 697 VerifyObserverCount(1); | 686 VerifyObserverCount(1); |
| 698 base::RunLoop().RunUntilIdle(); | 687 base::RunLoop().RunUntilIdle(); |
| 699 | 688 |
| 700 StrictMock<base::MockTimeProvider> mock_time; | 689 StrictMock<base::MockTimeProvider> mock_time; |
| 701 model()->set_time_provider(&base::MockTimeProvider::StaticNow); | 690 model()->set_time_provider(&base::MockTimeProvider::StaticNow); |
| 702 EXPECT_CALL(mock_time, Now()).WillOnce(Return(base::Time::FromDoubleT(1337))); | 691 EXPECT_CALL(mock_time, Now()).WillOnce(Return(base::Time::FromDoubleT(1337))); |
| 703 | 692 |
| 704 // Reset the short name, keyword, url and make sure it takes. | 693 // Reset the short name, keyword, url and make sure it takes. |
| 705 const base::string16 new_short_name(ASCIIToUTF16("a")); | 694 const base::string16 new_short_name(ASCIIToUTF16("a")); |
| 706 const base::string16 new_keyword(ASCIIToUTF16("b")); | 695 const base::string16 new_keyword(ASCIIToUTF16("b")); |
| 707 const std::string new_url("c"); | 696 const std::string new_url("c"); |
| 708 model()->ResetTemplateURL(t_url, new_short_name, new_keyword, new_url); | 697 model()->ResetTemplateURL(t_url, new_short_name, new_keyword, new_url); |
| 709 ASSERT_EQ(new_short_name, t_url->short_name()); | 698 ASSERT_EQ(new_short_name, t_url->short_name()); |
| 710 ASSERT_EQ(new_keyword, t_url->keyword()); | 699 ASSERT_EQ(new_keyword, t_url->keyword()); |
| 711 ASSERT_EQ(new_url, t_url->url()); | 700 ASSERT_EQ(new_url, t_url->url()); |
| 712 | 701 |
| 713 // Make sure the mappings in the model were updated. | 702 // Make sure the mappings in the model were updated. |
| 714 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(new_keyword)); | 703 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(new_keyword)); |
| 715 ASSERT_TRUE( | 704 ASSERT_TRUE( |
| 716 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")) == NULL); | 705 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")) == NULL); |
| 717 | 706 |
| 718 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(), | 707 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data())); |
| 719 t_url->data())); | |
| 720 | 708 |
| 721 // Reload the model from the database and make sure the change took. | 709 // Reload the model from the database and make sure the change took. |
| 722 test_util_.ResetModel(true); | 710 test_util_.ResetModel(true); |
| 723 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 711 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 724 const TemplateURL* read_url = model()->GetTemplateURLForKeyword(new_keyword); | 712 const TemplateURL* read_url = model()->GetTemplateURLForKeyword(new_keyword); |
| 725 ASSERT_TRUE(read_url); | 713 ASSERT_TRUE(read_url); |
| 726 AssertEquals(*cloned_url, *read_url); | 714 AssertEquals(*cloned_url, *read_url); |
| 727 ASSERT_EQ(base::Time::FromDoubleT(1337), read_url->last_modified()); | 715 ASSERT_EQ(base::Time::FromDoubleT(1337), read_url->last_modified()); |
| 728 } | 716 } |
| 729 | 717 |
| 730 TEST_F(TemplateURLServiceTest, DefaultSearchProvider) { | 718 TEST_F(TemplateURLServiceTest, DefaultSearchProvider) { |
| 731 // Add a new TemplateURL. | 719 // Add a new TemplateURL. |
| 732 test_util_.VerifyLoad(); | 720 test_util_.VerifyLoad(); |
| 733 const size_t initial_count = model()->GetTemplateURLs().size(); | 721 const size_t initial_count = model()->GetTemplateURLs().size(); |
| 734 TemplateURL* t_url = AddKeywordWithDate( | 722 TemplateURL* t_url = AddKeywordWithDate( |
| 735 "name1", "key1", "http://foo1/{searchTerms}", "http://sugg1", | 723 "name1", "key1", "http://foo1/{searchTerms}", "http://sugg1", |
| 736 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); | 724 std::string(), "http://icon1", true, "UTF-8;UTF-16", Time(), Time()); |
| 737 test_util_.ResetObserverCount(); | 725 test_util_.ResetObserverCount(); |
| 738 | 726 |
| 739 model()->SetUserSelectedDefaultSearchProvider(t_url); | 727 model()->SetUserSelectedDefaultSearchProvider(t_url); |
| 740 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); | 728 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); |
| 741 ASSERT_TRUE(t_url->safe_for_autoreplace()); | 729 ASSERT_TRUE(t_url->safe_for_autoreplace()); |
| 742 ASSERT_TRUE(t_url->show_in_default_list()); | 730 ASSERT_TRUE(t_url->show_in_default_list()); |
| 743 | 731 |
| 744 // Setting the default search provider should have caused notification. | 732 // Setting the default search provider should have caused notification. |
| 745 VerifyObserverCount(1); | 733 VerifyObserverCount(1); |
| 746 base::RunLoop().RunUntilIdle(); | 734 base::RunLoop().RunUntilIdle(); |
| 747 | 735 |
| 748 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(), | 736 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data())); |
| 749 t_url->data())); | |
| 750 | 737 |
| 751 // Make sure when we reload we get a default search provider. | 738 // Make sure when we reload we get a default search provider. |
| 752 test_util_.ResetModel(true); | 739 test_util_.ResetModel(true); |
| 753 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 740 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 754 ASSERT_TRUE(model()->GetDefaultSearchProvider()); | 741 ASSERT_TRUE(model()->GetDefaultSearchProvider()); |
| 755 AssertEquals(*cloned_url, *model()->GetDefaultSearchProvider()); | 742 AssertEquals(*cloned_url, *model()->GetDefaultSearchProvider()); |
| 756 } | 743 } |
| 757 | 744 |
| 758 TEST_F(TemplateURLServiceTest, CantReplaceWithSameKeyword) { | 745 TEST_F(TemplateURLServiceTest, CantReplaceWithSameKeyword) { |
| 759 test_util_.ChangeModelToLoadState(); | 746 test_util_.ChangeModelToLoadState(); |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 810 test_util_.VerifyLoad(); | 797 test_util_.VerifyLoad(); |
| 811 | 798 |
| 812 TemplateURLData data; | 799 TemplateURLData data; |
| 813 data.short_name = ASCIIToUTF16("a"); | 800 data.short_name = ASCIIToUTF16("a"); |
| 814 data.safe_for_autoreplace = true; | 801 data.safe_for_autoreplace = true; |
| 815 data.SetURL("http://url/{searchTerms}"); | 802 data.SetURL("http://url/{searchTerms}"); |
| 816 data.suggestions_url = "http://url2"; | 803 data.suggestions_url = "http://url2"; |
| 817 data.instant_url = "http://instant"; | 804 data.instant_url = "http://instant"; |
| 818 data.date_created = Time::FromTimeT(100); | 805 data.date_created = Time::FromTimeT(100); |
| 819 data.last_modified = Time::FromTimeT(100); | 806 data.last_modified = Time::FromTimeT(100); |
| 820 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 807 TemplateURL* t_url = new TemplateURL(data); |
| 821 model()->Add(t_url); | 808 model()->Add(t_url); |
| 822 const TemplateURLID id = t_url->id(); | 809 const TemplateURLID id = t_url->id(); |
| 823 | 810 |
| 824 model()->SetUserSelectedDefaultSearchProvider(t_url); | 811 model()->SetUserSelectedDefaultSearchProvider(t_url); |
| 825 base::RunLoop().RunUntilIdle(); | 812 base::RunLoop().RunUntilIdle(); |
| 826 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(), | 813 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data())); |
| 827 t_url->data())); | |
| 828 | 814 |
| 829 // Reset the model and don't load it. The template url we set as the default | 815 // Reset the model and don't load it. The template url we set as the default |
| 830 // should be pulled from prefs now. | 816 // should be pulled from prefs now. |
| 831 test_util_.ResetModel(false); | 817 test_util_.ResetModel(false); |
| 832 | 818 |
| 833 // NOTE: This doesn't use AssertEquals as only a subset of the TemplateURLs | 819 // NOTE: This doesn't use AssertEquals as only a subset of the TemplateURLs |
| 834 // value are persisted to prefs. | 820 // value are persisted to prefs. |
| 835 const TemplateURL* default_turl = model()->GetDefaultSearchProvider(); | 821 const TemplateURL* default_turl = model()->GetDefaultSearchProvider(); |
| 836 ASSERT_TRUE(default_turl); | 822 ASSERT_TRUE(default_turl); |
| 837 EXPECT_EQ(ASCIIToUTF16("a"), default_turl->short_name()); | 823 EXPECT_EQ(ASCIIToUTF16("a"), default_turl->short_name()); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 878 model()->RegisterOmniboxKeyword("abcdefg", "extension_name", "bing.com"); | 864 model()->RegisterOmniboxKeyword("abcdefg", "extension_name", "bing.com"); |
| 879 EXPECT_TRUE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("bing.com"))); | 865 EXPECT_TRUE(model()->GetTemplateURLForKeyword(ASCIIToUTF16("bing.com"))); |
| 880 | 866 |
| 881 model()->RepairPrepopulatedSearchEngines(); | 867 model()->RepairPrepopulatedSearchEngines(); |
| 882 | 868 |
| 883 // Google is default. | 869 // Google is default. |
| 884 ASSERT_EQ(google, model()->GetDefaultSearchProvider()); | 870 ASSERT_EQ(google, model()->GetDefaultSearchProvider()); |
| 885 // The keyword wasn't reverted. | 871 // The keyword wasn't reverted. |
| 886 EXPECT_EQ(ASCIIToUTF16("trash"), google->short_name()); | 872 EXPECT_EQ(ASCIIToUTF16("trash"), google->short_name()); |
| 887 EXPECT_EQ("www.google.com", | 873 EXPECT_EQ("www.google.com", |
| 888 TemplateURLService::GenerateSearchURL(google).host()); | 874 TemplateURLService::GenerateSearchURL( |
| 875 google, model()->search_terms_data()).host()); | |
| 889 | 876 |
| 890 // Bing was repaired. | 877 // Bing was repaired. |
| 891 bing = model()->GetTemplateURLForKeyword(ASCIIToUTF16("bing.com")); | 878 bing = model()->GetTemplateURLForKeyword(ASCIIToUTF16("bing.com")); |
| 892 ASSERT_TRUE(bing); | 879 ASSERT_TRUE(bing); |
| 893 EXPECT_EQ(TemplateURL::NORMAL, bing->GetType()); | 880 EXPECT_EQ(TemplateURL::NORMAL, bing->GetType()); |
| 894 | 881 |
| 895 // User search engine is preserved. | 882 // User search engine is preserved. |
| 896 EXPECT_EQ(user_dse, model()->GetTemplateURLForHost("www.goo.com")); | 883 EXPECT_EQ(user_dse, model()->GetTemplateURLForHost("www.goo.com")); |
| 897 EXPECT_EQ(ASCIIToUTF16("google.com"), user_dse->keyword()); | 884 EXPECT_EQ(ASCIIToUTF16("google.com"), user_dse->keyword()); |
| 898 } | 885 } |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 915 // Verify that the default manager we are getting is the managed one. | 902 // Verify that the default manager we are getting is the managed one. |
| 916 TemplateURLData data; | 903 TemplateURLData data; |
| 917 data.short_name = ASCIIToUTF16(kName); | 904 data.short_name = ASCIIToUTF16(kName); |
| 918 data.SetKeyword(ASCIIToUTF16(kKeyword)); | 905 data.SetKeyword(ASCIIToUTF16(kKeyword)); |
| 919 data.SetURL(kSearchURL); | 906 data.SetURL(kSearchURL); |
| 920 data.favicon_url = GURL(kIconURL); | 907 data.favicon_url = GURL(kIconURL); |
| 921 data.show_in_default_list = true; | 908 data.show_in_default_list = true; |
| 922 base::SplitString(kEncodings, ';', &data.input_encodings); | 909 base::SplitString(kEncodings, ';', &data.input_encodings); |
| 923 data.alternate_urls.push_back(kAlternateURL); | 910 data.alternate_urls.push_back(kAlternateURL); |
| 924 data.search_terms_replacement_key = kSearchTermsReplacementKey; | 911 data.search_terms_replacement_key = kSearchTermsReplacementKey; |
| 925 scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL( | 912 scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); |
| 926 test_util_.profile(), data)); | |
| 927 EXPECT_TRUE(model()->is_default_search_managed()); | 913 EXPECT_TRUE(model()->is_default_search_managed()); |
| 928 const TemplateURL* actual_managed_default = | 914 const TemplateURL* actual_managed_default = |
| 929 model()->GetDefaultSearchProvider(); | 915 model()->GetDefaultSearchProvider(); |
| 930 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 916 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 931 | 917 |
| 932 // The following call has no effect on the managed search engine. | 918 // The following call has no effect on the managed search engine. |
| 933 model()->RepairPrepopulatedSearchEngines(); | 919 model()->RepairPrepopulatedSearchEngines(); |
| 934 | 920 |
| 935 EXPECT_TRUE(model()->is_default_search_managed()); | 921 EXPECT_TRUE(model()->is_default_search_managed()); |
| 936 actual_managed_default = model()->GetDefaultSearchProvider(); | 922 actual_managed_default = model()->GetDefaultSearchProvider(); |
| (...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1123 | 1109 |
| 1124 // Make sure that load routine doesn't delete prepopulated engines that no | 1110 // Make sure that load routine doesn't delete prepopulated engines that no |
| 1125 // longer exist in the prepopulate data if it has been modified by the user. | 1111 // longer exist in the prepopulate data if it has been modified by the user. |
| 1126 TEST_F(TemplateURLServiceTest, LoadRetainsModifiedProvider) { | 1112 TEST_F(TemplateURLServiceTest, LoadRetainsModifiedProvider) { |
| 1127 // Create a preloaded template url and add it to a loaded model. | 1113 // Create a preloaded template url and add it to a loaded model. |
| 1128 TemplateURL* t_url = CreatePreloadedTemplateURL(false, 999999); | 1114 TemplateURL* t_url = CreatePreloadedTemplateURL(false, 999999); |
| 1129 test_util_.ChangeModelToLoadState(); | 1115 test_util_.ChangeModelToLoadState(); |
| 1130 model()->Add(t_url); | 1116 model()->Add(t_url); |
| 1131 | 1117 |
| 1132 // Do the copy after t_url is added so that the id is set. | 1118 // Do the copy after t_url is added so that the id is set. |
| 1133 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(), | 1119 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data())); |
| 1134 t_url->data())); | |
| 1135 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); | 1120 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); |
| 1136 | 1121 |
| 1137 // Wait for any saves to finish. | 1122 // Wait for any saves to finish. |
| 1138 base::RunLoop().RunUntilIdle(); | 1123 base::RunLoop().RunUntilIdle(); |
| 1139 | 1124 |
| 1140 // Ensure that merging won't clear it if the user has edited it. | 1125 // Ensure that merging won't clear it if the user has edited it. |
| 1141 test_util_.ResetModel(true); | 1126 test_util_.ResetModel(true); |
| 1142 const TemplateURL* url_for_unittest = | 1127 const TemplateURL* url_for_unittest = |
| 1143 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")); | 1128 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")); |
| 1144 ASSERT_TRUE(url_for_unittest != NULL); | 1129 ASSERT_TRUE(url_for_unittest != NULL); |
| 1145 AssertEquals(*cloned_url, *url_for_unittest); | 1130 AssertEquals(*cloned_url, *url_for_unittest); |
| 1146 | 1131 |
| 1147 // Wait for any saves to finish. | 1132 // Wait for any saves to finish. |
| 1148 base::RunLoop().RunUntilIdle(); | 1133 base::RunLoop().RunUntilIdle(); |
| 1149 | 1134 |
| 1150 // Reload the model to verify that save/reload retains the item. | 1135 // Reload the model to verify that save/reload retains the item. |
| 1151 test_util_.ResetModel(true); | 1136 test_util_.ResetModel(true); |
| 1152 ASSERT_TRUE( | 1137 ASSERT_TRUE( |
| 1153 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) != NULL); | 1138 model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest")) != NULL); |
| 1154 } | 1139 } |
| 1155 | 1140 |
| 1156 // Make sure that load routine doesn't delete | 1141 // Make sure that load routine doesn't delete |
| 1157 // prepopulated engines that no longer exist in the prepopulate data if | 1142 // prepopulated engines that no longer exist in the prepopulate data if |
| 1158 // it has been modified by the user. | 1143 // it has been modified by the user. |
| 1159 TEST_F(TemplateURLServiceTest, LoadSavesPrepopulatedDefaultSearchProvider) { | 1144 TEST_F(TemplateURLServiceTest, LoadSavesPrepopulatedDefaultSearchProvider) { |
| 1160 test_util_.VerifyLoad(); | 1145 test_util_.VerifyLoad(); |
| 1161 // Verify that the default search provider is set to something. | 1146 // Verify that the default search provider is set to something. |
| 1162 TemplateURL* default_search = model()->GetDefaultSearchProvider(); | 1147 TemplateURL* default_search = model()->GetDefaultSearchProvider(); |
| 1163 ASSERT_TRUE(default_search != NULL); | 1148 ASSERT_TRUE(default_search != NULL); |
| 1164 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(default_search->profile(), | 1149 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(default_search->data())); |
| 1165 default_search->data())); | |
| 1166 | 1150 |
| 1167 // Wait for any saves to finish. | 1151 // Wait for any saves to finish. |
| 1168 base::RunLoop().RunUntilIdle(); | 1152 base::RunLoop().RunUntilIdle(); |
| 1169 | 1153 |
| 1170 // Reload the model and check that the default search provider | 1154 // Reload the model and check that the default search provider |
| 1171 // was properly saved. | 1155 // was properly saved. |
| 1172 test_util_.ResetModel(true); | 1156 test_util_.ResetModel(true); |
| 1173 default_search = model()->GetDefaultSearchProvider(); | 1157 default_search = model()->GetDefaultSearchProvider(); |
| 1174 ASSERT_TRUE(default_search != NULL); | 1158 ASSERT_TRUE(default_search != NULL); |
| 1175 AssertEquals(*cloned_url, *default_search); | 1159 AssertEquals(*cloned_url, *default_search); |
| 1176 } | 1160 } |
| 1177 | 1161 |
| 1178 // Make sure that the load routine doesn't delete | 1162 // Make sure that the load routine doesn't delete |
| 1179 // prepopulated engines that no longer exist in the prepopulate data if | 1163 // prepopulated engines that no longer exist in the prepopulate data if |
| 1180 // it is the default search provider. | 1164 // it is the default search provider. |
| 1181 TEST_F(TemplateURLServiceTest, LoadRetainsDefaultProvider) { | 1165 TEST_F(TemplateURLServiceTest, LoadRetainsDefaultProvider) { |
| 1182 // Set the default search provider to a preloaded template url which | 1166 // Set the default search provider to a preloaded template url which |
| 1183 // is not in the current set of preloaded template urls and save | 1167 // is not in the current set of preloaded template urls and save |
| 1184 // the result. | 1168 // the result. |
| 1185 TemplateURL* t_url = CreatePreloadedTemplateURL(true, 999999); | 1169 TemplateURL* t_url = CreatePreloadedTemplateURL(true, 999999); |
| 1186 test_util_.ChangeModelToLoadState(); | 1170 test_util_.ChangeModelToLoadState(); |
| 1187 model()->Add(t_url); | 1171 model()->Add(t_url); |
| 1188 model()->SetUserSelectedDefaultSearchProvider(t_url); | 1172 model()->SetUserSelectedDefaultSearchProvider(t_url); |
| 1189 // Do the copy after t_url is added and set as default so that its | 1173 // Do the copy after t_url is added and set as default so that its |
| 1190 // internal state is correct. | 1174 // internal state is correct. |
| 1191 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->profile(), | 1175 scoped_ptr<TemplateURL> cloned_url(new TemplateURL(t_url->data())); |
| 1192 t_url->data())); | |
| 1193 | 1176 |
| 1194 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); | 1177 ASSERT_EQ(t_url, model()->GetTemplateURLForKeyword(ASCIIToUTF16("unittest"))); |
| 1195 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); | 1178 ASSERT_EQ(t_url, model()->GetDefaultSearchProvider()); |
| 1196 base::RunLoop().RunUntilIdle(); | 1179 base::RunLoop().RunUntilIdle(); |
| 1197 | 1180 |
| 1198 // Ensure that merging won't clear the prepopulated template url | 1181 // Ensure that merging won't clear the prepopulated template url |
| 1199 // which is no longer present if it's the default engine. | 1182 // which is no longer present if it's the default engine. |
| 1200 test_util_.ResetModel(true); | 1183 test_util_.ResetModel(true); |
| 1201 { | 1184 { |
| 1202 const TemplateURL* keyword_url = | 1185 const TemplateURL* keyword_url = |
| (...skipping 97 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1300 // Verify that the default manager we are getting is the managed one. | 1283 // Verify that the default manager we are getting is the managed one. |
| 1301 TemplateURLData data; | 1284 TemplateURLData data; |
| 1302 data.short_name = ASCIIToUTF16(kName); | 1285 data.short_name = ASCIIToUTF16(kName); |
| 1303 data.SetKeyword(ASCIIToUTF16(kKeyword)); | 1286 data.SetKeyword(ASCIIToUTF16(kKeyword)); |
| 1304 data.SetURL(kSearchURL); | 1287 data.SetURL(kSearchURL); |
| 1305 data.favicon_url = GURL(kIconURL); | 1288 data.favicon_url = GURL(kIconURL); |
| 1306 data.show_in_default_list = true; | 1289 data.show_in_default_list = true; |
| 1307 base::SplitString(kEncodings, ';', &data.input_encodings); | 1290 base::SplitString(kEncodings, ';', &data.input_encodings); |
| 1308 data.alternate_urls.push_back(kAlternateURL); | 1291 data.alternate_urls.push_back(kAlternateURL); |
| 1309 data.search_terms_replacement_key = kSearchTermsReplacementKey; | 1292 data.search_terms_replacement_key = kSearchTermsReplacementKey; |
| 1310 Profile* profile = test_util_.profile(); | 1293 scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL(data)); |
| 1311 scoped_ptr<TemplateURL> expected_managed_default1(new TemplateURL(profile, | |
| 1312 data)); | |
| 1313 const TemplateURL* actual_managed_default = | 1294 const TemplateURL* actual_managed_default = |
| 1314 model()->GetDefaultSearchProvider(); | 1295 model()->GetDefaultSearchProvider(); |
| 1315 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); | 1296 ExpectSimilar(expected_managed_default1.get(), actual_managed_default); |
| 1316 EXPECT_TRUE(actual_managed_default->show_in_default_list()); | 1297 EXPECT_TRUE(actual_managed_default->show_in_default_list()); |
| 1317 | 1298 |
| 1318 // Update the managed preference and check that the model has changed. | 1299 // Update the managed preference and check that the model has changed. |
| 1319 const char kNewName[] = "test2"; | 1300 const char kNewName[] = "test2"; |
| 1320 const char kNewKeyword[] = "other.com"; | 1301 const char kNewKeyword[] = "other.com"; |
| 1321 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; | 1302 const char kNewSearchURL[] = "http://other.com/search?t={searchTerms}"; |
| 1322 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; | 1303 const char kNewSuggestURL[] = "http://other.com/suggest?t={searchTerms}"; |
| 1323 test_util_.SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword, | 1304 test_util_.SetManagedDefaultSearchPreferences(true, kNewName, kNewKeyword, |
| 1324 kNewSearchURL, kNewSuggestURL, std::string(), std::string(), | 1305 kNewSearchURL, kNewSuggestURL, std::string(), std::string(), |
| 1325 std::string(), std::string()); | 1306 std::string(), std::string()); |
| 1326 VerifyObserverFired(); | 1307 VerifyObserverFired(); |
| 1327 EXPECT_TRUE(model()->is_default_search_managed()); | 1308 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1328 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); | 1309 EXPECT_EQ(initial_count + 2, model()->GetTemplateURLs().size()); |
| 1329 | 1310 |
| 1330 // Verify that the default manager we are now getting is the correct one. | 1311 // Verify that the default manager we are now getting is the correct one. |
| 1331 TemplateURLData data2; | 1312 TemplateURLData data2; |
| 1332 data2.short_name = ASCIIToUTF16(kNewName); | 1313 data2.short_name = ASCIIToUTF16(kNewName); |
| 1333 data2.SetKeyword(ASCIIToUTF16(kNewKeyword)); | 1314 data2.SetKeyword(ASCIIToUTF16(kNewKeyword)); |
| 1334 data2.SetURL(kNewSearchURL); | 1315 data2.SetURL(kNewSearchURL); |
| 1335 data2.suggestions_url = kNewSuggestURL; | 1316 data2.suggestions_url = kNewSuggestURL; |
| 1336 data2.show_in_default_list = true; | 1317 data2.show_in_default_list = true; |
| 1337 scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL(profile, | 1318 scoped_ptr<TemplateURL> expected_managed_default2(new TemplateURL(data2)); |
| 1338 data2)); | |
| 1339 actual_managed_default = model()->GetDefaultSearchProvider(); | 1319 actual_managed_default = model()->GetDefaultSearchProvider(); |
| 1340 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); | 1320 ExpectSimilar(expected_managed_default2.get(), actual_managed_default); |
| 1341 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); | 1321 EXPECT_EQ(actual_managed_default->show_in_default_list(), true); |
| 1342 | 1322 |
| 1343 // Remove all the managed prefs and check that we are no longer managed. | 1323 // Remove all the managed prefs and check that we are no longer managed. |
| 1344 test_util_.RemoveManagedDefaultSearchPreferences(); | 1324 test_util_.RemoveManagedDefaultSearchPreferences(); |
| 1345 VerifyObserverFired(); | 1325 VerifyObserverFired(); |
| 1346 EXPECT_FALSE(model()->is_default_search_managed()); | 1326 EXPECT_FALSE(model()->is_default_search_managed()); |
| 1347 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1327 EXPECT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 1348 | 1328 |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1402 TEST_F(TemplateURLServiceTest, PatchEmptySyncGUID) { | 1382 TEST_F(TemplateURLServiceTest, PatchEmptySyncGUID) { |
| 1403 // Add a new TemplateURL. | 1383 // Add a new TemplateURL. |
| 1404 test_util_.VerifyLoad(); | 1384 test_util_.VerifyLoad(); |
| 1405 const size_t initial_count = model()->GetTemplateURLs().size(); | 1385 const size_t initial_count = model()->GetTemplateURLs().size(); |
| 1406 | 1386 |
| 1407 TemplateURLData data; | 1387 TemplateURLData data; |
| 1408 data.short_name = ASCIIToUTF16("google"); | 1388 data.short_name = ASCIIToUTF16("google"); |
| 1409 data.SetKeyword(ASCIIToUTF16("keyword")); | 1389 data.SetKeyword(ASCIIToUTF16("keyword")); |
| 1410 data.SetURL("http://www.google.com/foo/bar"); | 1390 data.SetURL("http://www.google.com/foo/bar"); |
| 1411 data.sync_guid.clear(); | 1391 data.sync_guid.clear(); |
| 1412 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 1392 TemplateURL* t_url = new TemplateURL(data); |
| 1413 model()->Add(t_url); | 1393 model()->Add(t_url); |
| 1414 | 1394 |
| 1415 VerifyObserverCount(1); | 1395 VerifyObserverCount(1); |
| 1416 base::RunLoop().RunUntilIdle(); | 1396 base::RunLoop().RunUntilIdle(); |
| 1417 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1397 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 1418 | 1398 |
| 1419 // Reload the model to verify it was actually saved to the database and | 1399 // Reload the model to verify it was actually saved to the database and |
| 1420 // assigned a new GUID when brought back. | 1400 // assigned a new GUID when brought back. |
| 1421 test_util_.ResetModel(true); | 1401 test_util_.ResetModel(true); |
| 1422 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1402 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 1439 data.SetURL("http://www.google.com/foo/bar"); | 1419 data.SetURL("http://www.google.com/foo/bar"); |
| 1440 std::vector<std::string> encodings; | 1420 std::vector<std::string> encodings; |
| 1441 data.input_encodings.push_back("UTF-8"); | 1421 data.input_encodings.push_back("UTF-8"); |
| 1442 data.input_encodings.push_back("UTF-8"); | 1422 data.input_encodings.push_back("UTF-8"); |
| 1443 data.input_encodings.push_back("UTF-16"); | 1423 data.input_encodings.push_back("UTF-16"); |
| 1444 data.input_encodings.push_back("UTF-8"); | 1424 data.input_encodings.push_back("UTF-8"); |
| 1445 data.input_encodings.push_back("Big5"); | 1425 data.input_encodings.push_back("Big5"); |
| 1446 data.input_encodings.push_back("UTF-16"); | 1426 data.input_encodings.push_back("UTF-16"); |
| 1447 data.input_encodings.push_back("Big5"); | 1427 data.input_encodings.push_back("Big5"); |
| 1448 data.input_encodings.push_back("Windows-1252"); | 1428 data.input_encodings.push_back("Windows-1252"); |
| 1449 TemplateURL* t_url = new TemplateURL(test_util_.profile(), data); | 1429 TemplateURL* t_url = new TemplateURL(data); |
| 1450 model()->Add(t_url); | 1430 model()->Add(t_url); |
| 1451 | 1431 |
| 1452 VerifyObserverCount(1); | 1432 VerifyObserverCount(1); |
| 1453 base::RunLoop().RunUntilIdle(); | 1433 base::RunLoop().RunUntilIdle(); |
| 1454 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); | 1434 ASSERT_EQ(initial_count + 1, model()->GetTemplateURLs().size()); |
| 1455 const TemplateURL* loaded_url = | 1435 const TemplateURL* loaded_url = |
| 1456 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); | 1436 model()->GetTemplateURLForKeyword(ASCIIToUTF16("keyword")); |
| 1457 ASSERT_TRUE(loaded_url != NULL); | 1437 ASSERT_TRUE(loaded_url != NULL); |
| 1458 EXPECT_EQ(8U, loaded_url->input_encodings().size()); | 1438 EXPECT_EQ(8U, loaded_url->input_encodings().size()); |
| 1459 | 1439 |
| (...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1545 // Verify that the default manager we are getting is the managed one. | 1525 // Verify that the default manager we are getting is the managed one. |
| 1546 TemplateURLData data; | 1526 TemplateURLData data; |
| 1547 data.short_name = ASCIIToUTF16(kName); | 1527 data.short_name = ASCIIToUTF16(kName); |
| 1548 data.SetKeyword(ASCIIToUTF16(kKeyword)); | 1528 data.SetKeyword(ASCIIToUTF16(kKeyword)); |
| 1549 data.SetURL(kSearchURL); | 1529 data.SetURL(kSearchURL); |
| 1550 data.favicon_url = GURL(kIconURL); | 1530 data.favicon_url = GURL(kIconURL); |
| 1551 data.show_in_default_list = true; | 1531 data.show_in_default_list = true; |
| 1552 base::SplitString(kEncodings, ';', &data.input_encodings); | 1532 base::SplitString(kEncodings, ';', &data.input_encodings); |
| 1553 data.alternate_urls.push_back(kAlternateURL); | 1533 data.alternate_urls.push_back(kAlternateURL); |
| 1554 data.search_terms_replacement_key = kSearchTermsReplacementKey; | 1534 data.search_terms_replacement_key = kSearchTermsReplacementKey; |
| 1555 scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL( | 1535 scoped_ptr<TemplateURL> expected_managed_default(new TemplateURL(data)); |
| 1556 test_util_.profile(), data)); | |
| 1557 EXPECT_TRUE(model()->is_default_search_managed()); | 1536 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1558 const TemplateURL* actual_managed_default = | 1537 const TemplateURL* actual_managed_default = |
| 1559 model()->GetDefaultSearchProvider(); | 1538 model()->GetDefaultSearchProvider(); |
| 1560 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1539 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 1561 | 1540 |
| 1562 TemplateURL* ext_dse = CreateKeywordWithDate( | 1541 TemplateURL* ext_dse = CreateKeywordWithDate( |
| 1563 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", | 1542 model(), "ext1", "ext1", "http://www.ext1.com/s?q={searchTerms}", |
| 1564 std::string(), std::string(), std::string(), | 1543 std::string(), std::string(), std::string(), |
| 1565 true, true, "UTF-8", Time(), Time()); | 1544 true, true, "UTF-8", Time(), Time()); |
| 1566 scoped_ptr<AssociatedExtensionInfo> extension_info( | 1545 scoped_ptr<AssociatedExtensionInfo> extension_info( |
| 1567 new AssociatedExtensionInfo); | 1546 new AssociatedExtensionInfo); |
| 1568 extension_info->wants_to_be_default_engine = true; | 1547 extension_info->wants_to_be_default_engine = true; |
| 1569 extension_info->extension_id = "ext1"; | 1548 extension_info->extension_id = "ext1"; |
| 1570 model()->AddExtensionControlledTURL(ext_dse, extension_info.Pass()); | 1549 model()->AddExtensionControlledTURL(ext_dse, extension_info.Pass()); |
| 1571 EXPECT_EQ(ext_dse, model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); | 1550 EXPECT_EQ(ext_dse, model()->GetTemplateURLForKeyword(ASCIIToUTF16("ext1"))); |
| 1572 EXPECT_TRUE(model()->is_default_search_managed()); | 1551 EXPECT_TRUE(model()->is_default_search_managed()); |
| 1573 actual_managed_default = model()->GetDefaultSearchProvider(); | 1552 actual_managed_default = model()->GetDefaultSearchProvider(); |
| 1574 ExpectSimilar(expected_managed_default.get(), actual_managed_default); | 1553 ExpectSimilar(expected_managed_default.get(), actual_managed_default); |
| 1575 } | 1554 } |
| OLD | NEW |