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

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

Issue 184103016: Autofill: Refactoring to support fetching password after a username is selected (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Get unit tests compiling. 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 | Annotate | Revision Log
OLDNEW
(Empty)
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
3 // found in the LICENSE file.
4
5 #include "base/compiler_specific.h"
6 #include "base/message_loop/message_loop.h"
7 #include "base/strings/utf_string_conversions.h"
8 #include "components/autofill/core/browser/password_autofill_manager.h"
9 #include "components/autofill/core/browser/test_autofill_driver.h"
10 #include "testing/gmock/include/gmock/gmock.h"
11 #include "testing/gtest/include/gtest/gtest.h"
12
13 // The name of the username/password element in the form.
14 const char kUsernameName[] = "username";
15 const char kInvalidUsername[] = "no-username";
16 const char kPasswordName[] = "password";
17
18 const char kAliceUsername[] = "alice";
19 const char kAlicePassword[] = "password";
20
21 namespace {
22
23 class MockAutofillDriver : public autofill::TestAutofillDriver {
24 public:
25 MockAutofillDriver() {}
26 MOCK_METHOD1(RendererShouldAcceptPasswordAutofillSuggestion,
27 void(const base::string16&));
28 };
29
30 } // namespace
31
32 namespace autofill {
33
34 class PasswordAutofillManagerTest : public testing::Test {
35 protected:
36 PasswordAutofillManagerTest() :
37 password_autofill_manager_(&autofill_driver_) {}
38
39 virtual void SetUp() OVERRIDE {
40 // Add a preferred login and an additional login to the FillData.
41 base::string16 username1 = base::ASCIIToUTF16(kAliceUsername);
42 base::string16 password1 = base::ASCIIToUTF16(kAlicePassword);
43
44 username_field_.name = base::ASCIIToUTF16(kUsernameName);
45 username_field_.value = username1;
46 fill_data_.basic_data.fields.push_back(username_field_);
47
48 FormFieldData password_field;
49 password_field.name = base::ASCIIToUTF16(kPasswordName);
50 password_field.value = password1;
51 fill_data_.basic_data.fields.push_back(password_field);
52
53 password_autofill_manager_.AddPasswordFormMapping(username_field_,
54 fill_data_);
55 }
56
57 MockAutofillDriver* autofill_driver() {
58 return &autofill_driver_;
59 }
60
61 PasswordAutofillManager* password_autofill_manager() {
62 return &password_autofill_manager_;
63 }
64
65 const FormFieldData& username_field() { return username_field_; }
66
67 private:
68 PasswordFormFillData fill_data_;
69 FormFieldData username_field_;
70
71 // The TestAutofillDriver uses a SequencedWorkerPool which expects the
72 // existence of a MessageLoop.
73 base::MessageLoop message_loop_;
74 MockAutofillDriver autofill_driver_;
75 PasswordAutofillManager password_autofill_manager_;
76 };
77
78 TEST_F(PasswordAutofillManagerTest, DidAcceptAutofillSuggestion) {
79 EXPECT_CALL(*autofill_driver(),
80 RendererShouldAcceptPasswordAutofillSuggestion(
81 base::ASCIIToUTF16(kAliceUsername)));
82 EXPECT_TRUE(password_autofill_manager()->DidAcceptAutofillSuggestion(
83 username_field(), base::ASCIIToUTF16(kAliceUsername)));
84
85 EXPECT_CALL(*autofill_driver(),
86 RendererShouldAcceptPasswordAutofillSuggestion(
87 base::ASCIIToUTF16(kInvalidUsername))).Times(0);
88 EXPECT_FALSE(password_autofill_manager()->DidAcceptAutofillSuggestion(
89 username_field(), base::ASCIIToUTF16(kInvalidUsername)));
90
91 FormFieldData invalid_username_field;
92 invalid_username_field.name = base::ASCIIToUTF16(kInvalidUsername);
93
94 EXPECT_FALSE(password_autofill_manager()->DidAcceptAutofillSuggestion(
95 invalid_username_field, base::ASCIIToUTF16(kAliceUsername)));
96
97 password_autofill_manager()->Reset();
98 EXPECT_FALSE(password_autofill_manager()->DidAcceptAutofillSuggestion(
99 username_field(), base::ASCIIToUTF16(kAliceUsername)));
100 }
101
102 } // namespace autofill
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698