Chromium Code Reviews| Index: components/autofill/content/browser/autofill_driver_impl_unittest.cc | 
| diff --git a/components/autofill/content/browser/autofill_driver_impl_unittest.cc b/components/autofill/content/browser/autofill_driver_impl_unittest.cc | 
| index 9b0e5d490a3b083fb08f1bae5dd21149e168d7b5..836cbcb01445f8f1ffde3656619c50b7c9e79ea4 100644 | 
| --- a/components/autofill/content/browser/autofill_driver_impl_unittest.cc | 
| +++ b/components/autofill/content/browser/autofill_driver_impl_unittest.cc | 
| @@ -8,12 +8,16 @@ | 
| #include "base/memory/scoped_ptr.h" | 
| #include "chrome/test/base/chrome_render_view_host_test_harness.h" | 
| #include "components/autofill/content/browser/autofill_driver_impl.h" | 
| +#include "components/autofill/core/browser/autofill_common_test.h" | 
| #include "components/autofill/core/browser/autofill_external_delegate.h" | 
| #include "components/autofill/core/browser/autofill_manager.h" | 
| #include "components/autofill/core/browser/test_autofill_manager_delegate.h" | 
| +#include "components/autofill/core/common/autofill_messages.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" | 
| @@ -74,6 +78,28 @@ class AutofillDriverImplTest : public ChromeRenderViewHostTestHarness { | 
| } | 
| protected: | 
| + // Searches for an |AutofillMsg_FormDataFilled| message in the queue of sent | 
| + // IPC messages. If none is present, returns false. Otherwise, Extracts the | 
| 
 
Ilya Sherman
2013/06/27 23:13:02
nit: "Extracts" -> "extracts"
 
blundell
2013/06/28 08:25:58
Done.
 
 | 
| + // 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; | 
| + } | 
| + | 
| scoped_ptr<TestAutofillManagerDelegate> test_manager_delegate_; | 
| scoped_ptr<TestAutofillDriverImpl> driver_; | 
| }; | 
| @@ -97,4 +123,18 @@ TEST_F(AutofillDriverImplTest, NavigatedWithinSamePage) { | 
| 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); | 
| +} | 
| + | 
| } // namespace autofill |