| OLD | NEW |
| 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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/memory/scoped_ptr.h" | 5 #include "base/memory/scoped_ptr.h" |
| 6 #include "base/message_loop.h" | 6 #include "base/message_loop.h" |
| 7 #include "base/string_number_conversions.h" | 7 #include "base/string_number_conversions.h" |
| 8 #include "base/string_util.h" | 8 #include "base/string_util.h" |
| 9 #include "base/utf_string_conversions.h" | 9 #include "base/utf_string_conversions.h" |
| 10 #include "chrome/browser/autocomplete/autocomplete.h" | 10 #include "chrome/browser/autocomplete/autocomplete.h" |
| 11 #include "chrome/browser/autocomplete/autocomplete_match.h" | 11 #include "chrome/browser/autocomplete/autocomplete_match.h" |
| 12 #include "chrome/browser/autocomplete/keyword_provider.h" | 12 #include "chrome/browser/autocomplete/keyword_provider.h" |
| 13 #include "chrome/browser/autocomplete/search_provider.h" | 13 #include "chrome/browser/autocomplete/search_provider.h" |
| 14 #include "chrome/browser/search_engines/template_url.h" | 14 #include "chrome/browser/search_engines/template_url.h" |
| 15 #include "chrome/browser/search_engines/template_url_service.h" | 15 #include "chrome/browser/search_engines/template_url_service.h" |
| 16 #include "chrome/browser/search_engines/template_url_service_factory.h" | 16 #include "chrome/browser/search_engines/template_url_service_factory.h" |
| 17 #include "chrome/common/chrome_notification_types.h" | 17 #include "chrome/common/chrome_notification_types.h" |
| 18 #include "chrome/test/base/testing_browser_process.h" | 18 #include "chrome/test/base/testing_browser_process.h" |
| 19 #include "chrome/test/base/testing_browser_process_test.h" | |
| 20 #include "chrome/test/base/testing_profile.h" | 19 #include "chrome/test/base/testing_profile.h" |
| 21 #include "content/common/notification_observer.h" | 20 #include "content/common/notification_observer.h" |
| 22 #include "content/common/notification_registrar.h" | 21 #include "content/common/notification_registrar.h" |
| 23 #include "content/common/notification_service.h" | 22 #include "content/common/notification_service.h" |
| 24 #include "testing/gtest/include/gtest/gtest.h" | 23 #include "testing/gtest/include/gtest/gtest.h" |
| 25 | 24 |
| 26 static std::ostream& operator<<(std::ostream& os, | 25 static std::ostream& operator<<(std::ostream& os, |
| 27 const AutocompleteResult::const_iterator& it) { | 26 const AutocompleteResult::const_iterator& it) { |
| 28 return os << static_cast<const AutocompleteMatch*>(&(*it)); | 27 return os << static_cast<const AutocompleteMatch*>(&(*it)); |
| 29 } | 28 } |
| (...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 120 ACProviders providers_; | 119 ACProviders providers_; |
| 121 | 120 |
| 122 AutocompleteResult result_; | 121 AutocompleteResult result_; |
| 123 | 122 |
| 124 private: | 123 private: |
| 125 // NotificationObserver | 124 // NotificationObserver |
| 126 virtual void Observe(int type, | 125 virtual void Observe(int type, |
| 127 const NotificationSource& source, | 126 const NotificationSource& source, |
| 128 const NotificationDetails& details); | 127 const NotificationDetails& details); |
| 129 | 128 |
| 130 ScopedTestingBrowserProcess browser_process_; | |
| 131 | |
| 132 MessageLoopForUI message_loop_; | 129 MessageLoopForUI message_loop_; |
| 133 scoped_ptr<AutocompleteController> controller_; | 130 scoped_ptr<AutocompleteController> controller_; |
| 134 NotificationRegistrar registrar_; | 131 NotificationRegistrar registrar_; |
| 135 TestingProfile profile_; | 132 TestingProfile profile_; |
| 136 }; | 133 }; |
| 137 | 134 |
| 138 void AutocompleteProviderTest::ResetControllerWithTestProviders( | 135 void AutocompleteProviderTest::ResetControllerWithTestProviders( |
| 139 bool same_destinations) { | 136 bool same_destinations) { |
| 140 // Forget about any existing providers. The controller owns them and will | 137 // Forget about any existing providers. The controller owns them and will |
| 141 // Release() them below, when we delete it during the call to reset(). | 138 // Release() them below, when we delete it during the call to reset(). |
| (...skipping 124 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 266 i != result_.end(); ++i) | 263 i != result_.end(); ++i) |
| 267 EXPECT_EQ(providers_[1], i->provider); | 264 EXPECT_EQ(providers_[1], i->provider); |
| 268 } | 265 } |
| 269 | 266 |
| 270 TEST_F(AutocompleteProviderTest, AllowExactKeywordMatch) { | 267 TEST_F(AutocompleteProviderTest, AllowExactKeywordMatch) { |
| 271 ResetControllerWithTestProvidersWithKeywordAndSearchProviders(); | 268 ResetControllerWithTestProvidersWithKeywordAndSearchProviders(); |
| 272 RunExactKeymatchTest(true); | 269 RunExactKeymatchTest(true); |
| 273 RunExactKeymatchTest(false); | 270 RunExactKeymatchTest(false); |
| 274 } | 271 } |
| 275 | 272 |
| 276 typedef TestingBrowserProcessTest AutocompleteTest; | 273 typedef testing::Test AutocompleteTest; |
| 277 | 274 |
| 278 TEST_F(AutocompleteTest, InputType) { | 275 TEST_F(AutocompleteTest, InputType) { |
| 279 struct test_data { | 276 struct test_data { |
| 280 const string16 input; | 277 const string16 input; |
| 281 const AutocompleteInput::Type type; | 278 const AutocompleteInput::Type type; |
| 282 } input_cases[] = { | 279 } input_cases[] = { |
| 283 { ASCIIToUTF16(""), AutocompleteInput::INVALID }, | 280 { ASCIIToUTF16(""), AutocompleteInput::INVALID }, |
| 284 { ASCIIToUTF16("?"), AutocompleteInput::FORCED_QUERY }, | 281 { ASCIIToUTF16("?"), AutocompleteInput::FORCED_QUERY }, |
| 285 { ASCIIToUTF16("?foo"), AutocompleteInput::FORCED_QUERY }, | 282 { ASCIIToUTF16("?foo"), AutocompleteInput::FORCED_QUERY }, |
| 286 { ASCIIToUTF16("?foo bar"), AutocompleteInput::FORCED_QUERY }, | 283 { ASCIIToUTF16("?foo bar"), AutocompleteInput::FORCED_QUERY }, |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 457 Component(12, 11) }, | 454 Component(12, 11) }, |
| 458 { ASCIIToUTF16("view-source:"), Component(0, 11), kInvalidComponent }, | 455 { ASCIIToUTF16("view-source:"), Component(0, 11), kInvalidComponent }, |
| 459 { ASCIIToUTF16("view-source:garbage"), kInvalidComponent, | 456 { ASCIIToUTF16("view-source:garbage"), kInvalidComponent, |
| 460 Component(12, 7) }, | 457 Component(12, 7) }, |
| 461 { ASCIIToUTF16("view-source:http://http://foo"), Component(12, 4), | 458 { ASCIIToUTF16("view-source:http://http://foo"), Component(12, 4), |
| 462 Component(19, 4) }, | 459 Component(19, 4) }, |
| 463 { ASCIIToUTF16("view-source:view-source:http://example.com/"), | 460 { ASCIIToUTF16("view-source:view-source:http://example.com/"), |
| 464 Component(12, 11), kInvalidComponent } | 461 Component(12, 11), kInvalidComponent } |
| 465 }; | 462 }; |
| 466 | 463 |
| 467 ScopedTestingBrowserProcess browser_process; | |
| 468 | |
| 469 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(input_cases); ++i) { | 464 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(input_cases); ++i) { |
| 470 Component scheme, host; | 465 Component scheme, host; |
| 471 AutocompleteInput::ParseForEmphasizeComponents(input_cases[i].input, | 466 AutocompleteInput::ParseForEmphasizeComponents(input_cases[i].input, |
| 472 string16(), | 467 string16(), |
| 473 &scheme, | 468 &scheme, |
| 474 &host); | 469 &host); |
| 475 AutocompleteInput input(input_cases[i].input, string16(), true, false, | 470 AutocompleteInput input(input_cases[i].input, string16(), true, false, |
| 476 true, AutocompleteInput::ALL_MATCHES); | 471 true, AutocompleteInput::ALL_MATCHES); |
| 477 EXPECT_EQ(input_cases[i].scheme.begin, scheme.begin) << "Input: " << | 472 EXPECT_EQ(input_cases[i].scheme.begin, scheme.begin) << "Input: " << |
| 478 input_cases[i].input; | 473 input_cases[i].input; |
| 479 EXPECT_EQ(input_cases[i].scheme.len, scheme.len) << "Input: " << | 474 EXPECT_EQ(input_cases[i].scheme.len, scheme.len) << "Input: " << |
| 480 input_cases[i].input; | 475 input_cases[i].input; |
| 481 EXPECT_EQ(input_cases[i].host.begin, host.begin) << "Input: " << | 476 EXPECT_EQ(input_cases[i].host.begin, host.begin) << "Input: " << |
| 482 input_cases[i].input; | 477 input_cases[i].input; |
| 483 EXPECT_EQ(input_cases[i].host.len, host.len) << "Input: " << | 478 EXPECT_EQ(input_cases[i].host.len, host.len) << "Input: " << |
| 484 input_cases[i].input; | 479 input_cases[i].input; |
| 485 } | 480 } |
| 486 } | 481 } |
| 487 | 482 |
| 488 } // namespace | 483 } // namespace |
| OLD | NEW |