| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 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_quick_provider.h" | 5 #include "chrome/browser/autocomplete/history_quick_provider.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <functional> | 8 #include <functional> |
| 9 #include <set> | 9 #include <set> |
| 10 #include <string> | 10 #include <string> |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 89 void TearDown() { | 89 void TearDown() { |
| 90 provider_ = NULL; | 90 provider_ = NULL; |
| 91 } | 91 } |
| 92 | 92 |
| 93 // Fills test data into the history system. | 93 // Fills test data into the history system. |
| 94 void FillData(); | 94 void FillData(); |
| 95 | 95 |
| 96 // Runs an autocomplete query on |text| and checks to see that the returned | 96 // Runs an autocomplete query on |text| and checks to see that the returned |
| 97 // results' destination URLs match those provided. |expected_urls| does not | 97 // results' destination URLs match those provided. |expected_urls| does not |
| 98 // need to be in sorted order. | 98 // need to be in sorted order. |
| 99 void RunTest(const string16 text, | 99 void RunTest(const std::wstring text, |
| 100 std::vector<std::string> expected_urls, | 100 std::vector<std::string> expected_urls, |
| 101 std::string expected_top_result); | 101 std::string expected_top_result); |
| 102 | 102 |
| 103 MessageLoopForUI message_loop_; | 103 MessageLoopForUI message_loop_; |
| 104 BrowserThread ui_thread_; | 104 BrowserThread ui_thread_; |
| 105 BrowserThread file_thread_; | 105 BrowserThread file_thread_; |
| 106 | 106 |
| 107 scoped_ptr<TestingProfile> profile_; | 107 scoped_ptr<TestingProfile> profile_; |
| 108 HistoryService* history_service_; | 108 HistoryService* history_service_; |
| 109 | 109 |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 156 void operator()(const std::string& expected) { | 156 void operator()(const std::string& expected) { |
| 157 EXPECT_EQ(1U, matches_.erase(expected)); | 157 EXPECT_EQ(1U, matches_.erase(expected)); |
| 158 } | 158 } |
| 159 | 159 |
| 160 std::set<std::string> LeftOvers() const { return matches_; } | 160 std::set<std::string> LeftOvers() const { return matches_; } |
| 161 | 161 |
| 162 private: | 162 private: |
| 163 std::set<std::string> matches_; | 163 std::set<std::string> matches_; |
| 164 }; | 164 }; |
| 165 | 165 |
| 166 void HistoryQuickProviderTest::RunTest(const string16 text, | 166 void HistoryQuickProviderTest::RunTest(const std::wstring text, |
| 167 std::vector<std::string> expected_urls, | 167 std::vector<std::string> expected_urls, |
| 168 std::string expected_top_result) { | 168 std::string expected_top_result) { |
| 169 std::sort(expected_urls.begin(), expected_urls.end()); | 169 std::sort(expected_urls.begin(), expected_urls.end()); |
| 170 | 170 |
| 171 MessageLoop::current()->RunAllPending(); | 171 MessageLoop::current()->RunAllPending(); |
| 172 AutocompleteInput input(text, string16(), false, false, true, false); | 172 AutocompleteInput input(text, std::wstring(), false, false, true, false); |
| 173 provider_->Start(input, false); | 173 provider_->Start(input, false); |
| 174 EXPECT_TRUE(provider_->done()); | 174 EXPECT_TRUE(provider_->done()); |
| 175 | 175 |
| 176 ACMatches matches = provider_->matches(); | 176 ACMatches matches = provider_->matches(); |
| 177 // If the number of expected and actual matches aren't equal then we need | 177 // If the number of expected and actual matches aren't equal then we need |
| 178 // test no further, but let's do anyway so that we know which URLs failed. | 178 // test no further, but let's do anyway so that we know which URLs failed. |
| 179 EXPECT_EQ(expected_urls.size(), matches.size()); | 179 EXPECT_EQ(expected_urls.size(), matches.size()); |
| 180 | 180 |
| 181 // Verify that all expected URLs were found and that all found URLs | 181 // Verify that all expected URLs were found and that all found URLs |
| 182 // were expected. | 182 // were expected. |
| 183 std::set<std::string> leftovers = | 183 std::set<std::string> leftovers = |
| 184 for_each(expected_urls.begin(), expected_urls.end(), | 184 for_each(expected_urls.begin(), expected_urls.end(), |
| 185 SetShouldContain(matches)).LeftOvers(); | 185 SetShouldContain(matches)).LeftOvers(); |
| 186 EXPECT_TRUE(leftovers.empty()); | 186 EXPECT_TRUE(leftovers.empty()); |
| 187 | 187 |
| 188 // See if we got the expected top scorer. | 188 // See if we got the expected top scorer. |
| 189 if (!matches.empty()) { | 189 if (!matches.empty()) { |
| 190 std::partial_sort(matches.begin(), matches.begin() + 1, | 190 std::partial_sort(matches.begin(), matches.begin() + 1, |
| 191 matches.end(), AutocompleteMatch::MoreRelevant); | 191 matches.end(), AutocompleteMatch::MoreRelevant); |
| 192 EXPECT_EQ(expected_top_result, matches[0].destination_url.spec()); | 192 EXPECT_EQ(expected_top_result, matches[0].destination_url.spec()); |
| 193 } | 193 } |
| 194 } | 194 } |
| 195 | 195 |
| 196 TEST_F(HistoryQuickProviderTest, SimpleSingleMatch) { | 196 TEST_F(HistoryQuickProviderTest, SimpleSingleMatch) { |
| 197 string16 text(ASCIIToUTF16("slashdot")); | 197 std::wstring text(L"slashdot"); |
| 198 std::string expected_url("http://slashdot.org/favorite_page.html"); | 198 std::string expected_url("http://slashdot.org/favorite_page.html"); |
| 199 std::vector<std::string> expected_urls; | 199 std::vector<std::string> expected_urls; |
| 200 expected_urls.push_back(expected_url); | 200 expected_urls.push_back(expected_url); |
| 201 RunTest(text, expected_urls, expected_url); | 201 RunTest(text, expected_urls, expected_url); |
| 202 } | 202 } |
| 203 | 203 |
| 204 TEST_F(HistoryQuickProviderTest, MultiMatch) { | 204 TEST_F(HistoryQuickProviderTest, MultiMatch) { |
| 205 string16 text(ASCIIToUTF16("foo")); | 205 std::wstring text(L"foo"); |
| 206 std::vector<std::string> expected_urls; | 206 std::vector<std::string> expected_urls; |
| 207 expected_urls.push_back("http://foo.com/"); | 207 expected_urls.push_back("http://foo.com/"); |
| 208 expected_urls.push_back("http://foo.com/dir/"); | 208 expected_urls.push_back("http://foo.com/dir/"); |
| 209 expected_urls.push_back("http://foo.com/dir/another/"); | 209 expected_urls.push_back("http://foo.com/dir/another/"); |
| 210 expected_urls.push_back("http://foo.com/dir/another/again/"); | 210 expected_urls.push_back("http://foo.com/dir/another/again/"); |
| 211 expected_urls.push_back("http://foo.com/dir/another/again/myfile.html"); | 211 expected_urls.push_back("http://foo.com/dir/another/again/myfile.html"); |
| 212 expected_urls.push_back("http://spaces.com/path%20with%20spaces/foo.html"); | 212 expected_urls.push_back("http://spaces.com/path%20with%20spaces/foo.html"); |
| 213 RunTest(text, expected_urls, "http://foo.com/"); | 213 RunTest(text, expected_urls, "http://foo.com/"); |
| 214 } | 214 } |
| 215 | 215 |
| 216 TEST_F(HistoryQuickProviderTest, StartRelativeMatch) { | 216 TEST_F(HistoryQuickProviderTest, StartRelativeMatch) { |
| 217 string16 text(ASCIIToUTF16("xyz")); | 217 std::wstring text(L"xyz"); |
| 218 std::vector<std::string> expected_urls; | 218 std::vector<std::string> expected_urls; |
| 219 expected_urls.push_back("http://xyzabcdefghijklmnopqrstuvw.com/a"); | 219 expected_urls.push_back("http://xyzabcdefghijklmnopqrstuvw.com/a"); |
| 220 expected_urls.push_back("http://abcxyzdefghijklmnopqrstuvw.com/a"); | 220 expected_urls.push_back("http://abcxyzdefghijklmnopqrstuvw.com/a"); |
| 221 expected_urls.push_back("http://abcdefxyzghijklmnopqrstuvw.com/a"); | 221 expected_urls.push_back("http://abcdefxyzghijklmnopqrstuvw.com/a"); |
| 222 expected_urls.push_back("http://abcdefghixyzjklmnopqrstuvw.com/a"); | 222 expected_urls.push_back("http://abcdefghixyzjklmnopqrstuvw.com/a"); |
| 223 expected_urls.push_back("http://abcdefghijklxyzmnopqrstuvw.com/a"); | 223 expected_urls.push_back("http://abcdefghijklxyzmnopqrstuvw.com/a"); |
| 224 RunTest(text, expected_urls, "http://xyzabcdefghijklmnopqrstuvw.com/a"); | 224 RunTest(text, expected_urls, "http://xyzabcdefghijklmnopqrstuvw.com/a"); |
| 225 } | 225 } |
| 226 | 226 |
| 227 TEST_F(HistoryQuickProviderTest, RecencyMatch) { | 227 TEST_F(HistoryQuickProviderTest, RecencyMatch) { |
| 228 string16 text(ASCIIToUTF16("startest")); | 228 std::wstring text(L"startest"); |
| 229 std::vector<std::string> expected_urls; | 229 std::vector<std::string> expected_urls; |
| 230 expected_urls.push_back("http://startest.com/y/a"); | 230 expected_urls.push_back("http://startest.com/y/a"); |
| 231 expected_urls.push_back("http://startest.com/y/b"); | 231 expected_urls.push_back("http://startest.com/y/b"); |
| 232 expected_urls.push_back("http://startest.com/x/c"); | 232 expected_urls.push_back("http://startest.com/x/c"); |
| 233 expected_urls.push_back("http://startest.com/x/d"); | 233 expected_urls.push_back("http://startest.com/x/d"); |
| 234 expected_urls.push_back("http://startest.com/y/e"); | 234 expected_urls.push_back("http://startest.com/y/e"); |
| 235 expected_urls.push_back("http://startest.com/y/f"); | 235 expected_urls.push_back("http://startest.com/y/f"); |
| 236 RunTest(text, expected_urls, "http://startest.com/y/a"); | 236 RunTest(text, expected_urls, "http://startest.com/y/a"); |
| 237 } | 237 } |
| OLD | NEW |