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

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

Issue 148413002: Add "previewing on hover" support for single-field autocomplete input (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update test code Created 6 years, 9 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 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 <vector> 5 #include <vector>
6 6
7 #include "base/compiler_specific.h" 7 #include "base/compiler_specific.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/string16.h" 9 #include "base/strings/string16.h"
10 #include "base/strings/utf_string_conversions.h" 10 #include "base/strings/utf_string_conversions.h"
(...skipping 24 matching lines...) Expand all
35 const int kAutofillProfileId = 1; 35 const int kAutofillProfileId = 1;
36 36
37 class MockAutofillDriver : public TestAutofillDriver { 37 class MockAutofillDriver : public TestAutofillDriver {
38 public: 38 public:
39 MockAutofillDriver() {} 39 MockAutofillDriver() {}
40 // Mock methods to enable testability. 40 // Mock methods to enable testability.
41 MOCK_METHOD1(RendererShouldAcceptDataListSuggestion, 41 MOCK_METHOD1(RendererShouldAcceptDataListSuggestion,
42 void(const base::string16&)); 42 void(const base::string16&));
43 MOCK_METHOD0(RendererShouldClearFilledForm, void()); 43 MOCK_METHOD0(RendererShouldClearFilledForm, void());
44 MOCK_METHOD0(RendererShouldClearPreviewedForm, void()); 44 MOCK_METHOD0(RendererShouldClearPreviewedForm, void());
45 MOCK_METHOD1(RendererShouldSetNodeText, void(const base::string16&)); 45 MOCK_METHOD1(RendererShouldFillFieldWithValue, void(const base::string16&));
46 MOCK_METHOD1(RendererShouldPreviewFieldWithValue,
47 void(const base::string16&));
46 48
47 private: 49 private:
48 DISALLOW_COPY_AND_ASSIGN(MockAutofillDriver); 50 DISALLOW_COPY_AND_ASSIGN(MockAutofillDriver);
49 }; 51 };
50 52
51 class MockAutofillManagerDelegate 53 class MockAutofillManagerDelegate
52 : public autofill::TestAutofillManagerDelegate { 54 : public autofill::TestAutofillManagerDelegate {
53 public: 55 public:
54 MockAutofillManagerDelegate() {} 56 MockAutofillManagerDelegate() {}
55 57
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 autofill_item, 350 autofill_item,
349 autofill_ids); 351 autofill_ids);
350 } 352 }
351 353
352 // Test that the Autofill delegate doesn't try and fill a form with a 354 // Test that the Autofill delegate doesn't try and fill a form with a
353 // negative unique id. 355 // negative unique id.
354 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateInvalidUniqueId) { 356 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateInvalidUniqueId) {
355 // Ensure it doesn't try to preview the negative id. 357 // Ensure it doesn't try to preview the negative id.
356 EXPECT_CALL(*autofill_manager_, FillOrPreviewForm(_, _, _, _, _)).Times(0); 358 EXPECT_CALL(*autofill_manager_, FillOrPreviewForm(_, _, _, _, _)).Times(0);
357 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1); 359 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1);
358 external_delegate_->DidSelectSuggestion(-1); 360 external_delegate_->DidSelectSuggestion(base::string16(), -1);
359 361
360 // Ensure it doesn't try to fill the form in with the negative id. 362 // Ensure it doesn't try to fill the form in with the negative id.
361 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 363 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
362 EXPECT_CALL(*autofill_manager_, FillOrPreviewForm(_, _, _, _, _)).Times(0); 364 EXPECT_CALL(*autofill_manager_, FillOrPreviewForm(_, _, _, _, _)).Times(0);
363 external_delegate_->DidAcceptSuggestion(base::string16(), -1); 365 external_delegate_->DidAcceptSuggestion(base::string16(), -1);
364 } 366 }
365 367
366 // Test that the ClearPreview call is only sent if the form was being previewed 368 // Test that the ClearPreview call is only sent if the form was being previewed
367 // (i.e. it isn't autofilling a password). 369 // (i.e. it isn't autofilling a password).
368 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateClearPreviewedForm) { 370 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateClearPreviewedForm) {
369 // Ensure selecting a new password entries or Autofill entries will 371 // Ensure selecting a new password entries or Autofill entries will
370 // cause any previews to get cleared. 372 // cause any previews to get cleared.
371 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1); 373 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1);
372 external_delegate_->DidSelectSuggestion(POPUP_ITEM_ID_PASSWORD_ENTRY); 374 external_delegate_->DidSelectSuggestion(ASCIIToUTF16("baz foo"),
375 POPUP_ITEM_ID_PASSWORD_ENTRY);
373 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1); 376 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1);
374 EXPECT_CALL(*autofill_manager_, 377 EXPECT_CALL(*autofill_manager_,
375 FillOrPreviewForm( 378 FillOrPreviewForm(
376 AutofillDriver::FORM_DATA_ACTION_PREVIEW, _, _, _, _)); 379 AutofillDriver::FORM_DATA_ACTION_PREVIEW, _, _, _, _));
377 external_delegate_->DidSelectSuggestion(1); 380 external_delegate_->DidSelectSuggestion(ASCIIToUTF16("baz foo"), 1);
381
382 // Ensure selecting an autocomplete entry will cause any previews to
383 // get cleared.
384 EXPECT_CALL(*autofill_driver_, RendererShouldClearPreviewedForm()).Times(1);
385 EXPECT_CALL(*autofill_driver_, RendererShouldPreviewFieldWithValue(
386 ASCIIToUTF16("baz foo")));
387 external_delegate_->DidSelectSuggestion(ASCIIToUTF16("baz foo"),
388 POPUP_ITEM_ID_AUTOCOMPLETE_ENTRY);
378 } 389 }
379 390
380 // Test that the popup is hidden once we are done editing the autofill field. 391 // Test that the popup is hidden once we are done editing the autofill field.
381 TEST_F(AutofillExternalDelegateUnitTest, 392 TEST_F(AutofillExternalDelegateUnitTest,
382 ExternalDelegateHidePopupAfterEditing) { 393 ExternalDelegateHidePopupAfterEditing) {
383 EXPECT_CALL(manager_delegate_, ShowAutofillPopup(_, _, _, _, _, _, _)); 394 EXPECT_CALL(manager_delegate_, ShowAutofillPopup(_, _, _, _, _, _, _));
384 autofill::GenerateTestAutofillPopup(external_delegate_.get()); 395 autofill::GenerateTestAutofillPopup(external_delegate_.get());
385 396
386 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 397 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
387 external_delegate_->DidEndTextFieldEditing(); 398 external_delegate_->DidEndTextFieldEditing();
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after
473 // anything. 484 // anything.
474 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 485 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
475 486
476 external_delegate_->OnSuggestionsReturned(kQueryId, 487 external_delegate_->OnSuggestionsReturned(kQueryId,
477 autofill_items, 488 autofill_items,
478 autofill_items, 489 autofill_items,
479 autofill_items, 490 autofill_items,
480 autofill_ids); 491 autofill_ids);
481 } 492 }
482 493
483 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateSetNodeText) { 494 TEST_F(AutofillExternalDelegateUnitTest, ExternalDelegateFillFieldWithValue) {
484 EXPECT_CALL(manager_delegate_, HideAutofillPopup()); 495 EXPECT_CALL(manager_delegate_, HideAutofillPopup());
485 base::string16 dummy_string(ASCIIToUTF16("baz foo")); 496 base::string16 dummy_string(ASCIIToUTF16("baz foo"));
486 EXPECT_CALL(*autofill_driver_, 497 EXPECT_CALL(*autofill_driver_,
487 RendererShouldSetNodeText(dummy_string)); 498 RendererShouldFillFieldWithValue(dummy_string));
488 external_delegate_->DidAcceptSuggestion(dummy_string, 499 external_delegate_->DidAcceptSuggestion(dummy_string,
489 POPUP_ITEM_ID_AUTOCOMPLETE_ENTRY); 500 POPUP_ITEM_ID_AUTOCOMPLETE_ENTRY);
490 } 501 }
491 502
492 } // namespace autofill 503 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698