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