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/history_url_provider.h" | 5 #include "chrome/browser/autocomplete/history_url_provider.h" |
6 | 6 |
7 #include <algorithm> | 7 #include <algorithm> |
8 | 8 |
9 #include "base/message_loop.h" | 9 #include "base/message_loop.h" |
10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
(...skipping 782 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
793 } | 793 } |
794 | 794 |
795 TEST_F(HistoryURLProviderTest, SuggestExactInput) { | 795 TEST_F(HistoryURLProviderTest, SuggestExactInput) { |
796 struct TestCase { | 796 struct TestCase { |
797 // Inputs: | 797 // Inputs: |
798 const char* input; | 798 const char* input; |
799 bool trim_http; | 799 bool trim_http; |
800 // Expected Outputs: | 800 // Expected Outputs: |
801 const char* contents; | 801 const char* contents; |
802 // Offsets of the ACMatchClassifications, terminated by -1s. | 802 // Offsets of the ACMatchClassifications, terminated by -1s. |
803 size_t offsets[3]; | 803 ssize_t offsets[3]; |
Peter Kasting
2013/06/17 18:43:43
Do not use ssize_t, use size_t. To avoid having t
cmarcelo
2013/06/17 18:48:52
Would be OK to (re-)use std::string::npos?
Peter Kasting
2013/06/17 18:53:12
Yes, in fact, that's what _should_ be used, since
| |
804 // The index of the ACMatchClassification that should have the MATCH bit | 804 // The index of the ACMatchClassification that should have the MATCH bit |
805 // set, -1 if there no ACMatchClassification should have the MATCH bit set. | 805 // set, -1 if there no ACMatchClassification should have the MATCH bit set. |
806 size_t match_classification_index; | 806 ssize_t match_classification_index; |
807 } test_cases[] = { | 807 } test_cases[] = { |
808 { "http://www.somesite.com", false, | 808 { "http://www.somesite.com", false, |
809 "http://www.somesite.com", {0, -1, -1}, 0 }, | 809 "http://www.somesite.com", {0, -1, -1}, 0 }, |
810 { "www.somesite.com", true, | 810 { "www.somesite.com", true, |
811 "www.somesite.com", {0, -1, -1}, 0 }, | 811 "www.somesite.com", {0, -1, -1}, 0 }, |
812 { "www.somesite.com", false, | 812 { "www.somesite.com", false, |
813 "http://www.somesite.com", {0, 7, -1}, 1 }, | 813 "http://www.somesite.com", {0, 7, -1}, 1 }, |
814 { "somesite.com", true, | 814 { "somesite.com", true, |
815 "somesite.com", {0, -1, -1}, 0 }, | 815 "somesite.com", {0, -1, -1}, 0 }, |
816 { "somesite.com", false, | 816 { "somesite.com", false, |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
851 << test_cases[i].input << ", trim_http: " | 851 << test_cases[i].input << ", trim_http: " |
852 << test_cases[i].trim_http); | 852 << test_cases[i].trim_http); |
853 | 853 |
854 AutocompleteInput input(ASCIIToUTF16(test_cases[i].input), string16::npos, | 854 AutocompleteInput input(ASCIIToUTF16(test_cases[i].input), string16::npos, |
855 string16(), GURL("about:blank"), | 855 string16(), GURL("about:blank"), |
856 false, false, true, AutocompleteInput::ALL_MATCHES); | 856 false, false, true, AutocompleteInput::ALL_MATCHES); |
857 AutocompleteMatch match = | 857 AutocompleteMatch match = |
858 HistoryURLProvider::SuggestExactInput(autocomplete_, input, | 858 HistoryURLProvider::SuggestExactInput(autocomplete_, input, |
859 test_cases[i].trim_http); | 859 test_cases[i].trim_http); |
860 EXPECT_EQ(ASCIIToUTF16(test_cases[i].contents), match.contents); | 860 EXPECT_EQ(ASCIIToUTF16(test_cases[i].contents), match.contents); |
861 ssize_t match_classification_index = | |
862 test_cases[i].match_classification_index; | |
861 for (size_t match_index = 0; match_index < match.contents_class.size(); | 863 for (size_t match_index = 0; match_index < match.contents_class.size(); |
862 ++match_index) { | 864 ++match_index) { |
863 EXPECT_EQ(test_cases[i].offsets[match_index], | 865 ssize_t offset = test_cases[i].offsets[match_index]; |
864 match.contents_class[match_index].offset); | 866 EXPECT_NE(-1, offset); |
867 EXPECT_EQ(size_t(offset), match.contents_class[match_index].offset); | |
868 bool should_match = match_classification_index >= 0 && | |
869 match_index == size_t(match_classification_index); | |
865 EXPECT_EQ(ACMatchClassification::URL | | 870 EXPECT_EQ(ACMatchClassification::URL | |
866 (match_index == test_cases[i].match_classification_index ? | 871 (should_match ? ACMatchClassification::MATCH : 0), |
867 ACMatchClassification::MATCH : 0), | |
868 match.contents_class[match_index].style); | 872 match.contents_class[match_index].style); |
869 } | 873 } |
870 EXPECT_EQ(std::string::npos, | 874 EXPECT_EQ(-1, test_cases[i].offsets[match.contents_class.size()]); |
871 test_cases[i].offsets[match.contents_class.size()]); | |
872 } | 875 } |
873 } | 876 } |
OLD | NEW |