Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(71)

Side by Side Diff: components/autofill/content/browser/autofill_driver_impl_unittest.cc

Issue 69293007: Abstracted AutofillMsg_SetNodeText IPC out of core autofill code. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comment. Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 <algorithm> 5 #include <algorithm>
6 #include <vector> 6 #include <vector>
7 7
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
75 } 75 }
76 76
77 virtual void TearDown() OVERRIDE { 77 virtual void TearDown() OVERRIDE {
78 // Reset the driver now to cause all pref observers to be removed and avoid 78 // Reset the driver now to cause all pref observers to be removed and avoid
79 // crashes that otherwise occur in the destructor. 79 // crashes that otherwise occur in the destructor.
80 driver_.reset(); 80 driver_.reset();
81 ChromeRenderViewHostTestHarness::TearDown(); 81 ChromeRenderViewHostTestHarness::TearDown();
82 } 82 }
83 83
84 protected: 84 protected:
85 // Searches for an |AutofillMsg_AcceptDataListSuggestion| message in the queue
86 // of sent IPC messages. If none is present, returns false. Otherwise,
87 // extracts the first |AutofillMsg_AcceptDataListSuggestion| message, fills
88 // the output parameter with the value of the message's parameter, and clears
89 // the queue of sent messages.
90 bool GetAcceptDataListSuggestion(
91 base::string16* value) {
92 const uint32 kMsgID = AutofillMsg_AcceptDataListSuggestion::ID;
93 const IPC::Message* message =
94 process()->sink().GetFirstMessageMatching(kMsgID);
95 if (!message)
96 return false;
97 Tuple1<base::string16> autofill_param;
98 AutofillMsg_AcceptDataListSuggestion::Read(message, &autofill_param);
99 if (value)
100 *value = autofill_param.a;
101 process()->sink().ClearMessages();
102 return true;
103 }
104
105 // Searches for an |AutofillMsg_FormDataFilled| message in the queue of sent 85 // Searches for an |AutofillMsg_FormDataFilled| message in the queue of sent
106 // IPC messages. If none is present, returns false. Otherwise, extracts the 86 // IPC messages. If none is present, returns false. Otherwise, extracts the
107 // first |AutofillMsg_FormDataFilled| message, fills the output parameters 87 // first |AutofillMsg_FormDataFilled| message, fills the output parameters
108 // with the values of the message's parameters, and clears the queue of sent 88 // with the values of the message's parameters, and clears the queue of sent
109 // messages. 89 // messages.
110 bool GetAutofillFormDataFilledMessage(int* page_id, FormData* results) { 90 bool GetAutofillFormDataFilledMessage(int* page_id, FormData* results) {
111 const uint32 kMsgID = AutofillMsg_FormDataFilled::ID; 91 const uint32 kMsgID = AutofillMsg_FormDataFilled::ID;
112 const IPC::Message* message = 92 const IPC::Message* message =
113 process()->sink().GetFirstMessageMatching(kMsgID); 93 process()->sink().GetFirstMessageMatching(kMsgID);
114 if (!message) 94 if (!message)
(...skipping 23 matching lines...) Expand all
138 Tuple1<std::vector<FormDataPredictions> > autofill_param; 118 Tuple1<std::vector<FormDataPredictions> > autofill_param;
139 AutofillMsg_FieldTypePredictionsAvailable::Read(message, &autofill_param); 119 AutofillMsg_FieldTypePredictionsAvailable::Read(message, &autofill_param);
140 if (predictions) 120 if (predictions)
141 *predictions = autofill_param.a; 121 *predictions = autofill_param.a;
142 122
143 process()->sink().ClearMessages(); 123 process()->sink().ClearMessages();
144 return true; 124 return true;
145 } 125 }
146 126
147 // Searches for a message matching |messageID| in the queue of sent IPC 127 // Searches for a message matching |messageID| in the queue of sent IPC
128 // messages. If none is present, returns false. Otherwise, extracts the first
129 // matching message, fills the output parameter with the string16 from the
130 // message's parameter, and clears the queue of sent messages.
131 bool GetString16FromMessageWithID(uint32 messageID, base::string16* value) {
132 const IPC::Message* message =
133 process()->sink().GetFirstMessageMatching(messageID);
134 if (!message)
135 return false;
136 Tuple1<base::string16> autofill_param;
137 switch (messageID) {
138 case AutofillMsg_SetNodeText::ID:
139 AutofillMsg_SetNodeText::Read(message, &autofill_param);
140 break;
141 case AutofillMsg_AcceptDataListSuggestion::ID:
142 AutofillMsg_AcceptDataListSuggestion::Read(message, &autofill_param);
143 break;
144 default:
145 NOTREACHED();
146 }
147 if (value)
148 *value = autofill_param.a;
149 process()->sink().ClearMessages();
150 return true;
151 }
152
153 // Searches for a message matching |messageID| in the queue of sent IPC
148 // messages. If none is present, returns false. Otherwise, clears the queue 154 // messages. If none is present, returns false. Otherwise, clears the queue
149 // of sent messages and returns true. 155 // of sent messages and returns true.
150 bool HasMessageMatchingID(uint32 messageID) { 156 bool HasMessageMatchingID(uint32 messageID) {
151 const IPC::Message* message = 157 const IPC::Message* message =
152 process()->sink().GetFirstMessageMatching(messageID); 158 process()->sink().GetFirstMessageMatching(messageID);
153 if (!message) 159 if (!message)
154 return false; 160 return false;
155 process()->sink().ClearMessages(); 161 process()->sink().ClearMessages();
156 return true; 162 return true;
157 } 163 }
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_SetAutofillActionPreview::ID)); 231 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_SetAutofillActionPreview::ID));
226 } 232 }
227 233
228 TEST_F(AutofillDriverImplTest, FillActionSentToRenderer) { 234 TEST_F(AutofillDriverImplTest, FillActionSentToRenderer) {
229 driver_->SetRendererActionOnFormDataReception( 235 driver_->SetRendererActionOnFormDataReception(
230 AutofillDriver::FORM_DATA_ACTION_FILL); 236 AutofillDriver::FORM_DATA_ACTION_FILL);
231 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_SetAutofillActionFill::ID)); 237 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_SetAutofillActionFill::ID));
232 } 238 }
233 239
234 TEST_F(AutofillDriverImplTest, AcceptDataListSuggestion) { 240 TEST_F(AutofillDriverImplTest, AcceptDataListSuggestion) {
235 base::string16 inputValue(UTF8ToUTF16("barfoo")); 241 base::string16 input_value(ASCIIToUTF16("barfoo"));
236 base::string16 outputValue; 242 base::string16 output_value;
237 driver_->RendererShouldAcceptDataListSuggestion(inputValue); 243 driver_->RendererShouldAcceptDataListSuggestion(input_value);
238 EXPECT_TRUE(GetAcceptDataListSuggestion(&outputValue)); 244 EXPECT_TRUE(GetString16FromMessageWithID(
239 EXPECT_EQ(inputValue, outputValue); 245 AutofillMsg_AcceptDataListSuggestion::ID,
246 &output_value));
247 EXPECT_EQ(input_value, output_value);
240 } 248 }
241 249
242 TEST_F(AutofillDriverImplTest, ClearFilledFormSentToRenderer) { 250 TEST_F(AutofillDriverImplTest, ClearFilledFormSentToRenderer) {
243 driver_->RendererShouldClearFilledForm(); 251 driver_->RendererShouldClearFilledForm();
244 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_ClearForm::ID)); 252 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_ClearForm::ID));
245 } 253 }
246 254
247 TEST_F(AutofillDriverImplTest, ClearPreviewedFormSentToRenderer) { 255 TEST_F(AutofillDriverImplTest, ClearPreviewedFormSentToRenderer) {
248 driver_->RendererShouldClearPreviewedForm(); 256 driver_->RendererShouldClearPreviewedForm();
249 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_ClearPreviewedForm::ID)); 257 EXPECT_TRUE(HasMessageMatchingID(AutofillMsg_ClearPreviewedForm::ID));
250 } 258 }
251 259
260 TEST_F(AutofillDriverImplTest, SetNodeText) {
261 base::string16 input_value(ASCIIToUTF16("barqux"));
262 base::string16 output_value;
263 driver_->RendererShouldSetNodeText(input_value);
264 EXPECT_TRUE(GetString16FromMessageWithID(AutofillMsg_SetNodeText::ID,
265 &output_value));
266 EXPECT_EQ(input_value, output_value);
267 }
268
252 } // namespace autofill 269 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/content/browser/autofill_driver_impl.cc ('k') | components/autofill/core/browser/autofill_driver.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698