Index: components/autofill/content/browser/request_autocomplete_manager_unittest.cc |
diff --git a/components/autofill/content/browser/request_autocomplete_manager_unittest.cc b/components/autofill/content/browser/request_autocomplete_manager_unittest.cc |
deleted file mode 100644 |
index 9786b80fef3bd63185d8c32ad60351827d81f99a..0000000000000000000000000000000000000000 |
--- a/components/autofill/content/browser/request_autocomplete_manager_unittest.cc |
+++ /dev/null |
@@ -1,174 +0,0 @@ |
-// Copyright 2013 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 "components/autofill/content/browser/request_autocomplete_manager.h" |
- |
-#include <stdint.h> |
- |
-#include <tuple> |
- |
-#include "base/macros.h" |
-#include "base/memory/ptr_util.h" |
-#include "components/autofill/content/browser/content_autofill_driver.h" |
-#include "components/autofill/content/common/autofill_messages.h" |
-#include "components/autofill/core/browser/test_autofill_client.h" |
-#include "content/public/browser/web_contents.h" |
-#include "content/public/test/mock_render_process_host.h" |
-#include "content/public/test/test_renderer_host.h" |
-#include "testing/gtest/include/gtest/gtest.h" |
- |
-namespace autofill { |
- |
-namespace { |
- |
-const char kAppLocale[] = "en-US"; |
-const AutofillManager::AutofillDownloadManagerState kDownloadState = |
- AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER; |
- |
-class TestAutofillManager : public AutofillManager { |
- public: |
- TestAutofillManager(AutofillDriver* driver, AutofillClient* client) |
- : AutofillManager(driver, client, kAppLocale, kDownloadState), |
- autofill_enabled_(true) {} |
- ~TestAutofillManager() override {} |
- |
- bool IsAutofillEnabled() const override { return autofill_enabled_; } |
- |
- void set_autofill_enabled(bool autofill_enabled) { |
- autofill_enabled_ = autofill_enabled; |
- } |
- |
- private: |
- bool autofill_enabled_; |
- |
- DISALLOW_COPY_AND_ASSIGN(TestAutofillManager); |
-}; |
- |
-class CustomTestAutofillClient : public TestAutofillClient { |
- public: |
- CustomTestAutofillClient() : should_simulate_success_(true) {} |
- |
- ~CustomTestAutofillClient() override {} |
- |
- void ShowRequestAutocompleteDialog(const FormData& form, |
- content::RenderFrameHost* rfh, |
- const ResultCallback& callback) override { |
- if (should_simulate_success_) { |
- FormStructure form_structure(form); |
- callback.Run( |
- AutocompleteResultSuccess, base::string16(), &form_structure); |
- } else { |
- callback.Run(AutofillClient::AutocompleteResultErrorDisabled, |
- base::string16(), |
- NULL); |
- } |
- } |
- |
- void set_should_simulate_success(bool should_simulate_success) { |
- should_simulate_success_ = should_simulate_success; |
- } |
- |
- private: |
- // Enable testing the path where a callback is called without a |
- // valid FormStructure. |
- bool should_simulate_success_; |
- |
- DISALLOW_COPY_AND_ASSIGN(CustomTestAutofillClient); |
-}; |
- |
-class TestContentAutofillDriver : public ContentAutofillDriver { |
- public: |
- TestContentAutofillDriver(content::RenderFrameHost* rfh, |
- AutofillClient* client) |
- : ContentAutofillDriver(rfh, client, kAppLocale, kDownloadState) { |
- SetAutofillManager(base::WrapUnique<AutofillManager>( |
- new TestAutofillManager(this, client))); |
- } |
- ~TestContentAutofillDriver() override {} |
- |
- TestAutofillManager* mock_autofill_manager() { |
- return static_cast<TestAutofillManager*>(autofill_manager()); |
- } |
- |
- DISALLOW_COPY_AND_ASSIGN(TestContentAutofillDriver); |
-}; |
- |
-} // namespace |
- |
-class RequestAutocompleteManagerTest : |
- public content::RenderViewHostTestHarness { |
- public: |
- RequestAutocompleteManagerTest() {} |
- |
- void SetUp() override { |
- content::RenderViewHostTestHarness::SetUp(); |
- |
- driver_.reset(new TestContentAutofillDriver(web_contents()->GetMainFrame(), |
- &autofill_client_)); |
- request_autocomplete_manager_.reset( |
- new RequestAutocompleteManager(driver_.get())); |
- } |
- |
- void TearDown() override { |
- // Reset the driver now to cause all pref observers to be removed and avoid |
- // crashes that otherwise occur in the destructor. |
- driver_.reset(); |
- content::RenderViewHostTestHarness::TearDown(); |
- } |
- |
- // Searches for an |AutofillMsg_RequestAutocompleteResult| message in the |
- // queue of sent IPC messages. If none is present, returns false. Otherwise, |
- // extracts the first |AutofillMsg_RequestAutocompleteResult| message, fills |
- // the output parameter with the value of the message's parameter, and |
- // clears the queue of sent messages. |
- bool GetAutocompleteResultMessage( |
- blink::WebFormElement::AutocompleteResult* result) { |
- const uint32_t kMsgID = AutofillMsg_RequestAutocompleteResult::ID; |
- const IPC::Message* message = |
- process()->sink().GetFirstMessageMatching(kMsgID); |
- if (!message) |
- return false; |
- std::tuple<blink::WebFormElement::AutocompleteResult, base::string16, |
- FormData> autofill_param; |
- AutofillMsg_RequestAutocompleteResult::Read(message, &autofill_param); |
- *result = std::get<0>(autofill_param); |
- process()->sink().ClearMessages(); |
- return true; |
- } |
- |
- protected: |
- CustomTestAutofillClient autofill_client_; |
- std::unique_ptr<TestContentAutofillDriver> driver_; |
- std::unique_ptr<RequestAutocompleteManager> request_autocomplete_manager_; |
- |
- DISALLOW_COPY_AND_ASSIGN(RequestAutocompleteManagerTest); |
-}; |
- |
-TEST_F(RequestAutocompleteManagerTest, OnRequestAutocompleteSuccess) { |
- blink::WebFormElement::AutocompleteResult result; |
- request_autocomplete_manager_->OnRequestAutocomplete(FormData()); |
- EXPECT_TRUE(GetAutocompleteResultMessage(&result)); |
- EXPECT_EQ(blink::WebFormElement::AutocompleteResultSuccess, result); |
-} |
- |
-TEST_F(RequestAutocompleteManagerTest, OnRequestAutocompleteCancel) { |
- blink::WebFormElement::AutocompleteResult result; |
- autofill_client_.set_should_simulate_success(false); |
- request_autocomplete_manager_->OnRequestAutocomplete(FormData()); |
- EXPECT_TRUE(GetAutocompleteResultMessage(&result)); |
- EXPECT_EQ(blink::WebFormElement::AutocompleteResultErrorDisabled, result); |
-} |
- |
-// Disabling autofill doesn't disable the dialog (it just disables the use of |
-// autofill in the dialog). |
-TEST_F(RequestAutocompleteManagerTest, |
- OnRequestAutocompleteWithAutofillDisabled) { |
- blink::WebFormElement::AutocompleteResult result; |
- driver_->mock_autofill_manager()->set_autofill_enabled(false); |
- request_autocomplete_manager_->OnRequestAutocomplete(FormData()); |
- EXPECT_TRUE(GetAutocompleteResultMessage(&result)); |
- EXPECT_EQ(blink::WebFormElement::AutocompleteResultSuccess, result); |
-} |
- |
-} // namespace autofill |