Index: components/password_manager/core/browser/password_form_manager_unittest.cc |
diff --git a/components/password_manager/core/browser/password_form_manager_unittest.cc b/components/password_manager/core/browser/password_form_manager_unittest.cc |
index c5bc4f32c7747ae37273708bf6d86b3ccb87edd1..f68fe1c0431dba798ce2e28e7d86c9e610e4fd4f 100644 |
--- a/components/password_manager/core/browser/password_form_manager_unittest.cc |
+++ b/components/password_manager/core/browser/password_form_manager_unittest.cc |
@@ -103,7 +103,7 @@ class TestPasswordManager : public PasswordManager { |
class PasswordFormManagerTest : public testing::Test { |
public: |
- PasswordFormManagerTest() {} |
+ PasswordFormManagerTest() : client_(NULL /*password_store*/) {} |
virtual void SetUp() { |
observed_form_.origin = GURL("http://accounts.google.com/a/LoginAuth"); |
@@ -184,79 +184,73 @@ class PasswordFormManagerTest : public testing::Test { |
return match; |
} |
+ TestPasswordManagerClient* client() { return &client_; } |
+ |
private: |
PasswordForm observed_form_; |
PasswordForm saved_match_; |
scoped_refptr<MockPasswordStore> mock_store_; |
+ TestPasswordManagerClient client_; |
}; |
TEST_F(PasswordFormManagerTest, TestNewLogin) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- PasswordFormManager* manager = new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
- SimulateMatchingPhase(manager, false); |
+ SimulateMatchingPhase(&manager, false); |
// User submits credentials for the observed form. |
PasswordForm credentials = *observed_form(); |
credentials.username_value = saved_match()->username_value; |
credentials.password_value = saved_match()->password_value; |
credentials.preferred = true; |
- manager->ProvisionallySave( |
+ manager.ProvisionallySave( |
credentials, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
// Successful login. The PasswordManager would instruct PasswordFormManager |
// to save, which should know this is a new login. |
- EXPECT_TRUE(manager->IsNewLogin()); |
+ EXPECT_TRUE(manager.IsNewLogin()); |
// Make sure the credentials that would be submitted on successful login |
// are going to match the stored entry in the db. |
EXPECT_EQ(observed_form()->origin.spec(), |
- GetPendingCredentials(manager)->origin.spec()); |
+ GetPendingCredentials(&manager)->origin.spec()); |
EXPECT_EQ(observed_form()->signon_realm, |
- GetPendingCredentials(manager)->signon_realm); |
- EXPECT_EQ(observed_form()->action, GetPendingCredentials(manager)->action); |
- EXPECT_TRUE(GetPendingCredentials(manager)->preferred); |
+ GetPendingCredentials(&manager)->signon_realm); |
+ EXPECT_EQ(observed_form()->action, GetPendingCredentials(&manager)->action); |
+ EXPECT_TRUE(GetPendingCredentials(&manager)->preferred); |
EXPECT_EQ(saved_match()->password_value, |
- GetPendingCredentials(manager)->password_value); |
+ GetPendingCredentials(&manager)->password_value); |
EXPECT_EQ(saved_match()->username_value, |
- GetPendingCredentials(manager)->username_value); |
+ GetPendingCredentials(&manager)->username_value); |
// Now, suppose the user re-visits the site and wants to save an additional |
// login for the site with a new username. In this case, the matching phase |
// will yield the previously saved login. |
- SimulateMatchingPhase(manager, true); |
+ SimulateMatchingPhase(&manager, true); |
// Set up the new login. |
base::string16 new_user = ASCIIToUTF16("newuser"); |
base::string16 new_pass = ASCIIToUTF16("newpass"); |
credentials.username_value = new_user; |
credentials.password_value = new_pass; |
- manager->ProvisionallySave( |
+ manager.ProvisionallySave( |
credentials, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
// Again, the PasswordFormManager should know this is still a new login. |
- EXPECT_TRUE(manager->IsNewLogin()); |
+ EXPECT_TRUE(manager.IsNewLogin()); |
// And make sure everything squares up again. |
EXPECT_EQ(observed_form()->origin.spec(), |
- GetPendingCredentials(manager)->origin.spec()); |
+ GetPendingCredentials(&manager)->origin.spec()); |
EXPECT_EQ(observed_form()->signon_realm, |
- GetPendingCredentials(manager)->signon_realm); |
- EXPECT_TRUE(GetPendingCredentials(manager)->preferred); |
- EXPECT_EQ(new_pass, GetPendingCredentials(manager)->password_value); |
- EXPECT_EQ(new_user, GetPendingCredentials(manager)->username_value); |
- delete manager; |
+ GetPendingCredentials(&manager)->signon_realm); |
+ EXPECT_TRUE(GetPendingCredentials(&manager)->preferred); |
+ EXPECT_EQ(new_pass, GetPendingCredentials(&manager)->password_value); |
+ EXPECT_EQ(new_user, GetPendingCredentials(&manager)->username_value); |
} |
TEST_F(PasswordFormManagerTest, TestUpdatePassword) { |
// Create a PasswordFormManager with observed_form, as if we just |
// saw this form and need to find matching logins. |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- PasswordFormManager* manager = new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
- SimulateMatchingPhase(manager, true); |
+ SimulateMatchingPhase(&manager, true); |
// User submits credentials for the observed form using a username previously |
// stored, but a new password. Note that the observed form may have different |
@@ -268,113 +262,90 @@ TEST_F(PasswordFormManagerTest, TestUpdatePassword) { |
credentials.username_value = saved_match()->username_value; |
credentials.password_value = new_pass; |
credentials.preferred = true; |
- manager->ProvisionallySave( |
+ manager.ProvisionallySave( |
credentials, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
// Successful login. The PasswordManager would instruct PasswordFormManager |
// to save, and since this is an update, it should know not to save as a new |
// login. |
- EXPECT_FALSE(manager->IsNewLogin()); |
+ EXPECT_FALSE(manager.IsNewLogin()); |
// Make sure the credentials that would be submitted on successful login |
// are going to match the stored entry in the db. (This verifies correct |
// behaviour for bug 1074420). |
- EXPECT_EQ(GetPendingCredentials(manager)->origin.spec(), |
+ EXPECT_EQ(GetPendingCredentials(&manager)->origin.spec(), |
saved_match()->origin.spec()); |
- EXPECT_EQ(GetPendingCredentials(manager)->signon_realm, |
+ EXPECT_EQ(GetPendingCredentials(&manager)->signon_realm, |
saved_match()->signon_realm); |
- EXPECT_TRUE(GetPendingCredentials(manager)->preferred); |
- EXPECT_EQ(new_pass, GetPendingCredentials(manager)->password_value); |
- // Done. |
- delete manager; |
+ EXPECT_TRUE(GetPendingCredentials(&manager)->preferred); |
+ EXPECT_EQ(new_pass, GetPendingCredentials(&manager)->password_value); |
} |
TEST_F(PasswordFormManagerTest, TestIgnoreResult) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- PasswordFormManager* manager = new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
// Make sure we don't match a PasswordForm if it was originally saved on |
// an SSL-valid page and we are now on a page with invalid certificate. |
saved_match()->ssl_valid = true; |
- EXPECT_TRUE(IgnoredResult(manager, saved_match())); |
+ EXPECT_TRUE(IgnoredResult(&manager, saved_match())); |
saved_match()->ssl_valid = false; |
// Different paths for action / origin are okay. |
saved_match()->action = GURL("http://www.google.com/b/Login"); |
saved_match()->origin = GURL("http://www.google.com/foo"); |
- EXPECT_FALSE(IgnoredResult(manager, saved_match())); |
- |
- // Done. |
- delete manager; |
+ EXPECT_FALSE(IgnoredResult(&manager, saved_match())); |
} |
TEST_F(PasswordFormManagerTest, TestEmptyAction) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
saved_match()->action = GURL(); |
- SimulateMatchingPhase(manager.get(), true); |
+ SimulateMatchingPhase(&manager, true); |
// User logs in with the autofilled username / password from saved_match. |
PasswordForm login = *observed_form(); |
login.username_value = saved_match()->username_value; |
login.password_value = saved_match()->password_value; |
- manager->ProvisionallySave( |
+ manager.ProvisionallySave( |
login, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
- EXPECT_FALSE(manager->IsNewLogin()); |
+ EXPECT_FALSE(manager.IsNewLogin()); |
// We bless our saved PasswordForm entry with the action URL of the |
// observed form. |
- EXPECT_EQ(observed_form()->action, |
- GetPendingCredentials(manager.get())->action); |
+ EXPECT_EQ(observed_form()->action, GetPendingCredentials(&manager)->action); |
} |
TEST_F(PasswordFormManagerTest, TestUpdateAction) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
- SimulateMatchingPhase(manager.get(), true); |
+ SimulateMatchingPhase(&manager, true); |
// User logs in with the autofilled username / password from saved_match. |
PasswordForm login = *observed_form(); |
login.username_value = saved_match()->username_value; |
login.password_value = saved_match()->password_value; |
- manager->ProvisionallySave( |
+ manager.ProvisionallySave( |
login, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
- EXPECT_FALSE(manager->IsNewLogin()); |
+ EXPECT_FALSE(manager.IsNewLogin()); |
// The observed action URL is different from the previously saved one, and |
// is the same as the one that would be submitted on successful login. |
EXPECT_NE(observed_form()->action, saved_match()->action); |
- EXPECT_EQ(observed_form()->action, |
- GetPendingCredentials(manager.get())->action); |
+ EXPECT_EQ(observed_form()->action, GetPendingCredentials(&manager)->action); |
} |
TEST_F(PasswordFormManagerTest, TestDynamicAction) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
- SimulateMatchingPhase(manager.get(), false); |
+ SimulateMatchingPhase(&manager, false); |
PasswordForm login(*observed_form()); |
// The submitted action URL is different from the one observed on page load. |
GURL new_action = GURL("http://www.google.com/new_action"); |
login.action = new_action; |
- manager->ProvisionallySave( |
+ manager.ProvisionallySave( |
login, PasswordFormManager::IGNORE_OTHER_POSSIBLE_USERNAMES); |
- EXPECT_TRUE(manager->IsNewLogin()); |
+ EXPECT_TRUE(manager.IsNewLogin()); |
// Check that the provisionally saved action URL is the same as the submitted |
// action URL, not the one observed on page load. |
- EXPECT_EQ(new_action, GetPendingCredentials(manager.get())->action); |
+ EXPECT_EQ(new_action, GetPendingCredentials(&manager)->action); |
} |
TEST_F(PasswordFormManagerTest, TestAlternateUsername) { |
@@ -383,13 +354,17 @@ TEST_F(PasswordFormManagerTest, TestAlternateUsername) { |
scoped_refptr<TestPasswordStore> password_store = new TestPasswordStore; |
CHECK(password_store->Init(syncer::SyncableService::StartSyncFlare())); |
- TestPasswordManagerClient client(password_store.get()); |
- TestPasswordManager password_manager(&client); |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
- .Times(1); |
- EXPECT_CALL(*client.GetMockDriver(), IsOffTheRecord()) |
+ TestPasswordManagerClient client_with_store(password_store.get()); |
+ TestPasswordManager password_manager(&client_with_store); |
+ scoped_ptr<PasswordFormManager> manager( |
+ new PasswordFormManager(&password_manager, |
+ &client_with_store, |
+ client_with_store.GetDriver(), |
+ *observed_form(), |
+ false)); |
+ EXPECT_CALL(*client_with_store.GetMockDriver(), |
+ AllowPasswordGenerationForForm(_)).Times(1); |
+ EXPECT_CALL(*client_with_store.GetMockDriver(), IsOffTheRecord()) |
.WillRepeatedly(Return(false)); |
password_store->AddLogin(*saved_match()); |
@@ -420,10 +395,13 @@ TEST_F(PasswordFormManagerTest, TestAlternateUsername) { |
.other_possible_usernames.size()); |
// This time use an alternate username |
- manager.reset(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
- .Times(1); |
+ manager.reset(new PasswordFormManager(&password_manager, |
+ &client_with_store, |
+ client_with_store.GetDriver(), |
+ *observed_form(), |
+ false)); |
+ EXPECT_CALL(*client_with_store.GetMockDriver(), |
+ AllowPasswordGenerationForForm(_)).Times(1); |
password_store->Clear(); |
password_store->AddLogin(*saved_match()); |
manager->FetchMatchingLoginsFromPasswordStore(PasswordStore::ALLOW_PROMPT); |
@@ -520,60 +498,71 @@ TEST_F(PasswordFormManagerTest, TestValidFormsBasic) { |
TEST_F(PasswordFormManagerTest, TestSendNotBlacklistedMessage) { |
base::MessageLoop message_loop; |
- // A dumb password manager. |
- TestPasswordManagerClient client(NULL); |
- TestPasswordManager password_manager(&client); |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
+ TestPasswordManager password_manager(client()); |
+ scoped_ptr<PasswordFormManager> manager( |
+ new PasswordFormManager(&password_manager, |
+ client(), |
+ client()->GetDriver(), |
+ *observed_form(), |
+ false)); |
// First time sign up attempt; No login result is found from password store; |
// We should send the not blacklisted message. |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
+ EXPECT_CALL(*(client()->GetMockDriver()), AllowPasswordGenerationForForm(_)) |
.Times(1); |
SimulateFetchMatchingLoginsFromPasswordStore(manager.get()); |
std::vector<PasswordForm*> result; |
SimulateResponseFromPasswordStore(manager.get(), result); |
- Mock::VerifyAndClearExpectations(client.GetMockDriver()); |
+ Mock::VerifyAndClearExpectations(client()->GetMockDriver()); |
// Sign up attempt to previously visited sites; Login result is found from |
// password store, and is not blacklisted; We should send the not blacklisted |
// message. |
- manager.reset(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
+ manager.reset(new PasswordFormManager(&password_manager, |
+ client(), |
+ client()->GetDriver(), |
+ *observed_form(), |
+ false)); |
+ EXPECT_CALL(*(client()->GetMockDriver()), AllowPasswordGenerationForForm(_)) |
.Times(1); |
- EXPECT_CALL(*client.GetMockDriver(), IsOffTheRecord()) |
+ EXPECT_CALL(*(client()->GetMockDriver()), IsOffTheRecord()) |
.WillRepeatedly(Return(false)); |
SimulateFetchMatchingLoginsFromPasswordStore(manager.get()); |
// We need add heap allocated objects to result. |
result.push_back(CreateSavedMatch(false)); |
SimulateResponseFromPasswordStore(manager.get(), result); |
- Mock::VerifyAndClearExpectations(client.GetMockDriver()); |
+ Mock::VerifyAndClearExpectations(client()->GetMockDriver()); |
// Sign up attempt to previously visited sites; Login result is found from |
// password store, but is blacklisted; We should not send the not blacklisted |
// message. |
- manager.reset(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
+ manager.reset(new PasswordFormManager(&password_manager, |
+ client(), |
+ client()->GetDriver(), |
+ *observed_form(), |
+ false)); |
+ EXPECT_CALL(*(client()->GetMockDriver()), AllowPasswordGenerationForForm(_)) |
.Times(0); |
SimulateFetchMatchingLoginsFromPasswordStore(manager.get()); |
result.clear(); |
result.push_back(CreateSavedMatch(true)); |
SimulateResponseFromPasswordStore(manager.get(), result); |
- Mock::VerifyAndClearExpectations(client.GetMockDriver()); |
+ Mock::VerifyAndClearExpectations(client()->GetMockDriver()); |
} |
TEST_F(PasswordFormManagerTest, TestForceInclusionOfGeneratedPasswords) { |
base::MessageLoop message_loop; |
- TestPasswordManagerClient client(NULL); |
- TestPasswordManager password_manager(&client); |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
+ TestPasswordManager password_manager(client()); |
+ scoped_ptr<PasswordFormManager> manager( |
+ new PasswordFormManager(&password_manager, |
+ client(), |
+ client()->GetDriver(), |
+ *observed_form(), |
+ false)); |
+ EXPECT_CALL(*(client()->GetMockDriver()), AllowPasswordGenerationForForm(_)) |
.Times(1); |
- EXPECT_CALL(*client.GetMockDriver(), IsOffTheRecord()) |
+ EXPECT_CALL(*(client()->GetMockDriver()), IsOffTheRecord()) |
.WillRepeatedly(Return(false)); |
// Simulate having two matches for this origin, one of which was from a form |
@@ -592,9 +581,12 @@ TEST_F(PasswordFormManagerTest, TestForceInclusionOfGeneratedPasswords) { |
// Same thing, except this time the credentials that don't match quite as |
// well are generated. They should now be sent to Autofill(). |
- manager.reset(new PasswordFormManager( |
- &password_manager, &client, client.GetDriver(), *observed_form(), false)); |
- EXPECT_CALL(*client.GetMockDriver(), AllowPasswordGenerationForForm(_)) |
+ manager.reset(new PasswordFormManager(&password_manager, |
+ client(), |
+ client()->GetDriver(), |
+ *observed_form(), |
+ false)); |
+ EXPECT_CALL(*(client()->GetMockDriver()), AllowPasswordGenerationForForm(_)) |
.Times(1); |
results.push_back(CreateSavedMatch(false)); |
@@ -609,11 +601,7 @@ TEST_F(PasswordFormManagerTest, TestForceInclusionOfGeneratedPasswords) { |
} |
TEST_F(PasswordFormManagerTest, TestSanitizePossibleUsernames) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
PasswordForm credentials(*observed_form()); |
credentials.other_possible_usernames.push_back(ASCIIToUTF16("543-43-1234")); |
credentials.other_possible_usernames.push_back( |
@@ -622,7 +610,7 @@ TEST_F(PasswordFormManagerTest, TestSanitizePossibleUsernames) { |
ASCIIToUTF16("other username")); |
credentials.username_value = ASCIIToUTF16("test@gmail.com"); |
- SanitizePossibleUsernames(manager.get(), &credentials); |
+ SanitizePossibleUsernames(&manager, &credentials); |
// Possible credit card number and SSN are stripped. |
std::vector<base::string16> expected; |
@@ -637,7 +625,7 @@ TEST_F(PasswordFormManagerTest, TestSanitizePossibleUsernames) { |
credentials.other_possible_usernames.push_back( |
ASCIIToUTF16("test@gmail.com")); |
- SanitizePossibleUsernames(manager.get(), &credentials); |
+ SanitizePossibleUsernames(&manager, &credentials); |
// SSN, duplicate in |other_possible_usernames| and duplicate of |
// |username_value| all removed. |
@@ -659,14 +647,18 @@ TEST_F(PasswordFormManagerTest, TestUpdateIncompleteCredentials) { |
encountered_form.password_element = ASCIIToUTF16("Passwd"); |
encountered_form.submit_element = ASCIIToUTF16("signIn"); |
- TestPasswordManagerClient client(mock_store()); |
- MockPasswordManagerDriver driver; |
- EXPECT_CALL(driver, IsOffTheRecord()).WillRepeatedly(Return(false)); |
- EXPECT_CALL(driver, AllowPasswordGenerationForForm(_)); |
+ TestPasswordManagerClient client_with_store(mock_store()); |
+ EXPECT_CALL(*(client_with_store.GetMockDriver()), IsOffTheRecord()) |
+ .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(*(client_with_store.GetMockDriver()), |
+ AllowPasswordGenerationForForm(_)); |
- TestPasswordManager manager(&client); |
- PasswordFormManager form_manager( |
- &manager, &client, &driver, encountered_form, false); |
+ TestPasswordManager manager(&client_with_store); |
+ PasswordFormManager form_manager(&manager, |
+ &client_with_store, |
+ client_with_store.GetMockDriver(), |
+ encountered_form, |
+ false); |
const PasswordStore::AuthorizationPromptPolicy auth_policy = |
PasswordStore::DISALLOW_PROMPT; |
@@ -717,14 +709,16 @@ TEST_F(PasswordFormManagerTest, TestUpdateIncompleteCredentials) { |
TEST_F(PasswordFormManagerTest, TestScoringPublicSuffixMatch) { |
base::MessageLoop message_loop; |
- TestPasswordManagerClient client(NULL); |
- MockPasswordManagerDriver driver; |
- EXPECT_CALL(driver, IsOffTheRecord()).WillRepeatedly(Return(false)); |
- EXPECT_CALL(driver, AllowPasswordGenerationForForm(_)); |
+ EXPECT_CALL(*(client()->GetMockDriver()), IsOffTheRecord()) |
+ .WillRepeatedly(Return(false)); |
+ EXPECT_CALL(*(client()->GetMockDriver()), AllowPasswordGenerationForForm(_)); |
- TestPasswordManager password_manager(&client); |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- &password_manager, &client, &driver, *observed_form(), false)); |
+ TestPasswordManager password_manager(client()); |
+ PasswordFormManager manager(&password_manager, |
+ client(), |
+ client()->GetMockDriver(), |
+ *observed_form(), |
+ false); |
// Simulate having two matches for this form, first comes from different |
// signon realm, but reports the same origin and action as matched form. |
@@ -737,19 +731,15 @@ TEST_F(PasswordFormManagerTest, TestScoringPublicSuffixMatch) { |
results[0]->original_signon_realm = "http://accounts2.google.com"; |
results[1]->origin = GURL("http://accounts.google.com/a/ServiceLoginAuth2"); |
results[1]->action = GURL("http://accounts.google.com/a/ServiceLogin2"); |
- SimulateFetchMatchingLoginsFromPasswordStore(manager.get()); |
- SimulateResponseFromPasswordStore(manager.get(), results); |
+ SimulateFetchMatchingLoginsFromPasswordStore(&manager); |
+ SimulateResponseFromPasswordStore(&manager, results); |
EXPECT_EQ(1u, password_manager.GetLatestBestMatches().size()); |
EXPECT_EQ("", password_manager.GetLatestBestMatches().begin() |
->second->original_signon_realm); |
} |
TEST_F(PasswordFormManagerTest, InvalidActionURLsDoNotMatch) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
PasswordForm invalid_action_form(*observed_form()); |
invalid_action_form.action = GURL("http://"); |
@@ -758,23 +748,19 @@ TEST_F(PasswordFormManagerTest, InvalidActionURLsDoNotMatch) { |
// Non-empty invalid action URLs should not match other actions. |
// First when the compared form has an invalid URL: |
EXPECT_EQ(0, |
- manager->DoesManage(invalid_action_form) & |
+ manager.DoesManage(invalid_action_form) & |
PasswordFormManager::RESULT_ACTION_MATCH); |
// Then when the observed form has an invalid URL: |
PasswordForm valid_action_form(*observed_form()); |
- scoped_ptr<PasswordFormManager> invalid_manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), invalid_action_form, false)); |
+ PasswordFormManager invalid_manager( |
+ NULL, client(), NULL, invalid_action_form, false); |
EXPECT_EQ(0, |
- invalid_manager->DoesManage(valid_action_form) & |
+ invalid_manager.DoesManage(valid_action_form) & |
PasswordFormManager::RESULT_ACTION_MATCH); |
} |
TEST_F(PasswordFormManagerTest, EmptyActionURLsDoNotMatchNonEmpty) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
PasswordForm empty_action_form(*observed_form()); |
empty_action_form.action = GURL(); |
@@ -782,69 +768,57 @@ TEST_F(PasswordFormManagerTest, EmptyActionURLsDoNotMatchNonEmpty) { |
ASSERT_TRUE(empty_action_form.action.is_empty()); |
// First when the compared form has an empty URL: |
EXPECT_EQ(0, |
- manager->DoesManage(empty_action_form) & |
+ manager.DoesManage(empty_action_form) & |
PasswordFormManager::RESULT_ACTION_MATCH); |
// Then when the observed form has an empty URL: |
PasswordForm valid_action_form(*observed_form()); |
- scoped_ptr<PasswordFormManager> empty_action_manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), empty_action_form, false)); |
+ PasswordFormManager empty_action_manager( |
+ NULL, client(), NULL, empty_action_form, false); |
EXPECT_EQ(0, |
- empty_action_manager->DoesManage(valid_action_form) & |
+ empty_action_manager.DoesManage(valid_action_form) & |
PasswordFormManager::RESULT_ACTION_MATCH); |
} |
TEST_F(PasswordFormManagerTest, NonHTMLFormsDoNotMatchHTMLForms) { |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
ASSERT_EQ(PasswordForm::SCHEME_HTML, observed_form()->scheme); |
PasswordForm non_html_form(*observed_form()); |
non_html_form.scheme = PasswordForm::SCHEME_DIGEST; |
EXPECT_EQ(0, |
- manager->DoesManage(non_html_form) & |
+ manager.DoesManage(non_html_form) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
// The other way round: observing a non-HTML form, don't match a HTML form. |
PasswordForm html_form(*observed_form()); |
- scoped_ptr<PasswordFormManager> non_html_manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), non_html_form, false)); |
+ PasswordFormManager non_html_manager( |
+ NULL, client(), NULL, non_html_form, false); |
EXPECT_EQ(0, |
- non_html_manager->DoesManage(html_form) & |
+ non_html_manager.DoesManage(html_form) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
} |
TEST_F(PasswordFormManagerTest, OriginCheck_HostsMatchExactly) { |
// Host part of origins must match exactly, not just by prefix. |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
PasswordForm form_longer_host(*observed_form()); |
form_longer_host.origin = GURL("http://accounts.google.com.au/a/LoginAuth"); |
// Check that accounts.google.com does not match accounts.google.com.au. |
EXPECT_EQ(0, |
- manager->DoesManage(form_longer_host) & |
+ manager.DoesManage(form_longer_host) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
} |
TEST_F(PasswordFormManagerTest, OriginCheck_MoreSecureSchemePathsMatchPrefix) { |
// If the URL scheme of the observed form is HTTP, and the compared form is |
// HTTPS, then the compared form can extend the path. |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
PasswordForm form_longer_path(*observed_form()); |
form_longer_path.origin = GURL("https://accounts.google.com/a/LoginAuth/sec"); |
EXPECT_NE(0, |
- manager->DoesManage(form_longer_path) & |
+ manager.DoesManage(form_longer_path) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
} |
@@ -852,32 +826,28 @@ TEST_F(PasswordFormManagerTest, |
OriginCheck_NotMoreSecureSchemePathsMatchExactly) { |
// If the origin URL scheme of the compared form is not more secure than that |
// of the observed form, then the paths must match exactly. |
- scoped_ptr<TestPasswordManagerClient> client( |
- new TestPasswordManagerClient(NULL)); |
- scoped_ptr<StubPasswordManagerDriver> driver; |
- scoped_ptr<PasswordFormManager> manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), *observed_form(), false)); |
+ PasswordFormManager manager(NULL, client(), NULL, *observed_form(), false); |
PasswordForm form_longer_path(*observed_form()); |
form_longer_path.origin = GURL("http://accounts.google.com/a/LoginAuth/sec"); |
// Check that /a/LoginAuth does not match /a/LoginAuth/more. |
EXPECT_EQ(0, |
- manager->DoesManage(form_longer_path) & |
+ manager.DoesManage(form_longer_path) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
PasswordForm secure_observed_form(*observed_form()); |
secure_observed_form.origin = GURL("https://accounts.google.com/a/LoginAuth"); |
- scoped_ptr<PasswordFormManager> secure_manager(new PasswordFormManager( |
- NULL, client.get(), driver.get(), secure_observed_form, true)); |
+ PasswordFormManager secure_manager( |
+ NULL, client(), NULL, secure_observed_form, true); |
// Also for HTTPS in the observed form, and HTTP in the compared form, an |
// exact path match is expected. |
EXPECT_EQ(0, |
- secure_manager->DoesManage(form_longer_path) & |
+ secure_manager.DoesManage(form_longer_path) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
// Not even upgrade to HTTPS in the compared form should help. |
form_longer_path.origin = GURL("https://accounts.google.com/a/LoginAuth/sec"); |
EXPECT_EQ(0, |
- secure_manager->DoesManage(form_longer_path) & |
+ secure_manager.DoesManage(form_longer_path) & |
PasswordFormManager::RESULT_MANDATORY_ATTRIBUTES_MATCH); |
} |