summaryrefslogtreecommitdiffstats
path: root/chromium/components/autofill/content/browser/autofill_driver_impl_unittest.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/autofill/content/browser/autofill_driver_impl_unittest.cc')
-rw-r--r--chromium/components/autofill/content/browser/autofill_driver_impl_unittest.cc293
1 files changed, 0 insertions, 293 deletions
diff --git a/chromium/components/autofill/content/browser/autofill_driver_impl_unittest.cc b/chromium/components/autofill/content/browser/autofill_driver_impl_unittest.cc
deleted file mode 100644
index 1dcf256e319..00000000000
--- a/chromium/components/autofill/content/browser/autofill_driver_impl_unittest.cc
+++ /dev/null
@@ -1,293 +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 <algorithm>
-#include <vector>
-
-#include "base/command_line.h"
-#include "base/memory/scoped_ptr.h"
-#include "base/strings/utf_string_conversions.h"
-#include "chrome/test/base/chrome_render_view_host_test_harness.h"
-#include "components/autofill/content/browser/autofill_driver_impl.h"
-#include "components/autofill/content/common/autofill_messages.h"
-#include "components/autofill/core/browser/autofill_external_delegate.h"
-#include "components/autofill/core/browser/autofill_manager.h"
-#include "components/autofill/core/browser/autofill_test_utils.h"
-#include "components/autofill/core/browser/test_autofill_manager_delegate.h"
-#include "components/autofill/core/common/autofill_switches.h"
-#include "components/autofill/core/common/form_data_predictions.h"
-#include "content/public/browser/browser_context.h"
-#include "content/public/browser/navigation_details.h"
-#include "content/public/browser/web_contents.h"
-#include "content/public/common/frame_navigate_params.h"
-#include "content/public/test/mock_render_process_host.h"
-#include "ipc/ipc_test_sink.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace autofill {
-
-namespace {
-
-const std::string kAppLocale = "en-US";
-const AutofillManager::AutofillDownloadManagerState kDownloadState =
- AutofillManager::DISABLE_AUTOFILL_DOWNLOAD_MANAGER;
-
-} // namespace
-
-class MockAutofillManager : public AutofillManager {
- public:
- MockAutofillManager(AutofillDriver* driver,
- AutofillManagerDelegate* delegate)
- : AutofillManager(driver, delegate, kAppLocale, kDownloadState) {
- }
- virtual ~MockAutofillManager() {}
-
- MOCK_METHOD0(Reset, void());
-};
-
-class TestAutofillDriverImpl : public AutofillDriverImpl {
- public:
- TestAutofillDriverImpl(content::WebContents* contents,
- AutofillManagerDelegate* delegate)
- : AutofillDriverImpl(contents, delegate, kAppLocale, kDownloadState) {
- scoped_ptr<AutofillManager> autofill_manager(
- new MockAutofillManager(this, delegate));
- SetAutofillManager(autofill_manager.Pass());
- }
- virtual ~TestAutofillDriverImpl() {}
-
- virtual MockAutofillManager* mock_autofill_manager() {
- return static_cast<MockAutofillManager*>(autofill_manager());
- }
-
- using AutofillDriverImpl::DidNavigateMainFrame;
-};
-
-class AutofillDriverImplTest : public ChromeRenderViewHostTestHarness {
- public:
- virtual void SetUp() OVERRIDE {
- ChromeRenderViewHostTestHarness::SetUp();
-
- test_manager_delegate_.reset(new TestAutofillManagerDelegate());
- driver_.reset(new TestAutofillDriverImpl(web_contents(),
- test_manager_delegate_.get()));
- }
-
- virtual 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();
- ChromeRenderViewHostTestHarness::TearDown();
- }
-
- protected:
- // Searches for an |AutofillMsg_FormDataFilled| message in the queue of sent
- // IPC messages. If none is present, returns false. Otherwise, extracts the
- // first |AutofillMsg_FormDataFilled| message, fills the output parameters
- // with the values of the message's parameters, and clears the queue of sent
- // messages.
- bool GetAutofillFormDataFilledMessage(int* page_id, FormData* results) {
- const uint32 kMsgID = AutofillMsg_FormDataFilled::ID;
- const IPC::Message* message =
- process()->sink().GetFirstMessageMatching(kMsgID);
- if (!message)
- return false;
- Tuple2<int, FormData> autofill_param;
- AutofillMsg_FormDataFilled::Read(message, &autofill_param);
- if (page_id)
- *page_id = autofill_param.a;
- if (results)
- *results = autofill_param.b;
- process()->sink().ClearMessages();
- return true;
- }
-
- // Searches for an |AutofillMsg_FieldTypePredictionsAvailable| message in the
- // queue of sent IPC messages. If none is present, returns false. Otherwise,
- // extracts the first |AutofillMsg_FieldTypePredictionsAvailable| message,
- // fills the output parameter with the values of the message's parameter, and
- // clears the queue of sent messages.
- bool GetFieldTypePredictionsAvailable(
- std::vector<FormDataPredictions>* predictions) {
- const uint32 kMsgID = AutofillMsg_FieldTypePredictionsAvailable::ID;
- const IPC::Message* message =
- process()->sink().GetFirstMessageMatching(kMsgID);
- if (!message)
- return false;
- Tuple1<std::vector<FormDataPredictions> > autofill_param;
- AutofillMsg_FieldTypePredictionsAvailable::Read(message, &autofill_param);
- if (predictions)
- *predictions = autofill_param.a;
-
- process()->sink().ClearMessages();
- return true;
- }
-
- // Searches for a message matching |messageID| in the queue of sent IPC
- // messages. If none is present, returns false. Otherwise, extracts the first
- // matching message, fills the output parameter with the string16 from the
- // message's parameter, and clears the queue of sent messages.
- bool GetString16FromMessageWithID(uint32 messageID, base::string16* value) {
- const IPC::Message* message =
- process()->sink().GetFirstMessageMatching(messageID);
- if (!message)
- return false;
- Tuple1<base::string16> autofill_param;
- switch (messageID) {
- case AutofillMsg_SetNodeText::ID:
- AutofillMsg_SetNodeText::Read(message, &autofill_param);
- break;
- case AutofillMsg_AcceptDataListSuggestion::ID:
- AutofillMsg_AcceptDataListSuggestion::Read(message, &autofill_param);
- break;
- case AutofillMsg_AcceptPasswordAutofillSuggestion::ID:
- AutofillMsg_AcceptPasswordAutofillSuggestion::Read(
- message,
- &autofill_param);
- break;
- default:
- NOTREACHED();
- }
- if (value)
- *value = autofill_param.a;
- process()->sink().ClearMessages();
- return true;
- }
-
- // Searches for a message matching |messageID| in the queue of sent IPC
- // messages. If none is present, returns false. Otherwise, clears the queue
- // of sent messages and returns true.
- bool HasMessageMatchingID(uint32 messageID) {
- const IPC::Message* message =
- process()->sink().GetFirstMessageMatching(messageID);
- if (!message)
- return false;
- process()->sink().ClearMessages();
- return true;
- }
-
- scoped_ptr<TestAutofillManagerDelegate> test_manager_delegate_;
- scoped_ptr<TestAutofillDriverImpl> driver_;
-};
-
-TEST_F(AutofillDriverImplTest, GetURLRequestContext) {
- net::URLRequestContextGetter* request_context =
- driver_->GetURLRequestContext();
- net::URLRequestContextGetter* expected_request_context =
- web_contents()->GetBrowserContext()->GetRequestContext();
- EXPECT_EQ(request_context, expected_request_context);
-}
-
-TEST_F(AutofillDriverImplTest, NavigatedToDifferentPage) {
- EXPECT_CALL(*driver_->mock_autofill_manager(), Reset());
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = true;
- details.is_in_page = false;
- ASSERT_TRUE(details.is_navigation_to_different_page());
- content::FrameNavigateParams params = content::FrameNavigateParams();
- driver_->DidNavigateMainFrame(details, params);
-}
-
-TEST_F(AutofillDriverImplTest, NavigatedWithinSamePage) {
- EXPECT_CALL(*driver_->mock_autofill_manager(), Reset()).Times(0);
- content::LoadCommittedDetails details = content::LoadCommittedDetails();
- details.is_main_frame = false;
- ASSERT_TRUE(!details.is_navigation_to_different_page());
- content::FrameNavigateParams params = content::FrameNavigateParams();
- driver_->DidNavigateMainFrame(details, params);
-}
-
-TEST_F(AutofillDriverImplTest, FormDataSentToRenderer) {
- int input_page_id = 42;
- FormData input_form_data;
- test::CreateTestAddressFormData(&input_form_data);
- driver_->SendFormDataToRenderer(input_page_id, input_form_data);
-
- int output_page_id = 0;
- FormData output_form_data;
- EXPECT_TRUE(GetAutofillFormDataFilledMessage(&output_page_id,
- &output_form_data));
- EXPECT_EQ(input_page_id, output_page_id);
- EXPECT_EQ(input_form_data, output_form_data);
-}
-
-TEST_F(AutofillDriverImplTest, TypePredictionsNotSentToRendererWhenDisabled) {
- FormData form;
- test::CreateTestAddressFormData(&form);
- FormStructure form_structure(form);
- std::vector<FormStructure*> forms(1, &form_structure);
- driver_->SendAutofillTypePredictionsToRenderer(forms);
- EXPECT_FALSE(GetFieldTypePredictionsAvailable(NULL));
-}
-
-TEST_F(AutofillDriverImplTest, TypePredictionsSentToRendererWhenEnabled) {
- CommandLine::ForCurrentProcess()->AppendSwitch(
- switches::kShowAutofillTypePredictions);
-
- FormData form;
- test::CreateTestAddressFormData(&form);
- FormStructure form_structure(form);
- std::vector<FormStructure*> forms(1, &form_structure);
- std::vector<FormDataPredictions> expected_type_predictions;
- FormStructure::GetFieldTypePredictions(forms, &expected_type_predictions);
- driver_->SendAutofillTypePredictionsToRenderer(forms);
-
- std::vector<FormDataPredictions> output_type_predictions;
- EXPECT_TRUE(GetFieldTypePredictionsAvailable(&output_type_predictions));
- EXPECT_EQ(expected_type_predictions, output_type_predictions);
-}
-
-TEST_F(AutofillDriverImplTest, PreviewActionSentToRenderer) {
- driver_->SetRendererActionOnFormDataReception(
- AutofillDriver::FORM_DATA_ACTION_PREVIEW);
- EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_SetAutofillActionPreview::ID));
-}
-
-TEST_F(AutofillDriverImplTest, FillActionSentToRenderer) {
- driver_->SetRendererActionOnFormDataReception(
- AutofillDriver::FORM_DATA_ACTION_FILL);
- EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_SetAutofillActionFill::ID));
-}
-
-TEST_F(AutofillDriverImplTest, AcceptDataListSuggestion) {
- base::string16 input_value(ASCIIToUTF16("barfoo"));
- base::string16 output_value;
- driver_->RendererShouldAcceptDataListSuggestion(input_value);
- EXPECT_TRUE(GetString16FromMessageWithID(
- AutofillMsg_AcceptDataListSuggestion::ID,
- &output_value));
- EXPECT_EQ(input_value, output_value);
-}
-
-TEST_F(AutofillDriverImplTest, AcceptPasswordAutofillSuggestion) {
- base::string16 input_value(ASCIIToUTF16("barbaz"));
- base::string16 output_value;
- driver_->RendererShouldAcceptPasswordAutofillSuggestion(input_value);
- EXPECT_TRUE(GetString16FromMessageWithID(
- AutofillMsg_AcceptPasswordAutofillSuggestion::ID,
- &output_value));
- EXPECT_EQ(input_value, output_value);
-}
-
-TEST_F(AutofillDriverImplTest, ClearFilledFormSentToRenderer) {
- driver_->RendererShouldClearFilledForm();
- EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_ClearForm::ID));
-}
-
-TEST_F(AutofillDriverImplTest, ClearPreviewedFormSentToRenderer) {
- driver_->RendererShouldClearPreviewedForm();
- EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_ClearPreviewedForm::ID));
-}
-
-TEST_F(AutofillDriverImplTest, SetNodeText) {
- base::string16 input_value(ASCIIToUTF16("barqux"));
- base::string16 output_value;
- driver_->RendererShouldSetNodeText(input_value);
- EXPECT_TRUE(GetString16FromMessageWithID(AutofillMsg_SetNodeText::ID,
- &output_value));
- EXPECT_EQ(input_value, output_value);
-}
-
-} // namespace autofill