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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_result_unittest.cc

Issue 354773002: Reduces dependency from AutocompleteMatch to Profile. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 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/autocomplete/autocomplete_result.h" 5 #include "chrome/browser/autocomplete/autocomplete_result.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/metrics/field_trial.h" 10 #include "base/metrics/field_trial.h"
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
179 const TestData* expected, size_t expected_size) { 179 const TestData* expected, size_t expected_size) {
180 AutocompleteInput input(base::ASCIIToUTF16("a"), base::string16::npos, 180 AutocompleteInput input(base::ASCIIToUTF16("a"), base::string16::npos,
181 base::string16(), GURL(), 181 base::string16(), GURL(),
182 OmniboxEventProto::INVALID_SPEC, false, false, false, 182 OmniboxEventProto::INVALID_SPEC, false, false, false,
183 true, test_util_.profile()); 183 true, test_util_.profile());
184 184
185 ACMatches last_matches; 185 ACMatches last_matches;
186 PopulateAutocompleteMatches(last, last_size, &last_matches); 186 PopulateAutocompleteMatches(last, last_size, &last_matches);
187 AutocompleteResult last_result; 187 AutocompleteResult last_result;
188 last_result.AppendMatches(last_matches); 188 last_result.AppendMatches(last_matches);
189 last_result.SortAndCull(input, test_util_.profile()); 189 last_result.SortAndCull(input, test_util_.model());
190 190
191 ACMatches current_matches; 191 ACMatches current_matches;
192 PopulateAutocompleteMatches(current, current_size, &current_matches); 192 PopulateAutocompleteMatches(current, current_size, &current_matches);
193 AutocompleteResult current_result; 193 AutocompleteResult current_result;
194 current_result.AppendMatches(current_matches); 194 current_result.AppendMatches(current_matches);
195 current_result.SortAndCull(input, test_util_.profile()); 195 current_result.SortAndCull(input, test_util_.model());
196 current_result.CopyOldMatches(input, last_result, test_util_.profile()); 196 current_result.CopyOldMatches(input, last_result, test_util_.model());
197 197
198 AssertResultMatches(current_result, expected, expected_size); 198 AssertResultMatches(current_result, expected, expected_size);
199 } 199 }
200 200
201 // Assertion testing for AutocompleteResult::Swap. 201 // Assertion testing for AutocompleteResult::Swap.
202 TEST_F(AutocompleteResultTest, Swap) { 202 TEST_F(AutocompleteResultTest, Swap) {
203 AutocompleteResult r1; 203 AutocompleteResult r1;
204 AutocompleteResult r2; 204 AutocompleteResult r2;
205 205
206 // Swap with empty shouldn't do anything interesting. 206 // Swap with empty shouldn't do anything interesting.
207 r1.Swap(&r2); 207 r1.Swap(&r2);
208 EXPECT_EQ(r1.end(), r1.default_match()); 208 EXPECT_EQ(r1.end(), r1.default_match());
209 EXPECT_EQ(r2.end(), r2.default_match()); 209 EXPECT_EQ(r2.end(), r2.default_match());
210 210
211 // Swap with a single match. 211 // Swap with a single match.
212 ACMatches matches; 212 ACMatches matches;
213 AutocompleteMatch match; 213 AutocompleteMatch match;
214 match.relevance = 1; 214 match.relevance = 1;
215 match.allowed_to_be_default_match = true; 215 match.allowed_to_be_default_match = true;
216 AutocompleteInput input(base::ASCIIToUTF16("a"), base::string16::npos, 216 AutocompleteInput input(base::ASCIIToUTF16("a"), base::string16::npos,
217 base::string16(), GURL(), 217 base::string16(), GURL(),
218 OmniboxEventProto::INVALID_SPEC, false, false, false, 218 OmniboxEventProto::INVALID_SPEC, false, false, false,
219 true, test_util_.profile()); 219 true, test_util_.profile());
220 matches.push_back(match); 220 matches.push_back(match);
221 r1.AppendMatches(matches); 221 r1.AppendMatches(matches);
222 r1.SortAndCull(input, test_util_.profile()); 222 r1.SortAndCull(input, test_util_.model());
223 EXPECT_EQ(r1.begin(), r1.default_match()); 223 EXPECT_EQ(r1.begin(), r1.default_match());
224 EXPECT_EQ("http://a/", r1.alternate_nav_url().spec()); 224 EXPECT_EQ("http://a/", r1.alternate_nav_url().spec());
225 r1.Swap(&r2); 225 r1.Swap(&r2);
226 EXPECT_TRUE(r1.empty()); 226 EXPECT_TRUE(r1.empty());
227 EXPECT_EQ(r1.end(), r1.default_match()); 227 EXPECT_EQ(r1.end(), r1.default_match());
228 EXPECT_TRUE(r1.alternate_nav_url().is_empty()); 228 EXPECT_TRUE(r1.alternate_nav_url().is_empty());
229 ASSERT_FALSE(r2.empty()); 229 ASSERT_FALSE(r2.empty());
230 EXPECT_EQ(r2.begin(), r2.default_match()); 230 EXPECT_EQ(r2.begin(), r2.default_match());
231 EXPECT_EQ("http://a/", r2.alternate_nav_url().spec()); 231 EXPECT_EQ("http://a/", r2.alternate_nav_url().spec());
232 } 232 }
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 matches[1].destination_url = GURL(); 293 matches[1].destination_url = GURL();
294 matches[3].destination_url = GURL(); 294 matches[3].destination_url = GURL();
295 matches[4].destination_url = GURL(); 295 matches[4].destination_url = GURL();
296 296
297 AutocompleteResult result; 297 AutocompleteResult result;
298 result.AppendMatches(matches); 298 result.AppendMatches(matches);
299 AutocompleteInput input(base::string16(), base::string16::npos, 299 AutocompleteInput input(base::string16(), base::string16::npos,
300 base::string16(), GURL(), 300 base::string16(), GURL(),
301 OmniboxEventProto::INVALID_SPEC, false, false, false, 301 OmniboxEventProto::INVALID_SPEC, false, false, false,
302 true, test_util_.profile()); 302 true, test_util_.profile());
303 result.SortAndCull(input, test_util_.profile()); 303 result.SortAndCull(input, test_util_.model());
304 304
305 // Of the two results with the same non-empty destination URL, the 305 // Of the two results with the same non-empty destination URL, the
306 // lower-relevance one should be dropped. All of the results with empty URLs 306 // lower-relevance one should be dropped. All of the results with empty URLs
307 // should be kept. 307 // should be kept.
308 ASSERT_EQ(4U, result.size()); 308 ASSERT_EQ(4U, result.size());
309 EXPECT_TRUE(result.match_at(0)->destination_url.is_empty()); 309 EXPECT_TRUE(result.match_at(0)->destination_url.is_empty());
310 EXPECT_EQ(1300, result.match_at(0)->relevance); 310 EXPECT_EQ(1300, result.match_at(0)->relevance);
311 EXPECT_TRUE(result.match_at(1)->destination_url.is_empty()); 311 EXPECT_TRUE(result.match_at(1)->destination_url.is_empty());
312 EXPECT_EQ(1200, result.match_at(1)->relevance); 312 EXPECT_EQ(1200, result.match_at(1)->relevance);
313 EXPECT_TRUE(result.match_at(2)->destination_url.is_empty()); 313 EXPECT_TRUE(result.match_at(2)->destination_url.is_empty());
(...skipping 25 matching lines...) Expand all
339 matches[2].destination_url = GURL("http://www.foo.com/s?q=foo&oq=f"); 339 matches[2].destination_url = GURL("http://www.foo.com/s?q=foo&oq=f");
340 matches[3].destination_url = GURL("http://www.foo.com/s?q=foo&aqs=0"); 340 matches[3].destination_url = GURL("http://www.foo.com/s?q=foo&aqs=0");
341 matches[4].destination_url = GURL("http://www.foo.com/"); 341 matches[4].destination_url = GURL("http://www.foo.com/");
342 342
343 AutocompleteResult result; 343 AutocompleteResult result;
344 result.AppendMatches(matches); 344 result.AppendMatches(matches);
345 AutocompleteInput input(base::string16(), base::string16::npos, 345 AutocompleteInput input(base::string16(), base::string16::npos,
346 base::string16(), GURL(), 346 base::string16(), GURL(),
347 OmniboxEventProto::INVALID_SPEC, false, false, false, 347 OmniboxEventProto::INVALID_SPEC, false, false, false,
348 true, test_util_.profile()); 348 true, test_util_.profile());
349 result.SortAndCull(input, test_util_.profile()); 349 result.SortAndCull(input, test_util_.model());
350 350
351 // We expect the 3rd and 4th results to be removed. 351 // We expect the 3rd and 4th results to be removed.
352 ASSERT_EQ(3U, result.size()); 352 ASSERT_EQ(3U, result.size());
353 EXPECT_EQ("http://www.foo.com/s?q=foo", 353 EXPECT_EQ("http://www.foo.com/s?q=foo",
354 result.match_at(0)->destination_url.spec()); 354 result.match_at(0)->destination_url.spec());
355 EXPECT_EQ(1300, result.match_at(0)->relevance); 355 EXPECT_EQ(1300, result.match_at(0)->relevance);
356 EXPECT_EQ("http://www.foo.com/s?q=foo2", 356 EXPECT_EQ("http://www.foo.com/s?q=foo2",
357 result.match_at(1)->destination_url.spec()); 357 result.match_at(1)->destination_url.spec());
358 EXPECT_EQ(1200, result.match_at(1)->relevance); 358 EXPECT_EQ(1200, result.match_at(1)->relevance);
359 EXPECT_EQ("http://www.foo.com/", 359 EXPECT_EQ("http://www.foo.com/",
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 matches[3].destination_url = GURL("http://www.foo.com/s?q=foo&aqs=0"); 391 matches[3].destination_url = GURL("http://www.foo.com/s?q=foo&aqs=0");
392 matches[4].destination_url = GURL("http://www.foo.com/"); 392 matches[4].destination_url = GURL("http://www.foo.com/");
393 matches[5].destination_url = GURL("http://www.foo.com/s?q=foo2&oq=f"); 393 matches[5].destination_url = GURL("http://www.foo.com/s?q=foo2&oq=f");
394 394
395 AutocompleteResult result; 395 AutocompleteResult result;
396 result.AppendMatches(matches); 396 result.AppendMatches(matches);
397 AutocompleteInput input(base::string16(), base::string16::npos, 397 AutocompleteInput input(base::string16(), base::string16::npos,
398 base::string16(), GURL(), 398 base::string16(), GURL(),
399 OmniboxEventProto::INVALID_SPEC, false, false, false, 399 OmniboxEventProto::INVALID_SPEC, false, false, false,
400 true, test_util_.profile()); 400 true, test_util_.profile());
401 result.SortAndCull(input, test_util_.profile()); 401 result.SortAndCull(input, test_util_.model());
402 402
403 // Expect 3 unique results after SortAndCull(). 403 // Expect 3 unique results after SortAndCull().
404 ASSERT_EQ(3U, result.size()); 404 ASSERT_EQ(3U, result.size());
405 405
406 // Check that 3rd and 4th result got added to the first result as dups 406 // Check that 3rd and 4th result got added to the first result as dups
407 // and also duplicates of the 4th match got copied. 407 // and also duplicates of the 4th match got copied.
408 ASSERT_EQ(4U, result.match_at(0)->duplicate_matches.size()); 408 ASSERT_EQ(4U, result.match_at(0)->duplicate_matches.size());
409 const AutocompleteMatch* first_match = result.match_at(0); 409 const AutocompleteMatch* first_match = result.match_at(0);
410 EXPECT_EQ(matches[2].destination_url, 410 EXPECT_EQ(matches[2].destination_url,
411 first_match->duplicate_matches.at(1).destination_url); 411 first_match->duplicate_matches.at(1).destination_url);
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 } 445 }
446 base::FieldTrialList::CreateFieldTrial( 446 base::FieldTrialList::CreateFieldTrial(
447 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A"); 447 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "A");
448 448
449 AutocompleteResult result; 449 AutocompleteResult result;
450 result.AppendMatches(matches); 450 result.AppendMatches(matches);
451 AutocompleteInput input(base::string16(), base::string16::npos, 451 AutocompleteInput input(base::string16(), base::string16::npos,
452 base::string16(), GURL(), 452 base::string16(), GURL(),
453 OmniboxEventProto::HOME_PAGE, false, false, false, 453 OmniboxEventProto::HOME_PAGE, false, false, false,
454 true, test_util_.profile()); 454 true, test_util_.profile());
455 result.SortAndCull(input, test_util_.profile()); 455 result.SortAndCull(input, test_util_.model());
456 456
457 // Check the new ordering. The history-title results should be omitted. 457 // Check the new ordering. The history-title results should be omitted.
458 // We cannot check relevance scores because the matches are sorted by 458 // We cannot check relevance scores because the matches are sorted by
459 // demoted relevance but the actual relevance scores are not modified. 459 // demoted relevance but the actual relevance scores are not modified.
460 ASSERT_EQ(3u, result.size()); 460 ASSERT_EQ(3u, result.size());
461 EXPECT_EQ("http://search-what-you-typed/", 461 EXPECT_EQ("http://search-what-you-typed/",
462 result.match_at(0)->destination_url.spec()); 462 result.match_at(0)->destination_url.spec());
463 EXPECT_EQ("http://history-url/", 463 EXPECT_EQ("http://history-url/",
464 result.match_at(1)->destination_url.spec()); 464 result.match_at(1)->destination_url.spec());
465 EXPECT_EQ("http://search-history/", 465 EXPECT_EQ("http://search-history/",
(...skipping 24 matching lines...) Expand all
490 base::FieldTrialList::CreateFieldTrial( 490 base::FieldTrialList::CreateFieldTrial(
491 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "C"); 491 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "C");
492 492
493 { 493 {
494 AutocompleteResult result; 494 AutocompleteResult result;
495 result.AppendMatches(matches); 495 result.AppendMatches(matches);
496 AutocompleteInput input( 496 AutocompleteInput input(
497 base::string16(), base::string16::npos, base::string16(), GURL(), 497 base::string16(), base::string16::npos, base::string16(), GURL(),
498 OmniboxEventProto::INSTANT_NTP_WITH_FAKEBOX_AS_STARTING_FOCUS, false, 498 OmniboxEventProto::INSTANT_NTP_WITH_FAKEBOX_AS_STARTING_FOCUS, false,
499 false, false, true, test_util_.profile()); 499 false, false, true, test_util_.profile());
500 result.SortAndCull(input, test_util_.profile()); 500 result.SortAndCull(input, test_util_.model());
501 501
502 // The NAVSUGGEST dup-url stay above search-url since the navsuggest 502 // The NAVSUGGEST dup-url stay above search-url since the navsuggest
503 // variant should not be demoted. 503 // variant should not be demoted.
504 ASSERT_EQ(4u, result.size()); 504 ASSERT_EQ(4u, result.size());
505 EXPECT_EQ("http://search-what-you-typed/", 505 EXPECT_EQ("http://search-what-you-typed/",
506 result.match_at(0)->destination_url.spec()); 506 result.match_at(0)->destination_url.spec());
507 EXPECT_EQ("http://dup-url/", 507 EXPECT_EQ("http://dup-url/",
508 result.match_at(1)->destination_url.spec()); 508 result.match_at(1)->destination_url.spec());
509 EXPECT_EQ(AutocompleteMatchType::NAVSUGGEST, 509 EXPECT_EQ(AutocompleteMatchType::NAVSUGGEST,
510 result.match_at(1)->type); 510 result.match_at(1)->type);
(...skipping 17 matching lines...) Expand all
528 // is already a legal default match (which is the default from 528 // is already a legal default match (which is the default from
529 // PopulateAutocompleteMatches()). 529 // PopulateAutocompleteMatches()).
530 ACMatches matches; 530 ACMatches matches;
531 PopulateAutocompleteMatches(data, arraysize(data), &matches); 531 PopulateAutocompleteMatches(data, arraysize(data), &matches);
532 AutocompleteResult result; 532 AutocompleteResult result;
533 result.AppendMatches(matches); 533 result.AppendMatches(matches);
534 AutocompleteInput input(base::string16(), base::string16::npos, 534 AutocompleteInput input(base::string16(), base::string16::npos,
535 base::string16(), GURL(), 535 base::string16(), GURL(),
536 OmniboxEventProto::HOME_PAGE, false, false, false, 536 OmniboxEventProto::HOME_PAGE, false, false, false,
537 true, test_util_.profile()); 537 true, test_util_.profile());
538 result.SortAndCull(input, test_util_.profile()); 538 result.SortAndCull(input, test_util_.model());
539 AssertResultMatches(result, data, 4); 539 AssertResultMatches(result, data, 4);
540 } 540 }
541 541
542 { 542 {
543 // Check that reorder swaps up a result appropriately. 543 // Check that reorder swaps up a result appropriately.
544 ACMatches matches; 544 ACMatches matches;
545 PopulateAutocompleteMatches(data, arraysize(data), &matches); 545 PopulateAutocompleteMatches(data, arraysize(data), &matches);
546 matches[0].allowed_to_be_default_match = false; 546 matches[0].allowed_to_be_default_match = false;
547 matches[1].allowed_to_be_default_match = false; 547 matches[1].allowed_to_be_default_match = false;
548 AutocompleteResult result; 548 AutocompleteResult result;
549 result.AppendMatches(matches); 549 result.AppendMatches(matches);
550 AutocompleteInput input(base::string16(), base::string16::npos, 550 AutocompleteInput input(base::string16(), base::string16::npos,
551 base::string16(), GURL(), 551 base::string16(), GURL(),
552 OmniboxEventProto::HOME_PAGE, false, false, false, 552 OmniboxEventProto::HOME_PAGE, false, false, false,
553 true, test_util_.profile()); 553 true, test_util_.profile());
554 result.SortAndCull(input, test_util_.profile()); 554 result.SortAndCull(input, test_util_.model());
555 ASSERT_EQ(4U, result.size()); 555 ASSERT_EQ(4U, result.size());
556 EXPECT_EQ("http://c/", result.match_at(0)->destination_url.spec()); 556 EXPECT_EQ("http://c/", result.match_at(0)->destination_url.spec());
557 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec()); 557 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec());
558 EXPECT_EQ("http://b/", result.match_at(2)->destination_url.spec()); 558 EXPECT_EQ("http://b/", result.match_at(2)->destination_url.spec());
559 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec()); 559 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec());
560 } 560 }
561 } 561 }
562 562
563 563
564 564
(...skipping 10 matching lines...) Expand all
575 // first even if it has an inline autocompletion. 575 // first even if it has an inline autocompletion.
576 ACMatches matches; 576 ACMatches matches;
577 PopulateAutocompleteMatches(data, arraysize(data), &matches); 577 PopulateAutocompleteMatches(data, arraysize(data), &matches);
578 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion"); 578 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion");
579 AutocompleteResult result; 579 AutocompleteResult result;
580 result.AppendMatches(matches); 580 result.AppendMatches(matches);
581 AutocompleteInput input(base::string16(), base::string16::npos, 581 AutocompleteInput input(base::string16(), base::string16::npos,
582 base::string16(), GURL(), 582 base::string16(), GURL(),
583 OmniboxEventProto::HOME_PAGE, false, false, false, 583 OmniboxEventProto::HOME_PAGE, false, false, false,
584 true, test_util_.profile()); 584 true, test_util_.profile());
585 result.SortAndCull(input, test_util_.profile()); 585 result.SortAndCull(input, test_util_.model());
586 AssertResultMatches(result, data, 4); 586 AssertResultMatches(result, data, 4);
587 } 587 }
588 588
589 // Enable the field trial to disable inlining. 589 // Enable the field trial to disable inlining.
590 { 590 {
591 std::map<std::string, std::string> params; 591 std::map<std::string, std::string> params;
592 params[OmniboxFieldTrial::kDisableInliningRule] = "true"; 592 params[OmniboxFieldTrial::kDisableInliningRule] = "true";
593 ASSERT_TRUE(chrome_variations::AssociateVariationParams( 593 ASSERT_TRUE(chrome_variations::AssociateVariationParams(
594 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "D", params)); 594 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "D", params));
595 } 595 }
596 base::FieldTrialList::CreateFieldTrial( 596 base::FieldTrialList::CreateFieldTrial(
597 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "D"); 597 OmniboxFieldTrial::kBundledExperimentFieldTrialName, "D");
598 598
599 { 599 {
600 // Now the first match should be demoted past the second. 600 // Now the first match should be demoted past the second.
601 ACMatches matches; 601 ACMatches matches;
602 PopulateAutocompleteMatches(data, arraysize(data), &matches); 602 PopulateAutocompleteMatches(data, arraysize(data), &matches);
603 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion"); 603 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion");
604 AutocompleteResult result; 604 AutocompleteResult result;
605 result.AppendMatches(matches); 605 result.AppendMatches(matches);
606 AutocompleteInput input(base::string16(), base::string16::npos, 606 AutocompleteInput input(base::string16(), base::string16::npos,
607 base::string16(), GURL(), 607 base::string16(), GURL(),
608 OmniboxEventProto::HOME_PAGE, false, false, false, 608 OmniboxEventProto::HOME_PAGE, false, false, false,
609 true, test_util_.profile()); 609 true, test_util_.profile());
610 result.SortAndCull(input, test_util_.profile()); 610 result.SortAndCull(input, test_util_.model());
611 ASSERT_EQ(4U, result.size()); 611 ASSERT_EQ(4U, result.size());
612 EXPECT_EQ("http://b/", result.match_at(0)->destination_url.spec()); 612 EXPECT_EQ("http://b/", result.match_at(0)->destination_url.spec());
613 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec()); 613 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec());
614 EXPECT_EQ("http://c/", result.match_at(2)->destination_url.spec()); 614 EXPECT_EQ("http://c/", result.match_at(2)->destination_url.spec());
615 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec()); 615 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec());
616 } 616 }
617 617
618 { 618 {
619 // But if there was no inline autocompletion on the first match, then 619 // But if there was no inline autocompletion on the first match, then
620 // the order should stay the same. This is true even if there are 620 // the order should stay the same. This is true even if there are
621 // inline autocompletions elsewhere. 621 // inline autocompletions elsewhere.
622 ACMatches matches; 622 ACMatches matches;
623 PopulateAutocompleteMatches(data, arraysize(data), &matches); 623 PopulateAutocompleteMatches(data, arraysize(data), &matches);
624 matches[2].inline_autocompletion = base::ASCIIToUTF16("completion"); 624 matches[2].inline_autocompletion = base::ASCIIToUTF16("completion");
625 AutocompleteResult result; 625 AutocompleteResult result;
626 result.AppendMatches(matches); 626 result.AppendMatches(matches);
627 AutocompleteInput input(base::string16(), base::string16::npos, 627 AutocompleteInput input(base::string16(), base::string16::npos,
628 base::string16(), GURL(), 628 base::string16(), GURL(),
629 OmniboxEventProto::HOME_PAGE, false, false, false, 629 OmniboxEventProto::HOME_PAGE, false, false, false,
630 true, test_util_.profile()); 630 true, test_util_.profile());
631 result.SortAndCull(input, test_util_.profile()); 631 result.SortAndCull(input, test_util_.model());
632 AssertResultMatches(result, data, 4); 632 AssertResultMatches(result, data, 4);
633 } 633 }
634 634
635 { 635 {
636 // Try a more complicated situation. 636 // Try a more complicated situation.
637 ACMatches matches; 637 ACMatches matches;
638 PopulateAutocompleteMatches(data, arraysize(data), &matches); 638 PopulateAutocompleteMatches(data, arraysize(data), &matches);
639 matches[0].allowed_to_be_default_match = false; 639 matches[0].allowed_to_be_default_match = false;
640 matches[1].inline_autocompletion = base::ASCIIToUTF16("completion"); 640 matches[1].inline_autocompletion = base::ASCIIToUTF16("completion");
641 AutocompleteResult result; 641 AutocompleteResult result;
642 result.AppendMatches(matches); 642 result.AppendMatches(matches);
643 AutocompleteInput input(base::string16(), base::string16::npos, 643 AutocompleteInput input(base::string16(), base::string16::npos,
644 base::string16(), GURL(), 644 base::string16(), GURL(),
645 OmniboxEventProto::HOME_PAGE, false, false, false, 645 OmniboxEventProto::HOME_PAGE, false, false, false,
646 true, test_util_.profile()); 646 true, test_util_.profile());
647 result.SortAndCull(input, test_util_.profile()); 647 result.SortAndCull(input, test_util_.model());
648 ASSERT_EQ(4U, result.size()); 648 ASSERT_EQ(4U, result.size());
649 EXPECT_EQ("http://c/", result.match_at(0)->destination_url.spec()); 649 EXPECT_EQ("http://c/", result.match_at(0)->destination_url.spec());
650 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec()); 650 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec());
651 EXPECT_EQ("http://b/", result.match_at(2)->destination_url.spec()); 651 EXPECT_EQ("http://b/", result.match_at(2)->destination_url.spec());
652 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec()); 652 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec());
653 } 653 }
654 654
655 { 655 {
656 // Try another complicated situation. 656 // Try another complicated situation.
657 ACMatches matches; 657 ACMatches matches;
658 PopulateAutocompleteMatches(data, arraysize(data), &matches); 658 PopulateAutocompleteMatches(data, arraysize(data), &matches);
659 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion"); 659 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion");
660 matches[1].allowed_to_be_default_match = false; 660 matches[1].allowed_to_be_default_match = false;
661 AutocompleteResult result; 661 AutocompleteResult result;
662 result.AppendMatches(matches); 662 result.AppendMatches(matches);
663 AutocompleteInput input(base::string16(), base::string16::npos, 663 AutocompleteInput input(base::string16(), base::string16::npos,
664 base::string16(), GURL(), 664 base::string16(), GURL(),
665 OmniboxEventProto::HOME_PAGE, false, false, false, 665 OmniboxEventProto::HOME_PAGE, false, false, false,
666 true, test_util_.profile()); 666 true, test_util_.profile());
667 result.SortAndCull(input, test_util_.profile()); 667 result.SortAndCull(input, test_util_.model());
668 ASSERT_EQ(4U, result.size()); 668 ASSERT_EQ(4U, result.size());
669 EXPECT_EQ("http://c/", result.match_at(0)->destination_url.spec()); 669 EXPECT_EQ("http://c/", result.match_at(0)->destination_url.spec());
670 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec()); 670 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec());
671 EXPECT_EQ("http://b/", result.match_at(2)->destination_url.spec()); 671 EXPECT_EQ("http://b/", result.match_at(2)->destination_url.spec());
672 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec()); 672 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec());
673 } 673 }
674 674
675 { 675 {
676 // Check that disaster doesn't strike if we can't demote the top inline 676 // Check that disaster doesn't strike if we can't demote the top inline
677 // autocompletion because every match either has a completion or isn't 677 // autocompletion because every match either has a completion or isn't
678 // allowed to be the default match. In this case, we should leave 678 // allowed to be the default match. In this case, we should leave
679 // everything untouched. 679 // everything untouched.
680 ACMatches matches; 680 ACMatches matches;
681 PopulateAutocompleteMatches(data, arraysize(data), &matches); 681 PopulateAutocompleteMatches(data, arraysize(data), &matches);
682 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion"); 682 matches[0].inline_autocompletion = base::ASCIIToUTF16("completion");
683 matches[1].allowed_to_be_default_match = false; 683 matches[1].allowed_to_be_default_match = false;
684 matches[2].allowed_to_be_default_match = false; 684 matches[2].allowed_to_be_default_match = false;
685 matches[3].inline_autocompletion = base::ASCIIToUTF16("completion"); 685 matches[3].inline_autocompletion = base::ASCIIToUTF16("completion");
686 AutocompleteResult result; 686 AutocompleteResult result;
687 result.AppendMatches(matches); 687 result.AppendMatches(matches);
688 AutocompleteInput input(base::string16(), base::string16::npos, 688 AutocompleteInput input(base::string16(), base::string16::npos,
689 base::string16(), GURL(), 689 base::string16(), GURL(),
690 OmniboxEventProto::HOME_PAGE, false, false, false, 690 OmniboxEventProto::HOME_PAGE, false, false, false,
691 true, test_util_.profile()); 691 true, test_util_.profile());
692 result.SortAndCull(input, test_util_.profile()); 692 result.SortAndCull(input, test_util_.model());
693 AssertResultMatches(result, data, 4); 693 AssertResultMatches(result, data, 4);
694 } 694 }
695 695
696 { 696 {
697 // Check a similar situation, except in this case the top match is not 697 // Check a similar situation, except in this case the top match is not
698 // allowed to the default match, so it still needs to be demoted so we 698 // allowed to the default match, so it still needs to be demoted so we
699 // get a legal default match first. That match will have an inline 699 // get a legal default match first. That match will have an inline
700 // autocompletion because we don't have any better options. 700 // autocompletion because we don't have any better options.
701 ACMatches matches; 701 ACMatches matches;
702 PopulateAutocompleteMatches(data, arraysize(data), &matches); 702 PopulateAutocompleteMatches(data, arraysize(data), &matches);
703 matches[0].allowed_to_be_default_match = false; 703 matches[0].allowed_to_be_default_match = false;
704 matches[1].inline_autocompletion = base::ASCIIToUTF16("completion"); 704 matches[1].inline_autocompletion = base::ASCIIToUTF16("completion");
705 matches[2].allowed_to_be_default_match = false; 705 matches[2].allowed_to_be_default_match = false;
706 matches[3].inline_autocompletion = base::ASCIIToUTF16("completion"); 706 matches[3].inline_autocompletion = base::ASCIIToUTF16("completion");
707 AutocompleteResult result; 707 AutocompleteResult result;
708 result.AppendMatches(matches); 708 result.AppendMatches(matches);
709 AutocompleteInput input(base::string16(), base::string16::npos, 709 AutocompleteInput input(base::string16(), base::string16::npos,
710 base::string16(), GURL(), 710 base::string16(), GURL(),
711 OmniboxEventProto::HOME_PAGE, false, false, false, 711 OmniboxEventProto::HOME_PAGE, false, false, false,
712 true, test_util_.profile()); 712 true, test_util_.profile());
713 result.SortAndCull(input, test_util_.profile()); 713 result.SortAndCull(input, test_util_.model());
714 ASSERT_EQ(4U, result.size()); 714 ASSERT_EQ(4U, result.size());
715 EXPECT_EQ("http://b/", result.match_at(0)->destination_url.spec()); 715 EXPECT_EQ("http://b/", result.match_at(0)->destination_url.spec());
716 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec()); 716 EXPECT_EQ("http://a/", result.match_at(1)->destination_url.spec());
717 EXPECT_EQ("http://c/", result.match_at(2)->destination_url.spec()); 717 EXPECT_EQ("http://c/", result.match_at(2)->destination_url.spec());
718 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec()); 718 EXPECT_EQ("http://d/", result.match_at(3)->destination_url.spec());
719 } 719 }
720 } 720 }
721 721
722 TEST_F(AutocompleteResultTest, ShouldHideTopMatch) { 722 TEST_F(AutocompleteResultTest, ShouldHideTopMatch) {
723 base::FieldTrialList::CreateFieldTrial("InstantExtended", 723 base::FieldTrialList::CreateFieldTrial("InstantExtended",
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
823 result.Reset(); 823 result.Reset();
824 matches.clear(); 824 matches.clear();
825 825
826 // Case 5: Multiple verbatim matches found in AutocompleteResult. 826 // Case 5: Multiple verbatim matches found in AutocompleteResult.
827 PopulateAutocompleteMatchesFromTestData(kVerbatimMatches, 827 PopulateAutocompleteMatchesFromTestData(kVerbatimMatches,
828 arraysize(kVerbatimMatches), 828 arraysize(kVerbatimMatches),
829 &matches); 829 &matches);
830 result.AppendMatches(matches); 830 result.AppendMatches(matches);
831 EXPECT_FALSE(result.ShouldHideTopMatch()); 831 EXPECT_FALSE(result.ShouldHideTopMatch());
832 } 832 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698