Index: components/autofill/browser/autocomplete_history_manager_unittest.cc |
diff --git a/components/autofill/browser/autocomplete_history_manager_unittest.cc b/components/autofill/browser/autocomplete_history_manager_unittest.cc |
deleted file mode 100644 |
index 562b73fec55c844428ac6cab84e869254f8bc2f0..0000000000000000000000000000000000000000 |
--- a/components/autofill/browser/autocomplete_history_manager_unittest.cc |
+++ /dev/null |
@@ -1,258 +0,0 @@ |
-// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include <vector> |
- |
-#include "base/memory/ref_counted.h" |
-#include "base/prefs/testing_pref_service.h" |
-#include "base/run_loop.h" |
-#include "base/strings/string16.h" |
-#include "base/strings/utf_string_conversions.h" |
-#include "base/synchronization/waitable_event.h" |
-#include "chrome/browser/webdata/web_data_service_factory.h" |
-#include "chrome/test/base/chrome_render_view_host_test_harness.h" |
-#include "chrome/test/base/testing_browser_process.h" |
-#include "chrome/test/base/testing_profile.h" |
-#include "components/autofill/browser/autocomplete_history_manager.h" |
-#include "components/autofill/browser/autofill_external_delegate.h" |
-#include "components/autofill/browser/autofill_manager.h" |
-#include "components/autofill/browser/test_autofill_driver.h" |
-#include "components/autofill/browser/test_autofill_manager_delegate.h" |
-#include "components/autofill/browser/webdata/autofill_webdata_service.h" |
-#include "components/autofill/core/common/form_data.h" |
-#include "components/webdata/common/web_data_service_test_util.h" |
-#include "content/public/test/test_browser_thread.h" |
-#include "content/public/test/test_utils.h" |
-#include "testing/gmock/include/gmock/gmock.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
-#include "ui/gfx/rect.h" |
- |
-using content::WebContents; |
-using testing::_; |
- |
-namespace autofill { |
- |
-namespace { |
- |
-class MockWebDataService : public AutofillWebDataService { |
- public: |
- MockWebDataService() |
- : AutofillWebDataService() { |
- current_mock_web_data_service_ = this; |
- } |
- |
- MOCK_METHOD1(AddFormFields, void(const std::vector<FormFieldData>&)); |
- |
- static scoped_refptr<MockWebDataService> GetCurrent() { |
- if (!current_mock_web_data_service_) { |
- return new MockWebDataService(); |
- } |
- return current_mock_web_data_service_; |
- } |
- |
- protected: |
- virtual ~MockWebDataService() {} |
- |
- private: |
- // Keep track of the most recently created instance, so that it can be |
- // associated with the current profile when Build() is called. |
- static MockWebDataService* current_mock_web_data_service_; |
-}; |
- |
-MockWebDataService* MockWebDataService::current_mock_web_data_service_ = NULL; |
- |
-class MockWebDataServiceWrapperCurrent : public MockWebDataServiceWrapperBase { |
- public: |
- static BrowserContextKeyedService* Build(content::BrowserContext* profile) { |
- return new MockWebDataServiceWrapperCurrent(); |
- } |
- |
- MockWebDataServiceWrapperCurrent() {} |
- |
- virtual scoped_refptr<AutofillWebDataService> GetAutofillWebData() OVERRIDE { |
- return MockWebDataService::GetCurrent(); |
- } |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(MockWebDataServiceWrapperCurrent); |
-}; |
- |
-class MockAutofillManagerDelegate |
- : public autofill::TestAutofillManagerDelegate { |
- public: |
- MockAutofillManagerDelegate() {} |
- virtual ~MockAutofillManagerDelegate() {} |
- virtual PrefService* GetPrefs() OVERRIDE { return &prefs_; } |
- |
- private: |
- TestingPrefServiceSimple prefs_; |
- |
- DISALLOW_COPY_AND_ASSIGN(MockAutofillManagerDelegate); |
-}; |
- |
-} // namespace |
- |
-class AutocompleteHistoryManagerTest : public ChromeRenderViewHostTestHarness { |
- protected: |
- virtual void SetUp() OVERRIDE { |
- ChromeRenderViewHostTestHarness::SetUp(); |
- web_data_service_ = new MockWebDataService(); |
- WebDataServiceFactory::GetInstance()->SetTestingFactory( |
- profile(), MockWebDataServiceWrapperCurrent::Build); |
- autofill_driver_.reset(new TestAutofillDriver(web_contents())); |
- autocomplete_manager_.reset( |
- new AutocompleteHistoryManager(autofill_driver_.get())); |
- } |
- |
- virtual void TearDown() OVERRIDE { |
- autocomplete_manager_.reset(); |
- web_data_service_ = NULL; |
- ChromeRenderViewHostTestHarness::TearDown(); |
- } |
- |
- scoped_refptr<MockWebDataService> web_data_service_; |
- scoped_ptr<AutocompleteHistoryManager> autocomplete_manager_; |
- scoped_ptr<AutofillDriver> autofill_driver_; |
- MockAutofillManagerDelegate manager_delegate; |
-}; |
- |
-// Tests that credit card numbers are not sent to the WebDatabase to be saved. |
-TEST_F(AutocompleteHistoryManagerTest, CreditCardNumberValue) { |
- FormData form; |
- form.name = ASCIIToUTF16("MyForm"); |
- form.method = ASCIIToUTF16("POST"); |
- form.origin = GURL("http://myform.com/form.html"); |
- form.action = GURL("http://myform.com/submit.html"); |
- form.user_submitted = true; |
- |
- // Valid Visa credit card number pulled from the paypal help site. |
- FormFieldData valid_cc; |
- valid_cc.label = ASCIIToUTF16("Credit Card"); |
- valid_cc.name = ASCIIToUTF16("ccnum"); |
- valid_cc.value = ASCIIToUTF16("4012888888881881"); |
- valid_cc.form_control_type = "text"; |
- form.fields.push_back(valid_cc); |
- |
- EXPECT_CALL(*web_data_service_.get(), AddFormFields(_)).Times(0); |
- autocomplete_manager_->OnFormSubmitted(form); |
-} |
- |
-// Contrary test to AutocompleteHistoryManagerTest.CreditCardNumberValue. The |
-// value being submitted is not a valid credit card number, so it will be sent |
-// to the WebDatabase to be saved. |
-TEST_F(AutocompleteHistoryManagerTest, NonCreditCardNumberValue) { |
- FormData form; |
- form.name = ASCIIToUTF16("MyForm"); |
- form.method = ASCIIToUTF16("POST"); |
- form.origin = GURL("http://myform.com/form.html"); |
- form.action = GURL("http://myform.com/submit.html"); |
- form.user_submitted = true; |
- |
- // Invalid credit card number. |
- FormFieldData invalid_cc; |
- invalid_cc.label = ASCIIToUTF16("Credit Card"); |
- invalid_cc.name = ASCIIToUTF16("ccnum"); |
- invalid_cc.value = ASCIIToUTF16("4580123456789012"); |
- invalid_cc.form_control_type = "text"; |
- form.fields.push_back(invalid_cc); |
- |
- EXPECT_CALL(*(web_data_service_.get()), AddFormFields(_)).Times(1); |
- autocomplete_manager_->OnFormSubmitted(form); |
-} |
- |
-// Tests that SSNs are not sent to the WebDatabase to be saved. |
-TEST_F(AutocompleteHistoryManagerTest, SSNValue) { |
- FormData form; |
- form.name = ASCIIToUTF16("MyForm"); |
- form.method = ASCIIToUTF16("POST"); |
- form.origin = GURL("http://myform.com/form.html"); |
- form.action = GURL("http://myform.com/submit.html"); |
- form.user_submitted = true; |
- |
- FormFieldData ssn; |
- ssn.label = ASCIIToUTF16("Social Security Number"); |
- ssn.name = ASCIIToUTF16("ssn"); |
- ssn.value = ASCIIToUTF16("078-05-1120"); |
- ssn.form_control_type = "text"; |
- form.fields.push_back(ssn); |
- |
- EXPECT_CALL(*web_data_service_.get(), AddFormFields(_)).Times(0); |
- autocomplete_manager_->OnFormSubmitted(form); |
-} |
- |
-// Verify that autocomplete text is saved for search fields. |
-TEST_F(AutocompleteHistoryManagerTest, SearchField) { |
- FormData form; |
- form.name = ASCIIToUTF16("MyForm"); |
- form.method = ASCIIToUTF16("POST"); |
- form.origin = GURL("http://myform.com/form.html"); |
- form.action = GURL("http://myform.com/submit.html"); |
- form.user_submitted = true; |
- |
- // Search field. |
- FormFieldData search_field; |
- search_field.label = ASCIIToUTF16("Search"); |
- search_field.name = ASCIIToUTF16("search"); |
- search_field.value = ASCIIToUTF16("my favorite query"); |
- search_field.form_control_type = "search"; |
- form.fields.push_back(search_field); |
- |
- EXPECT_CALL(*(web_data_service_.get()), AddFormFields(_)).Times(1); |
- autocomplete_manager_->OnFormSubmitted(form); |
-} |
- |
-namespace { |
- |
-class MockAutofillExternalDelegate : public AutofillExternalDelegate { |
- public: |
- explicit MockAutofillExternalDelegate(content::WebContents* web_contents, |
- AutofillManager* autofill_manager) |
- : AutofillExternalDelegate(web_contents, autofill_manager) {} |
- virtual ~MockAutofillExternalDelegate() {} |
- |
- MOCK_METHOD5(OnSuggestionsReturned, |
- void(int query_id, |
- const std::vector<base::string16>& autofill_values, |
- const std::vector<base::string16>& autofill_labels, |
- const std::vector<base::string16>& autofill_icons, |
- const std::vector<int>& autofill_unique_ids)); |
- |
- private: |
- DISALLOW_COPY_AND_ASSIGN(MockAutofillExternalDelegate); |
-}; |
- |
-class AutocompleteHistoryManagerNoIPC : public AutocompleteHistoryManager { |
- public: |
- explicit AutocompleteHistoryManagerNoIPC(AutofillDriver* driver) |
- : AutocompleteHistoryManager(driver) { |
- // Ensure that IPC is not sent during the test. |
- set_send_ipc(false); |
- } |
- |
- using AutocompleteHistoryManager::SendSuggestions; |
-}; |
- |
-} // namespace |
- |
-// Make sure our external delegate is called at the right time. |
-TEST_F(AutocompleteHistoryManagerTest, ExternalDelegate) { |
- AutocompleteHistoryManagerNoIPC autocomplete_history_manager( |
- autofill_driver_.get()); |
- |
- scoped_ptr<AutofillManager> autofill_manager(new AutofillManager( |
- autofill_driver_.get(), |
- &manager_delegate, |
- "en-US", |
- AutofillManager::ENABLE_AUTOFILL_DOWNLOAD_MANAGER)); |
- |
- MockAutofillExternalDelegate external_delegate(web_contents(), |
- autofill_manager.get()); |
- autocomplete_history_manager.SetExternalDelegate(&external_delegate); |
- |
- // Should trigger a call to OnSuggestionsReturned, verified by the mock. |
- EXPECT_CALL(external_delegate, OnSuggestionsReturned(_, _, _, _, _)); |
- autocomplete_history_manager.SendSuggestions(NULL); |
-} |
- |
-} // namespace autofill |