| 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 "chrome/browser/autocomplete/autocomplete_provider.h" | 5 #include "chrome/browser/autocomplete/autocomplete_provider.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/scoped_ptr.h" | 9 #include "base/memory/scoped_ptr.h" |
| 10 #include "base/message_loop/message_loop.h" | 10 #include "base/message_loop/message_loop.h" |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 void TestProvider::AddResultsWithSearchTermsArgs( | 121 void TestProvider::AddResultsWithSearchTermsArgs( |
| 122 int start_at, | 122 int start_at, |
| 123 int num, | 123 int num, |
| 124 AutocompleteMatch::Type type, | 124 AutocompleteMatch::Type type, |
| 125 const TemplateURLRef::SearchTermsArgs& search_terms_args) { | 125 const TemplateURLRef::SearchTermsArgs& search_terms_args) { |
| 126 for (int i = start_at; i < num; i++) { | 126 for (int i = start_at; i < num; i++) { |
| 127 AutocompleteMatch match(this, relevance_ - i, false, type); | 127 AutocompleteMatch match(this, relevance_ - i, false, type); |
| 128 | 128 |
| 129 match.fill_into_edit = prefix_ + UTF8ToUTF16(base::IntToString(i)); | 129 match.fill_into_edit = prefix_ + UTF8ToUTF16(base::IntToString(i)); |
| 130 match.destination_url = GURL(UTF16ToUTF8(match.fill_into_edit)); | 130 match.destination_url = GURL(UTF16ToUTF8(match.fill_into_edit)); |
| 131 match.allowed_to_be_default_match = true; |
| 131 | 132 |
| 132 match.contents = match.fill_into_edit; | 133 match.contents = match.fill_into_edit; |
| 133 match.contents_class.push_back( | 134 match.contents_class.push_back( |
| 134 ACMatchClassification(0, ACMatchClassification::NONE)); | 135 ACMatchClassification(0, ACMatchClassification::NONE)); |
| 135 match.description = match.fill_into_edit; | 136 match.description = match.fill_into_edit; |
| 136 match.description_class.push_back( | 137 match.description_class.push_back( |
| 137 ACMatchClassification(0, ACMatchClassification::NONE)); | 138 ACMatchClassification(0, ACMatchClassification::NONE)); |
| 138 match.search_terms_args.reset( | 139 match.search_terms_args.reset( |
| 139 new TemplateURLRef::SearchTermsArgs(search_terms_args)); | 140 new TemplateURLRef::SearchTermsArgs(search_terms_args)); |
| 140 if (!match_keyword_.empty()) { | 141 if (!match_keyword_.empty()) { |
| (...skipping 197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 338 void AutocompleteProviderTest::RunTest() { | 339 void AutocompleteProviderTest::RunTest() { |
| 339 RunQuery(ASCIIToUTF16("a")); | 340 RunQuery(ASCIIToUTF16("a")); |
| 340 } | 341 } |
| 341 | 342 |
| 342 void AutocompleteProviderTest::RunRedundantKeywordTest( | 343 void AutocompleteProviderTest::RunRedundantKeywordTest( |
| 343 const KeywordTestData* match_data, | 344 const KeywordTestData* match_data, |
| 344 size_t size) { | 345 size_t size) { |
| 345 ACMatches matches; | 346 ACMatches matches; |
| 346 for (size_t i = 0; i < size; ++i) { | 347 for (size_t i = 0; i < size; ++i) { |
| 347 AutocompleteMatch match; | 348 AutocompleteMatch match; |
| 349 match.relevance = 1000; |
| 350 match.allowed_to_be_default_match = true; |
| 348 match.fill_into_edit = match_data[i].fill_into_edit; | 351 match.fill_into_edit = match_data[i].fill_into_edit; |
| 349 match.transition = content::PAGE_TRANSITION_KEYWORD; | 352 match.transition = content::PAGE_TRANSITION_KEYWORD; |
| 350 match.keyword = match_data[i].keyword; | 353 match.keyword = match_data[i].keyword; |
| 351 matches.push_back(match); | 354 matches.push_back(match); |
| 352 } | 355 } |
| 353 | 356 |
| 354 AutocompleteResult result; | 357 AutocompleteResult result; |
| 355 result.AppendMatches(matches); | 358 result.AppendMatches(matches); |
| 356 controller_->UpdateAssociatedKeywords(&result); | 359 controller_->UpdateAssociatedKeywords(&result); |
| 357 | 360 |
| 358 for (size_t j = 0; j < result.size(); ++j) { | 361 for (size_t j = 0; j < result.size(); ++j) { |
| 359 EXPECT_EQ(match_data[j].expected_keyword_result, | 362 EXPECT_EQ(match_data[j].expected_keyword_result, |
| 360 result.match_at(j)->associated_keyword.get() != NULL); | 363 result.match_at(j)->associated_keyword.get() != NULL); |
| 361 } | 364 } |
| 362 } | 365 } |
| 363 | 366 |
| 364 void AutocompleteProviderTest::RunAssistedQueryStatsTest( | 367 void AutocompleteProviderTest::RunAssistedQueryStatsTest( |
| 365 const AssistedQueryStatsTestData* aqs_test_data, | 368 const AssistedQueryStatsTestData* aqs_test_data, |
| 366 size_t size) { | 369 size_t size) { |
| 367 // Prepare input. | 370 // Prepare input. |
| 368 const size_t kMaxRelevance = 1000; | 371 const size_t kMaxRelevance = 1000; |
| 369 ACMatches matches; | 372 ACMatches matches; |
| 370 for (size_t i = 0; i < size; ++i) { | 373 for (size_t i = 0; i < size; ++i) { |
| 371 AutocompleteMatch match(NULL, kMaxRelevance - i, false, | 374 AutocompleteMatch match(NULL, kMaxRelevance - i, false, |
| 372 aqs_test_data[i].match_type); | 375 aqs_test_data[i].match_type); |
| 376 match.allowed_to_be_default_match = true; |
| 373 match.keyword = ASCIIToUTF16(kTestTemplateURLKeyword); | 377 match.keyword = ASCIIToUTF16(kTestTemplateURLKeyword); |
| 374 match.search_terms_args.reset( | 378 match.search_terms_args.reset( |
| 375 new TemplateURLRef::SearchTermsArgs(string16())); | 379 new TemplateURLRef::SearchTermsArgs(string16())); |
| 376 matches.push_back(match); | 380 matches.push_back(match); |
| 377 } | 381 } |
| 378 result_.Reset(); | 382 result_.Reset(); |
| 379 result_.AppendMatches(matches); | 383 result_.AppendMatches(matches); |
| 380 | 384 |
| 381 // Update AQS. | 385 // Update AQS. |
| 382 controller_->UpdateAssistedQueryStats(&result_); | 386 controller_->UpdateAssistedQueryStats(&result_); |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 502 EXPECT_EQ("http://keyword/test", | 506 EXPECT_EQ("http://keyword/test", |
| 503 result_.match_at(0)->destination_url.possibly_invalid_spec()); | 507 result_.match_at(0)->destination_url.possibly_invalid_spec()); |
| 504 EXPECT_EQ("http://defaultturl/k%20test?a=b", | 508 EXPECT_EQ("http://defaultturl/k%20test?a=b", |
| 505 result_.match_at(1)->destination_url.possibly_invalid_spec()); | 509 result_.match_at(1)->destination_url.possibly_invalid_spec()); |
| 506 } | 510 } |
| 507 | 511 |
| 508 // Test that redundant associated keywords are removed. | 512 // Test that redundant associated keywords are removed. |
| 509 TEST_F(AutocompleteProviderTest, RedundantKeywordsIgnoredInResult) { | 513 TEST_F(AutocompleteProviderTest, RedundantKeywordsIgnoredInResult) { |
| 510 ResetControllerWithKeywordProvider(); | 514 ResetControllerWithKeywordProvider(); |
| 511 | 515 |
| 512 // Get the controller's internal members in the correct state. | |
| 513 RunQuery(ASCIIToUTF16("fo")); | |
| 514 | |
| 515 { | 516 { |
| 516 KeywordTestData duplicate_url[] = { | 517 KeywordTestData duplicate_url[] = { |
| 517 { ASCIIToUTF16("fo"), string16(), false }, | 518 { ASCIIToUTF16("fo"), string16(), false }, |
| 518 { ASCIIToUTF16("foo.com"), string16(), true }, | 519 { ASCIIToUTF16("foo.com"), string16(), true }, |
| 519 { ASCIIToUTF16("foo.com"), string16(), false } | 520 { ASCIIToUTF16("foo.com"), string16(), false } |
| 520 }; | 521 }; |
| 521 | 522 |
| 522 SCOPED_TRACE("Duplicate url"); | 523 SCOPED_TRACE("Duplicate url"); |
| 523 RunRedundantKeywordTest(duplicate_url, ARRAYSIZE_UNSAFE(duplicate_url)); | 524 RunRedundantKeywordTest(duplicate_url, ARRAYSIZE_UNSAFE(duplicate_url)); |
| 524 } | 525 } |
| (...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 631 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j0&", url.path()); | 632 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j0&", url.path()); |
| 632 | 633 |
| 633 // Test field trial triggered bit set. | 634 // Test field trial triggered bit set. |
| 634 controller_->search_provider_->field_trial_triggered_in_session_ = true; | 635 controller_->search_provider_->field_trial_triggered_in_session_ = true; |
| 635 EXPECT_TRUE( | 636 EXPECT_TRUE( |
| 636 controller_->search_provider_->field_trial_triggered_in_session()); | 637 controller_->search_provider_->field_trial_triggered_in_session()); |
| 637 url = controller_->GetDestinationURL(match, | 638 url = controller_->GetDestinationURL(match, |
| 638 base::TimeDelta::FromMilliseconds(2456)); | 639 base::TimeDelta::FromMilliseconds(2456)); |
| 639 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1&", url.path()); | 640 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1&", url.path()); |
| 640 } | 641 } |
| OLD | NEW |