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/base_paths.h" | 5 #include "base/base_paths.h" |
6 #include "base/string_util.h" | 6 #include "base/string_util.h" |
7 #include "base/utf_string_conversions.h" | 7 #include "base/utf_string_conversions.h" |
8 #include "chrome/browser/browser_process.h" | 8 #include "chrome/browser/browser_process.h" |
9 #include "chrome/browser/rlz/rlz.h" | 9 #include "chrome/browser/rlz/rlz.h" |
10 #include "chrome/browser/search_engines/search_terms_data.h" | 10 #include "chrome/browser/search_engines/search_terms_data.h" |
(...skipping 735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
746 EXPECT_EQ("http://www.google.co.uk/", url.GetURL(0)); | 746 EXPECT_EQ("http://www.google.co.uk/", url.GetURL(0)); |
747 } | 747 } |
748 | 748 |
749 TEST_F(TemplateURLTest, ExtractSearchTermsFromURL) { | 749 TEST_F(TemplateURLTest, ExtractSearchTermsFromURL) { |
750 TemplateURLData data; | 750 TemplateURLData data; |
751 data.SetURL("http://google.com/?q={searchTerms}"); | 751 data.SetURL("http://google.com/?q={searchTerms}"); |
752 data.instant_url = "http://google.com/instant#q={searchTerms}"; | 752 data.instant_url = "http://google.com/instant#q={searchTerms}"; |
753 data.alternate_urls.push_back("http://google.com/alt/#q={searchTerms}"); | 753 data.alternate_urls.push_back("http://google.com/alt/#q={searchTerms}"); |
754 data.alternate_urls.push_back( | 754 data.alternate_urls.push_back( |
755 "http://google.com/alt/?ext=foo&q={searchTerms}#ref=bar"); | 755 "http://google.com/alt/?ext=foo&q={searchTerms}#ref=bar"); |
| 756 data.search_terms_replacement_key = "espv"; |
756 TemplateURL url(NULL, data); | 757 TemplateURL url(NULL, data); |
757 string16 result; | 758 string16 result; |
758 | 759 |
759 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 760 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
760 GURL("http://google.com/?q=something"), &result)); | 761 GURL("http://google.com/?q=something"), &result, false)); |
| 762 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 763 |
| 764 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 765 GURL("http://google.com/?espv=1&q=something"), &result, false)); |
| 766 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 767 |
| 768 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 769 GURL("http://google.com/?espv=0&q=something"), &result, false)); |
| 770 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 771 |
| 772 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 773 GURL("http://google.com/alt/#q=something"), &result, false)); |
| 774 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 775 |
| 776 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 777 GURL("http://google.com/alt/#espv=1&q=something"), &result, false)); |
| 778 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 779 |
| 780 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 781 GURL("http://google.com/alt/#espv=0&q=something"), &result, false)); |
761 EXPECT_EQ(ASCIIToUTF16("something"), result); | 782 EXPECT_EQ(ASCIIToUTF16("something"), result); |
762 | 783 |
763 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 784 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
764 GURL("http://google.ca/?q=something"), &result)); | 785 GURL("http://google.ca/?q=something"), &result, false)); |
765 EXPECT_EQ(string16(), result); | 786 EXPECT_EQ(string16(), result); |
766 | 787 |
767 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 788 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
768 GURL("http://google.com/foo/?q=foo"), &result)); | 789 GURL("http://google.com/foo/?q=foo"), &result, false)); |
769 EXPECT_EQ(string16(), result); | 790 EXPECT_EQ(string16(), result); |
770 | 791 |
771 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 792 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
772 GURL("https://google.com/?q=foo"), &result)); | 793 GURL("https://google.com/?q=foo"), &result, false)); |
773 EXPECT_EQ(ASCIIToUTF16("foo"), result); | 794 EXPECT_EQ(ASCIIToUTF16("foo"), result); |
774 | 795 |
775 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 796 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
776 GURL("http://google.com:8080/?q=foo"), &result)); | 797 GURL("http://google.com:8080/?q=foo"), &result, false)); |
777 EXPECT_EQ(string16(), result); | 798 EXPECT_EQ(string16(), result); |
778 | 799 |
779 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 800 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
780 GURL("http://google.com/?q=1+2+3&b=456"), &result)); | 801 GURL("http://google.com/?q=1+2+3&b=456"), &result, false)); |
781 EXPECT_EQ(ASCIIToUTF16("1 2 3"), result); | 802 EXPECT_EQ(ASCIIToUTF16("1 2 3"), result); |
782 | 803 |
783 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 804 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
784 GURL("http://google.com/alt/?q=123#q=456"), &result)); | 805 GURL("http://google.com/alt/?q=123#q=456"), &result, false)); |
785 EXPECT_EQ(ASCIIToUTF16("456"), result); | 806 EXPECT_EQ(ASCIIToUTF16("456"), result); |
786 | 807 |
787 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 808 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
788 GURL("http://google.com/alt/?a=012&q=123&b=456#f=789"), &result)); | 809 GURL("http://google.com/alt/?a=012&q=123&b=456#f=789"), &result, false)); |
789 EXPECT_EQ(ASCIIToUTF16("123"), result); | 810 EXPECT_EQ(ASCIIToUTF16("123"), result); |
790 | 811 |
791 EXPECT_TRUE(url.ExtractSearchTermsFromURL(GURL( | 812 EXPECT_TRUE(url.ExtractSearchTermsFromURL(GURL( |
792 "http://google.com/alt/?a=012&q=123&b=456#j=abc&q=789&h=def9"), &result)); | 813 "http://google.com/alt/?a=012&q=123&b=456#j=abc&q=789&h=def9"), &result, |
| 814 false)); |
793 EXPECT_EQ(ASCIIToUTF16("789"), result); | 815 EXPECT_EQ(ASCIIToUTF16("789"), result); |
794 | 816 |
795 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 817 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
796 GURL("http://google.com/alt/?q="), &result)); | 818 GURL("http://google.com/alt/?q="), &result, false)); |
797 EXPECT_EQ(string16(), result); | 819 EXPECT_EQ(string16(), result); |
798 | 820 |
799 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 821 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
800 GURL("http://google.com/alt/?#q="), &result)); | 822 GURL("http://google.com/alt/?#q="), &result, false)); |
801 EXPECT_EQ(string16(), result); | 823 EXPECT_EQ(string16(), result); |
802 | 824 |
803 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 825 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
804 GURL("http://google.com/alt/?q=#q="), &result)); | 826 GURL("http://google.com/alt/?q=#q="), &result, false)); |
805 EXPECT_EQ(string16(), result); | 827 EXPECT_EQ(string16(), result); |
806 | 828 |
807 EXPECT_FALSE(url.ExtractSearchTermsFromURL( | 829 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
808 GURL("http://google.com/alt/?q=123#q="), &result)); | 830 GURL("http://google.com/alt/?q=123#q="), &result, false)); |
809 EXPECT_EQ(string16(), result); | 831 EXPECT_EQ(string16(), result); |
810 | 832 |
811 EXPECT_TRUE(url.ExtractSearchTermsFromURL( | 833 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
812 GURL("http://google.com/alt/?q=#q=123"), &result)); | 834 GURL("http://google.com/alt/?q=#q=123"), &result, false)); |
813 EXPECT_EQ(ASCIIToUTF16("123"), result); | 835 EXPECT_EQ(ASCIIToUTF16("123"), result); |
| 836 |
| 837 // Test with instant enabled required. |
| 838 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 839 GURL("http://google.com/?q=something"), &result, true)); |
| 840 EXPECT_EQ(string16(), result); |
| 841 |
| 842 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 843 GURL("http://google.com/?q=something&espv=1"), &result, true)); |
| 844 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 845 |
| 846 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 847 GURL("http://google.com/?q=something&espv=0"), &result, true)); |
| 848 EXPECT_EQ(string16(), result); |
| 849 |
| 850 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 851 GURL("http://google.com/?q=something&espv="), &result, true)); |
| 852 EXPECT_EQ(string16(), result); |
| 853 |
| 854 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 855 GURL("http://google.com/?espv=1&q=something"), &result, true)); |
| 856 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 857 |
| 858 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 859 GURL("http://google.com/?espv=0&q=something"), &result, true)); |
| 860 EXPECT_EQ(string16(), result); |
| 861 |
| 862 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 863 GURL("http://google.com/?espv=&q=something"), &result, true)); |
| 864 EXPECT_EQ(string16(), result); |
| 865 |
| 866 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 867 GURL("http://google.com/alt/#q=something"), &result, true)); |
| 868 EXPECT_EQ(string16(), result); |
| 869 |
| 870 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 871 GURL("http://google.com/alt/#q=something&espv=1"), &result, true)); |
| 872 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 873 |
| 874 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 875 GURL("http://google.com/alt/#q=something&espv=0"), &result, true)); |
| 876 EXPECT_EQ(string16(), result); |
| 877 |
| 878 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 879 GURL("http://google.com/alt/#q=something&espv="), &result, true)); |
| 880 EXPECT_EQ(string16(), result); |
| 881 |
| 882 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 883 GURL("http://google.com/alt/#espv=1&q=something"), &result, true)); |
| 884 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 885 |
| 886 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 887 GURL("http://google.com/alt/#espv=0&q=something"), &result, true)); |
| 888 EXPECT_EQ(string16(), result); |
| 889 |
| 890 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 891 GURL("http://google.com/alt/#espv=&q=something"), &result, true)); |
| 892 EXPECT_EQ(string16(), result); |
| 893 |
| 894 // espv must be in the same region (query/ref) as the search query. |
| 895 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 896 GURL("http://google.com/?espv=1#q=something"), &result, true)); |
| 897 EXPECT_EQ(string16(), result); |
| 898 |
| 899 EXPECT_FALSE(url.ExtractSearchTermsFromURL( |
| 900 GURL("http://google.com/?q=something#espv=1"), &result, true)); |
| 901 EXPECT_EQ(string16(), result); |
| 902 |
| 903 // It's fine if espv is there twice. |
| 904 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 905 GURL("http://google.com/alt/?espv=1#q=something&espv=1"), &result, true)); |
| 906 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 907 |
| 908 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 909 GURL("http://google.com/alt/?q=something&espv=1#espv=1"), &result, true)); |
| 910 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 911 |
| 912 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 913 GURL("http://google.com/alt/?espv=0#q=something&espv=1"), &result, true)); |
| 914 EXPECT_EQ(ASCIIToUTF16("something"), result); |
| 915 |
| 916 EXPECT_TRUE(url.ExtractSearchTermsFromURL( |
| 917 GURL("http://google.com/alt/?q=something&espv=1#espv=0"), &result, true)); |
| 918 EXPECT_EQ(ASCIIToUTF16("something"), result); |
814 } | 919 } |
OLD | NEW |