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

Side by Side Diff: components/autofill/browser/autofill_external_delegate_unittest.cc

Issue 15769018: [Autofill] Determine Popup RTLness from page (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fix android compile Created 7 years, 6 months 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 (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <vector> 5 #include <vector>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/strings/string16.h" 8 #include "base/strings/string16.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "chrome/test/base/chrome_render_view_host_test_harness.h" 10 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
45 45
46 private: 46 private:
47 DISALLOW_COPY_AND_ASSIGN(MockAutofillExternalDelegate); 47 DISALLOW_COPY_AND_ASSIGN(MockAutofillExternalDelegate);
48 }; 48 };
49 49
50 class MockAutofillManagerDelegate 50 class MockAutofillManagerDelegate
51 : public autofill::TestAutofillManagerDelegate { 51 : public autofill::TestAutofillManagerDelegate {
52 public: 52 public:
53 MockAutofillManagerDelegate() {} 53 MockAutofillManagerDelegate() {}
54 54
55 MOCK_METHOD6(ShowAutofillPopup, 55 MOCK_METHOD7(ShowAutofillPopup,
56 void(const gfx::RectF& element_bounds, 56 void(const gfx::RectF& element_bounds,
57 base::i18n::TextDirection text_direction,
57 const std::vector<base::string16>& values, 58 const std::vector<base::string16>& values,
58 const std::vector<base::string16>& labels, 59 const std::vector<base::string16>& labels,
59 const std::vector<base::string16>& icons, 60 const std::vector<base::string16>& icons,
60 const std::vector<int>& identifiers, 61 const std::vector<int>& identifiers,
61 base::WeakPtr<AutofillPopupDelegate> delegate)); 62 base::WeakPtr<AutofillPopupDelegate> delegate));
62 63
63 MOCK_METHOD0(HideAutofillPopup, void()); 64 MOCK_METHOD0(HideAutofillPopup, void());
64 65
65 private: 66 private:
66 DISALLOW_COPY_AND_ASSIGN(MockAutofillManagerDelegate); 67 DISALLOW_COPY_AND_ASSIGN(MockAutofillManagerDelegate);
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 external_delegate_; 129 external_delegate_;
129 }; 130 };
130 131
131 // Test that our external delegate called the virtual methods at the right time. 132 // Test that our external delegate called the virtual methods at the right time.
132 TEST_F(AutofillExternalDelegateUnitTest, TestExternalDelegateVirtualCalls) { 133 TEST_F(AutofillExternalDelegateUnitTest, TestExternalDelegateVirtualCalls) {
133 IssueOnQuery(kQueryId); 134 IssueOnQuery(kQueryId);
134 135
135 // The enums must be cast to ints to prevent compile errors on linux_rel. 136 // The enums must be cast to ints to prevent compile errors on linux_rel.
136 EXPECT_CALL(manager_delegate_, 137 EXPECT_CALL(manager_delegate_,
137 ShowAutofillPopup( 138 ShowAutofillPopup(
138 _, _, _, _, 139 _, _, _, _, _,
139 testing::ElementsAre( 140 testing::ElementsAre(
140 kAutofillProfileId, 141 kAutofillProfileId,
141 static_cast<int>(WebAutofillClient::MenuItemIDSeparator), 142 static_cast<int>(WebAutofillClient::MenuItemIDSeparator),
142 static_cast<int>( 143 static_cast<int>(
143 WebAutofillClient::MenuItemIDAutofillOptions)), 144 WebAutofillClient::MenuItemIDAutofillOptions)),
144 _)); 145 _));
145 146
146 // This should call ShowAutofillPopup. 147 // This should call ShowAutofillPopup.
147 std::vector<base::string16> autofill_item; 148 std::vector<base::string16> autofill_item;
148 autofill_item.push_back(base::string16()); 149 autofill_item.push_back(base::string16());
(...skipping 25 matching lines...) Expand all
174 data_list_ids.push_back(WebAutofillClient::MenuItemIDDataListEntry); 175 data_list_ids.push_back(WebAutofillClient::MenuItemIDDataListEntry);
175 176
176 external_delegate_->SetCurrentDataListValues(data_list_items, 177 external_delegate_->SetCurrentDataListValues(data_list_items,
177 data_list_items, 178 data_list_items,
178 data_list_items, 179 data_list_items,
179 data_list_ids); 180 data_list_ids);
180 181
181 // The enums must be cast to ints to prevent compile errors on linux_rel. 182 // The enums must be cast to ints to prevent compile errors on linux_rel.
182 EXPECT_CALL(manager_delegate_, 183 EXPECT_CALL(manager_delegate_,
183 ShowAutofillPopup( 184 ShowAutofillPopup(
184 _, _, _, _, 185 _, _, _, _, _,
185 testing::ElementsAre( 186 testing::ElementsAre(
186 static_cast<int>( 187 static_cast<int>(
187 WebAutofillClient::MenuItemIDDataListEntry), 188 WebAutofillClient::MenuItemIDDataListEntry),
188 static_cast<int>(WebAutofillClient::MenuItemIDSeparator), 189 static_cast<int>(WebAutofillClient::MenuItemIDSeparator),
189 kAutofillProfileId, 190 kAutofillProfileId,
190 static_cast<int>(WebAutofillClient::MenuItemIDSeparator), 191 static_cast<int>(WebAutofillClient::MenuItemIDSeparator),
191 static_cast<int>( 192 static_cast<int>(
192 WebAutofillClient::MenuItemIDAutofillOptions)), 193 WebAutofillClient::MenuItemIDAutofillOptions)),
193 _)); 194 _));
194 195
195 // This should call ShowAutofillPopup. 196 // This should call ShowAutofillPopup.
196 std::vector<base::string16> autofill_item; 197 std::vector<base::string16> autofill_item;
197 autofill_item.push_back(base::string16()); 198 autofill_item.push_back(base::string16());
198 std::vector<int> autofill_ids; 199 std::vector<int> autofill_ids;
199 autofill_ids.push_back(kAutofillProfileId); 200 autofill_ids.push_back(kAutofillProfileId);
200 external_delegate_->OnSuggestionsReturned(kQueryId, 201 external_delegate_->OnSuggestionsReturned(kQueryId,
201 autofill_item, 202 autofill_item,
202 autofill_item, 203 autofill_item,
203 autofill_item, 204 autofill_item,
204 autofill_ids); 205 autofill_ids);
205 206
206 // Try calling OnSuggestionsReturned with no Autofill values and ensure 207 // Try calling OnSuggestionsReturned with no Autofill values and ensure
207 // the datalist items are still shown. 208 // the datalist items are still shown.
208 // The enum must be cast to an int to prevent compile errors on linux_rel. 209 // The enum must be cast to an int to prevent compile errors on linux_rel.
209 EXPECT_CALL(manager_delegate_, 210 EXPECT_CALL(manager_delegate_,
210 ShowAutofillPopup( 211 ShowAutofillPopup(
211 _, _, _, _, 212 _, _, _, _, _,
212 testing::ElementsAre( 213 testing::ElementsAre(
213 static_cast<int>( 214 static_cast<int>(
214 WebAutofillClient::MenuItemIDDataListEntry)), 215 WebAutofillClient::MenuItemIDDataListEntry)),
215 _)); 216 _));
216 217
217 autofill_item = std::vector<base::string16>(); 218 autofill_item = std::vector<base::string16>();
218 autofill_ids = std::vector<int>(); 219 autofill_ids = std::vector<int>();
219 external_delegate_->OnSuggestionsReturned(kQueryId, 220 external_delegate_->OnSuggestionsReturned(kQueryId,
220 autofill_item, 221 autofill_item,
221 autofill_item, 222 autofill_item,
222 autofill_item, 223 autofill_item,
223 autofill_ids); 224 autofill_ids);
224 } 225 }
225 226
226 // Test that the Autofill popup is able to display warnings explaining why 227 // Test that the Autofill popup is able to display warnings explaining why
227 // Autofill is disabled for a website. 228 // Autofill is disabled for a website.
228 // Regression test for http://crbug.com/247880 229 // Regression test for http://crbug.com/247880
229 TEST_F(AutofillExternalDelegateUnitTest, AutofillWarnings) { 230 TEST_F(AutofillExternalDelegateUnitTest, AutofillWarnings) {
230 IssueOnQuery(kQueryId); 231 IssueOnQuery(kQueryId);
231 232
232 // The enums must be cast to ints to prevent compile errors on linux_rel. 233 // The enums must be cast to ints to prevent compile errors on linux_rel.
233 EXPECT_CALL(manager_delegate_, 234 EXPECT_CALL(manager_delegate_,
234 ShowAutofillPopup( 235 ShowAutofillPopup(
235 _, _, _, _, 236 _, _, _, _, _,
236 testing::ElementsAre( 237 testing::ElementsAre(
237 static_cast<int>( 238 static_cast<int>(
238 WebAutofillClient::MenuItemIDWarningMessage)), 239 WebAutofillClient::MenuItemIDWarningMessage)),
239 _)); 240 _));
240 241
241 // This should call ShowAutofillPopup. 242 // This should call ShowAutofillPopup.
242 std::vector<base::string16> autofill_item; 243 std::vector<base::string16> autofill_item;
243 autofill_item.push_back(base::string16()); 244 autofill_item.push_back(base::string16());
244 std::vector<int> autofill_ids; 245 std::vector<int> autofill_ids;
245 autofill_ids.push_back(WebAutofillClient::MenuItemIDWarningMessage); 246 autofill_ids.push_back(WebAutofillClient::MenuItemIDWarningMessage);
(...skipping 30 matching lines...) Expand all
276 external_delegate_->DidSelectSuggestion( 277 external_delegate_->DidSelectSuggestion(
277 WebAutofillClient::MenuItemIDPasswordEntry); 278 WebAutofillClient::MenuItemIDPasswordEntry);
278 279
279 EXPECT_CALL(*external_delegate_, ClearPreviewedForm()).Times(1); 280 EXPECT_CALL(*external_delegate_, ClearPreviewedForm()).Times(1);
280 external_delegate_->DidSelectSuggestion(1); 281 external_delegate_->DidSelectSuggestion(1);
281 } 282 }
282 283
283 // Test that the popup is hidden once we are done editing the autofill field. 284 // Test that the popup is hidden once we are done editing the autofill field.
284 TEST_F(AutofillExternalDelegateUnitTest, 285 TEST_F(AutofillExternalDelegateUnitTest,
285 ExternalDelegateHidePopupAfterEditing) { 286 ExternalDelegateHidePopupAfterEditing) {
286 EXPECT_CALL(manager_delegate_, ShowAutofillPopup(_, _, _, _, _, _)); 287 EXPECT_CALL(manager_delegate_, ShowAutofillPopup(_, _, _, _, _, _, _));
287 autofill::GenerateTestAutofillPopup(external_delegate_.get()); 288 autofill::GenerateTestAutofillPopup(external_delegate_.get());
288 289
289 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 290 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
290 external_delegate_->DidEndTextFieldEditing(); 291 external_delegate_->DidEndTextFieldEditing();
291 } 292 }
292 293
293 // Test that the popup is marked as visible after recieving password 294 // Test that the popup is marked as visible after recieving password
294 // suggestions. 295 // suggestions.
295 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegatePasswordSuggestions) { 296 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegatePasswordSuggestions) {
296 static const base::string16 kUsername = ASCIIToUTF16("username"); 297 static const base::string16 kUsername = ASCIIToUTF16("username");
297 std::vector<base::string16> suggestions; 298 std::vector<base::string16> suggestions;
298 suggestions.push_back(kUsername); 299 suggestions.push_back(kUsername);
299 300
300 FormFieldData field; 301 FormFieldData field;
301 field.is_focusable = true; 302 field.is_focusable = true;
302 field.should_autocomplete = true; 303 field.should_autocomplete = true;
303 const gfx::RectF element_bounds; 304 const gfx::RectF element_bounds;
304 305
305 FormFieldData username_field_data; 306 FormFieldData username_field_data;
306 username_field_data.value = kUsername; 307 username_field_data.value = kUsername;
307 PasswordFormFillData password_form_fill_data; 308 PasswordFormFillData password_form_fill_data;
308 password_form_fill_data.basic_data.fields.push_back(username_field_data); 309 password_form_fill_data.basic_data.fields.push_back(username_field_data);
309 external_delegate_->AddPasswordFormMapping(field, password_form_fill_data); 310 external_delegate_->AddPasswordFormMapping(field, password_form_fill_data);
310 311
311 // The enums must be cast to ints to prevent compile errors on linux_rel. 312 // The enums must be cast to ints to prevent compile errors on linux_rel.
312 EXPECT_CALL(manager_delegate_, 313 EXPECT_CALL(manager_delegate_,
313 ShowAutofillPopup( 314 ShowAutofillPopup(
314 _, _, _, _, 315 _, _, _, _, _,
315 testing::ElementsAre( 316 testing::ElementsAre(
316 static_cast<int>( 317 static_cast<int>(
317 WebAutofillClient::MenuItemIDPasswordEntry)), 318 WebAutofillClient::MenuItemIDPasswordEntry)),
318 _)); 319 _));
319 320
320 external_delegate_->OnShowPasswordSuggestions(suggestions, 321 external_delegate_->OnShowPasswordSuggestions(suggestions,
321 field, 322 field,
322 element_bounds); 323 element_bounds);
323 324
324 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 325 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
(...skipping 25 matching lines...) Expand all
350 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 351 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
351 352
352 external_delegate_->OnSuggestionsReturned(kQueryId, 353 external_delegate_->OnSuggestionsReturned(kQueryId,
353 autofill_items, 354 autofill_items,
354 autofill_items, 355 autofill_items,
355 autofill_items, 356 autofill_items,
356 autofill_ids); 357 autofill_ids);
357 } 358 }
358 359
359 } // namespace autofill 360 } // namespace autofill
OLDNEW
« no previous file with comments | « components/autofill/browser/autofill_external_delegate.cc ('k') | components/autofill/browser/autofill_manager_delegate.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698