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 "components/omnibox/autocomplete_provider.h" | 5 #include "components/omnibox/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 553 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
564 { | 564 { |
565 KeywordTestData duplicate_url[] = { | 565 KeywordTestData duplicate_url[] = { |
566 { base::ASCIIToUTF16("fo"), base::string16(), base::string16() }, | 566 { base::ASCIIToUTF16("fo"), base::string16(), base::string16() }, |
567 { base::ASCIIToUTF16("foo.com"), base::string16(), | 567 { base::ASCIIToUTF16("foo.com"), base::string16(), |
568 base::ASCIIToUTF16("foo.com") }, | 568 base::ASCIIToUTF16("foo.com") }, |
569 { base::ASCIIToUTF16("foo.com"), base::string16(), base::string16() } | 569 { base::ASCIIToUTF16("foo.com"), base::string16(), base::string16() } |
570 }; | 570 }; |
571 | 571 |
572 SCOPED_TRACE("Duplicate url"); | 572 SCOPED_TRACE("Duplicate url"); |
573 RunKeywordTest(base::ASCIIToUTF16("fo"), duplicate_url, | 573 RunKeywordTest(base::ASCIIToUTF16("fo"), duplicate_url, |
574 ARRAYSIZE_UNSAFE(duplicate_url)); | 574 arraysize(duplicate_url)); |
575 } | 575 } |
576 | 576 |
577 { | 577 { |
578 KeywordTestData keyword_match[] = { | 578 KeywordTestData keyword_match[] = { |
579 { base::ASCIIToUTF16("foo.com"), base::ASCIIToUTF16("foo.com"), | 579 { base::ASCIIToUTF16("foo.com"), base::ASCIIToUTF16("foo.com"), |
580 base::string16() }, | 580 base::string16() }, |
581 { base::ASCIIToUTF16("foo.com"), base::string16(), base::string16() } | 581 { base::ASCIIToUTF16("foo.com"), base::string16(), base::string16() } |
582 }; | 582 }; |
583 | 583 |
584 SCOPED_TRACE("Duplicate url with keyword match"); | 584 SCOPED_TRACE("Duplicate url with keyword match"); |
585 RunKeywordTest(base::ASCIIToUTF16("fo"), keyword_match, | 585 RunKeywordTest(base::ASCIIToUTF16("fo"), keyword_match, |
586 ARRAYSIZE_UNSAFE(keyword_match)); | 586 arraysize(keyword_match)); |
587 } | 587 } |
588 | 588 |
589 { | 589 { |
590 KeywordTestData multiple_keyword[] = { | 590 KeywordTestData multiple_keyword[] = { |
591 { base::ASCIIToUTF16("fo"), base::string16(), base::string16() }, | 591 { base::ASCIIToUTF16("fo"), base::string16(), base::string16() }, |
592 { base::ASCIIToUTF16("foo.com"), base::string16(), | 592 { base::ASCIIToUTF16("foo.com"), base::string16(), |
593 base::ASCIIToUTF16("foo.com") }, | 593 base::ASCIIToUTF16("foo.com") }, |
594 { base::ASCIIToUTF16("foo.com"), base::string16(), base::string16() }, | 594 { base::ASCIIToUTF16("foo.com"), base::string16(), base::string16() }, |
595 { base::ASCIIToUTF16("bar.com"), base::string16(), | 595 { base::ASCIIToUTF16("bar.com"), base::string16(), |
596 base::ASCIIToUTF16("bar.com") }, | 596 base::ASCIIToUTF16("bar.com") }, |
597 }; | 597 }; |
598 | 598 |
599 SCOPED_TRACE("Duplicate url with multiple keywords"); | 599 SCOPED_TRACE("Duplicate url with multiple keywords"); |
600 RunKeywordTest(base::ASCIIToUTF16("fo"), multiple_keyword, | 600 RunKeywordTest(base::ASCIIToUTF16("fo"), multiple_keyword, |
601 ARRAYSIZE_UNSAFE(multiple_keyword)); | 601 arraysize(multiple_keyword)); |
602 } | 602 } |
603 } | 603 } |
604 | 604 |
605 // Test that exact match keywords trump keywords associated with | 605 // Test that exact match keywords trump keywords associated with |
606 // the match. | 606 // the match. |
607 TEST_F(AutocompleteProviderTest, ExactMatchKeywords) { | 607 TEST_F(AutocompleteProviderTest, ExactMatchKeywords) { |
608 ResetControllerWithKeywordProvider(); | 608 ResetControllerWithKeywordProvider(); |
609 | 609 |
610 { | 610 { |
611 KeywordTestData keyword_match[] = { | 611 KeywordTestData keyword_match[] = { |
612 { base::ASCIIToUTF16("foo.com"), base::string16(), | 612 { base::ASCIIToUTF16("foo.com"), base::string16(), |
613 base::ASCIIToUTF16("foo.com") } | 613 base::ASCIIToUTF16("foo.com") } |
614 }; | 614 }; |
615 | 615 |
616 SCOPED_TRACE("keyword match as usual"); | 616 SCOPED_TRACE("keyword match as usual"); |
617 RunKeywordTest(base::ASCIIToUTF16("fo"), keyword_match, | 617 RunKeywordTest(base::ASCIIToUTF16("fo"), keyword_match, |
618 ARRAYSIZE_UNSAFE(keyword_match)); | 618 arraysize(keyword_match)); |
619 } | 619 } |
620 | 620 |
621 // The same result set with an input of "f" (versus "fo") should get | 621 // The same result set with an input of "f" (versus "fo") should get |
622 // a different associated keyword because "f" is an exact match for | 622 // a different associated keyword because "f" is an exact match for |
623 // a keyword and that should trump the keyword normally associated with | 623 // a keyword and that should trump the keyword normally associated with |
624 // this match. | 624 // this match. |
625 { | 625 { |
626 KeywordTestData keyword_match[] = { | 626 KeywordTestData keyword_match[] = { |
627 { base::ASCIIToUTF16("foo.com"), base::string16(), | 627 { base::ASCIIToUTF16("foo.com"), base::string16(), |
628 base::ASCIIToUTF16("f") } | 628 base::ASCIIToUTF16("f") } |
629 }; | 629 }; |
630 | 630 |
631 SCOPED_TRACE("keyword exact match"); | 631 SCOPED_TRACE("keyword exact match"); |
632 RunKeywordTest(base::ASCIIToUTF16("f"), keyword_match, | 632 RunKeywordTest(base::ASCIIToUTF16("f"), keyword_match, |
633 ARRAYSIZE_UNSAFE(keyword_match)); | 633 arraysize(keyword_match)); |
634 } | 634 } |
635 } | 635 } |
636 | 636 |
637 TEST_F(AutocompleteProviderTest, UpdateAssistedQueryStats) { | 637 TEST_F(AutocompleteProviderTest, UpdateAssistedQueryStats) { |
638 ResetControllerWithTestProviders(false, NULL, NULL); | 638 ResetControllerWithTestProviders(false, NULL, NULL); |
639 | 639 |
640 { | 640 { |
641 AssistedQueryStatsTestData test_data[] = { | 641 AssistedQueryStatsTestData test_data[] = { |
642 // MSVC doesn't support zero-length arrays, so supply some dummy data. | 642 // MSVC doesn't support zero-length arrays, so supply some dummy data. |
643 { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "" } | 643 { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "" } |
644 }; | 644 }; |
645 SCOPED_TRACE("No matches"); | 645 SCOPED_TRACE("No matches"); |
646 // Note: We pass 0 here to ignore the dummy data above. | 646 // Note: We pass 0 here to ignore the dummy data above. |
647 RunAssistedQueryStatsTest(test_data, 0); | 647 RunAssistedQueryStatsTest(test_data, 0); |
648 } | 648 } |
649 | 649 |
650 { | 650 { |
651 AssistedQueryStatsTestData test_data[] = { | 651 AssistedQueryStatsTestData test_data[] = { |
652 { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "chrome..69i57" } | 652 { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, "chrome..69i57" } |
653 }; | 653 }; |
654 SCOPED_TRACE("One match"); | 654 SCOPED_TRACE("One match"); |
655 RunAssistedQueryStatsTest(test_data, ARRAYSIZE_UNSAFE(test_data)); | 655 RunAssistedQueryStatsTest(test_data, arraysize(test_data)); |
656 } | 656 } |
657 | 657 |
658 { | 658 { |
659 AssistedQueryStatsTestData test_data[] = { | 659 AssistedQueryStatsTestData test_data[] = { |
660 { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, | 660 { AutocompleteMatchType::SEARCH_WHAT_YOU_TYPED, |
661 "chrome..69i57j69i58j5l2j0l3j69i59" }, | 661 "chrome..69i57j69i58j5l2j0l3j69i59" }, |
662 { AutocompleteMatchType::URL_WHAT_YOU_TYPED, | 662 { AutocompleteMatchType::URL_WHAT_YOU_TYPED, |
663 "chrome..69i57j69i58j5l2j0l3j69i59" }, | 663 "chrome..69i57j69i58j5l2j0l3j69i59" }, |
664 { AutocompleteMatchType::NAVSUGGEST, | 664 { AutocompleteMatchType::NAVSUGGEST, |
665 "chrome.2.69i57j69i58j5l2j0l3j69i59" }, | 665 "chrome.2.69i57j69i58j5l2j0l3j69i59" }, |
666 { AutocompleteMatchType::NAVSUGGEST, | 666 { AutocompleteMatchType::NAVSUGGEST, |
667 "chrome.3.69i57j69i58j5l2j0l3j69i59" }, | 667 "chrome.3.69i57j69i58j5l2j0l3j69i59" }, |
668 { AutocompleteMatchType::SEARCH_SUGGEST, | 668 { AutocompleteMatchType::SEARCH_SUGGEST, |
669 "chrome.4.69i57j69i58j5l2j0l3j69i59" }, | 669 "chrome.4.69i57j69i58j5l2j0l3j69i59" }, |
670 { AutocompleteMatchType::SEARCH_SUGGEST, | 670 { AutocompleteMatchType::SEARCH_SUGGEST, |
671 "chrome.5.69i57j69i58j5l2j0l3j69i59" }, | 671 "chrome.5.69i57j69i58j5l2j0l3j69i59" }, |
672 { AutocompleteMatchType::SEARCH_SUGGEST, | 672 { AutocompleteMatchType::SEARCH_SUGGEST, |
673 "chrome.6.69i57j69i58j5l2j0l3j69i59" }, | 673 "chrome.6.69i57j69i58j5l2j0l3j69i59" }, |
674 { AutocompleteMatchType::SEARCH_HISTORY, | 674 { AutocompleteMatchType::SEARCH_HISTORY, |
675 "chrome.7.69i57j69i58j5l2j0l3j69i59" }, | 675 "chrome.7.69i57j69i58j5l2j0l3j69i59" }, |
676 }; | 676 }; |
677 SCOPED_TRACE("Multiple matches"); | 677 SCOPED_TRACE("Multiple matches"); |
678 RunAssistedQueryStatsTest(test_data, ARRAYSIZE_UNSAFE(test_data)); | 678 RunAssistedQueryStatsTest(test_data, arraysize(test_data)); |
679 } | 679 } |
680 } | 680 } |
681 | 681 |
682 TEST_F(AutocompleteProviderTest, GetDestinationURL) { | 682 TEST_F(AutocompleteProviderTest, GetDestinationURL) { |
683 ResetControllerWithKeywordAndSearchProviders(); | 683 ResetControllerWithKeywordAndSearchProviders(); |
684 | 684 |
685 // For the destination URL to have aqs parameters for query formulation time | 685 // For the destination URL to have aqs parameters for query formulation time |
686 // and the field trial triggered bit, many conditions need to be satisfied. | 686 // and the field trial triggered bit, many conditions need to be satisfied. |
687 AutocompleteMatch match(NULL, 1100, false, | 687 AutocompleteMatch match(NULL, 1100, false, |
688 AutocompleteMatchType::SEARCH_SUGGEST); | 688 AutocompleteMatchType::SEARCH_SUGGEST); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
728 url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456)); | 728 url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456)); |
729 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j0j4&", url.path()); | 729 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j0j4&", url.path()); |
730 | 730 |
731 // Test page classification and field trial triggered set. | 731 // Test page classification and field trial triggered set. |
732 controller_->search_provider_->field_trial_triggered_in_session_ = true; | 732 controller_->search_provider_->field_trial_triggered_in_session_ = true; |
733 EXPECT_TRUE( | 733 EXPECT_TRUE( |
734 controller_->search_provider_->field_trial_triggered_in_session()); | 734 controller_->search_provider_->field_trial_triggered_in_session()); |
735 url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456)); | 735 url = GetDestinationURL(match, base::TimeDelta::FromMilliseconds(2456)); |
736 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1j4&", url.path()); | 736 EXPECT_EQ("//aqs=chrome.0.69i57j69i58j5l2j0l3j69i59.2456j1j4&", url.path()); |
737 } | 737 } |
OLD | NEW |