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

Unified Diff: components/password_manager/core/browser/http_password_migrator_unittest.cc

Issue 2721663002: Move Credentials when migrating to HSTS page (Closed)
Patch Set: More Explanation Created 3 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 side-by-side diff with in-line comments
Download patch
Index: components/password_manager/core/browser/http_password_migrator_unittest.cc
diff --git a/components/password_manager/core/browser/http_password_migrator_unittest.cc b/components/password_manager/core/browser/http_password_migrator_unittest.cc
index 76cc5937a3e9fb9fa64fce57d148e3d66a044d82..084daa70a1a4547aeab0c9c5d95dc0adc00cfe88 100644
--- a/components/password_manager/core/browser/http_password_migrator_unittest.cc
+++ b/components/password_manager/core/browser/http_password_migrator_unittest.cc
@@ -8,6 +8,7 @@
#include "base/message_loop/message_loop.h"
#include "base/strings/utf_string_conversions.h"
#include "components/password_manager/core/browser/mock_password_store.h"
+#include "components/password_manager/core/browser/stub_password_manager_client.h"
#include "testing/gmock/include/gmock/gmock.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -15,9 +16,10 @@ namespace password_manager {
namespace {
using autofill::PasswordForm;
-using testing::_;
using testing::ElementsAre;
using testing::Pointee;
+using testing::SaveArg;
+using testing::_;
constexpr char kTestHttpsURL[] = "https://example.org/";
constexpr char kTestHttpURL[] = "http://example.org/";
@@ -74,49 +76,71 @@ class MockConsumer : public HttpPasswordMigrator::Consumer {
}
};
+class MockPasswordManagerClient : public StubPasswordManagerClient {
+ public:
+ explicit MockPasswordManagerClient(PasswordStore* store) : store_(store) {}
+
+ PasswordStore* GetPasswordStore() const override { return store_; }
+ MOCK_CONST_METHOD2(PostHSTSQueryForHost,
+ void(const GURL&, const HSTSCallback& callback));
+
+ private:
+ PasswordStore* store_;
+
+ DISALLOW_COPY_AND_ASSIGN(MockPasswordManagerClient);
+};
+
+} // namespace
+
class HttpPasswordMigratorTest : public testing::Test {
public:
- HttpPasswordMigratorTest() {
- mock_store_ = new testing::StrictMock<MockPasswordStore>;
- }
+ HttpPasswordMigratorTest()
+ : mock_store_(new testing::StrictMock<MockPasswordStore>),
+ client_(mock_store_.get()) {}
~HttpPasswordMigratorTest() override { mock_store_->ShutdownOnUIThread(); }
MockConsumer& consumer() { return consumer_; }
MockPasswordStore& store() { return *mock_store_; }
+ MockPasswordManagerClient& client() { return client_; }
protected:
- void TestEmptyStore(HttpPasswordMigrator::MigrationMode mode);
- void TestFullStore(HttpPasswordMigrator::MigrationMode mode);
+ void TestEmptyStore(bool is_hsts);
+ void TestFullStore(bool is_hsts);
private:
base::MessageLoop message_loop_; // Used by mock_store_.
MockConsumer consumer_;
scoped_refptr<MockPasswordStore> mock_store_;
+ MockPasswordManagerClient client_;
DISALLOW_COPY_AND_ASSIGN(HttpPasswordMigratorTest);
};
-void HttpPasswordMigratorTest::TestEmptyStore(
- HttpPasswordMigrator::MigrationMode mode) {
+void HttpPasswordMigratorTest::TestEmptyStore(bool is_hsts) {
PasswordStore::FormDigest form(autofill::PasswordForm::SCHEME_HTML,
kTestHttpURL, GURL(kTestHttpURL));
EXPECT_CALL(store(), GetLogins(form, _));
- HttpPasswordMigrator migrator(GURL(kTestHttpsURL), mode, &store(),
- &consumer());
+ PasswordManagerClient::HSTSCallback callback;
+ EXPECT_CALL(client(), PostHSTSQueryForHost(GURL(kTestHttpsURL), _))
+ .WillOnce(SaveArg<1>(&callback));
+ HttpPasswordMigrator migrator(GURL(kTestHttpsURL), &client(), &consumer());
+ callback.Run(is_hsts);
EXPECT_CALL(consumer(), ProcessForms(std::vector<autofill::PasswordForm*>()));
migrator.OnGetPasswordStoreResults(
std::vector<std::unique_ptr<autofill::PasswordForm>>());
}
-void HttpPasswordMigratorTest::TestFullStore(
- HttpPasswordMigrator::MigrationMode mode) {
+void HttpPasswordMigratorTest::TestFullStore(bool is_hsts) {
PasswordStore::FormDigest form_digest(autofill::PasswordForm::SCHEME_HTML,
kTestHttpURL, GURL(kTestHttpURL));
EXPECT_CALL(store(), GetLogins(form_digest, _));
- HttpPasswordMigrator migrator(GURL(kTestHttpsURL), mode, &store(),
- &consumer());
+ PasswordManagerClient::HSTSCallback callback;
+ EXPECT_CALL(client(), PostHSTSQueryForHost(GURL(kTestHttpsURL), _))
+ .WillOnce(SaveArg<1>(&callback));
+ HttpPasswordMigrator migrator(GURL(kTestHttpsURL), &client(), &consumer());
+ callback.Run(is_hsts);
PasswordForm form = CreateTestForm();
PasswordForm psl_form = CreateTestPSLForm();
@@ -126,8 +150,7 @@ void HttpPasswordMigratorTest::TestFullStore(
expected_form.signon_realm = expected_form.origin.spec();
EXPECT_CALL(store(), AddLogin(expected_form));
- EXPECT_CALL(store(), RemoveLogin(form))
- .Times(mode == HttpPasswordMigrator::MigrationMode::MOVE);
+ EXPECT_CALL(store(), RemoveLogin(form)).Times(is_hsts);
EXPECT_CALL(consumer(), ProcessForms(ElementsAre(Pointee(expected_form))));
std::vector<std::unique_ptr<autofill::PasswordForm>> results;
results.push_back(base::MakeUnique<PasswordForm>(psl_form));
@@ -136,21 +159,20 @@ void HttpPasswordMigratorTest::TestFullStore(
migrator.OnGetPasswordStoreResults(std::move(results));
}
-TEST_F(HttpPasswordMigratorTest, EmptyStoreWithMove) {
- TestEmptyStore(HttpPasswordMigrator::MigrationMode::MOVE);
+TEST_F(HttpPasswordMigratorTest, EmptyStoreWithHSTS) {
+ TestEmptyStore(true);
}
-TEST_F(HttpPasswordMigratorTest, EmptyStoreWithCopy) {
- TestEmptyStore(HttpPasswordMigrator::MigrationMode::COPY);
+TEST_F(HttpPasswordMigratorTest, EmptyStoreWithoutHSTS) {
+ TestEmptyStore(false);
}
-TEST_F(HttpPasswordMigratorTest, FullStoreWithMove) {
- TestFullStore(HttpPasswordMigrator::MigrationMode::MOVE);
+TEST_F(HttpPasswordMigratorTest, FullStoreWithHSTS) {
+ TestFullStore(true);
}
-TEST_F(HttpPasswordMigratorTest, FullStoreWithCopy) {
- TestFullStore(HttpPasswordMigrator::MigrationMode::COPY);
+TEST_F(HttpPasswordMigratorTest, FullStoreWithoutHSTS) {
+ TestFullStore(false);
}
-} // namespace
} // namespace password_manager

Powered by Google App Engine
This is Rietveld 408576698