| 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 |