Commit 0cc50262 authored by vabr's avatar vabr Committed by Commit bot

Create StubCredentialsFilter

Currently, there are three independent testing implementations of the
CredentialsFilter API, all providing similar no-op implementation. In a coming
CL there will be a fourth one.

This CL pulls the stub of the API into a separate file, simplifying the 3
(soon 4) places in code where it is needed.

BUG=621355

Review-Url: https://codereview.chromium.org/2260203004
Cr-Commit-Position: refs/heads/master@{#413455}
parent af2c12c7
......@@ -196,6 +196,8 @@
'password_manager/core/browser/password_manager_test_utils.cc',
'password_manager/core/browser/password_manager_test_utils.h',
# Note: sources list duplicated in GN build.
'password_manager/core/browser/stub_credentials_filter.cc',
'password_manager/core/browser/stub_credentials_filter.h',
'password_manager/core/browser/stub_form_saver.h',
'password_manager/core/browser/stub_log_manager.cc',
'password_manager/core/browser/stub_log_manager.h',
......
......@@ -180,6 +180,8 @@ static_library("test_support") {
"mock_password_store.h",
"password_manager_test_utils.cc",
"password_manager_test_utils.h",
"stub_credentials_filter.cc",
"stub_credentials_filter.h",
"stub_form_saver.h",
"stub_log_manager.cc",
"stub_log_manager.h",
......
......@@ -6,7 +6,6 @@
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_CREDENTIALS_FILTER_H_
#include "base/macros.h"
#include "base/memory/scoped_vector.h"
#include "components/autofill/core/common/password_form.h"
namespace password_manager {
......
......@@ -24,7 +24,6 @@
#include "components/autofill/core/browser/test_personal_data_manager.h"
#include "components/autofill/core/common/autofill_pref_names.h"
#include "components/autofill/core/common/password_form.h"
#include "components/password_manager/core/browser/credentials_filter.h"
#include "components/password_manager/core/browser/mock_password_store.h"
#include "components/password_manager/core/browser/password_manager.h"
#include "components/password_manager/core/browser/password_manager_driver.h"
......@@ -32,6 +31,7 @@
#include "components/password_manager/core/browser/password_manager_test_utils.h"
#include "components/password_manager/core/browser/password_store.h"
#include "components/password_manager/core/browser/statistics_table.h"
#include "components/password_manager/core/browser/stub_credentials_filter.h"
#include "components/password_manager/core/browser/stub_form_saver.h"
#include "components/password_manager/core/browser/stub_password_manager_client.h"
#include "components/password_manager/core/browser/stub_password_manager_driver.h"
......@@ -302,20 +302,11 @@ class MockPasswordManagerDriver : public StubPasswordManagerDriver {
NiceMock<MockAutofillManager> mock_autofill_manager_;
};
class MockStoreResultFilter : public CredentialsFilter {
class MockStoreResultFilter : public StubCredentialsFilter {
public:
// This method is called by StubCredentialsFilter::FilterResults.
MOCK_CONST_METHOD1(FilterResultsPtr,
void(std::vector<std::unique_ptr<PasswordForm>>* results));
// This method is not relevant here.
MOCK_CONST_METHOD1(ShouldSave, bool(const autofill::PasswordForm& form));
// GMock cannot handle move-only arguments.
std::vector<std::unique_ptr<PasswordForm>> FilterResults(
std::vector<std::unique_ptr<PasswordForm>> results) const override {
FilterResultsPtr(&results);
return results;
}
};
class TestPasswordManagerClient : public StubPasswordManagerClient {
......
......@@ -20,6 +20,7 @@
#include "components/password_manager/core/browser/password_manager_driver.h"
#include "components/password_manager/core/browser/password_store.h"
#include "components/password_manager/core/browser/statistics_table.h"
#include "components/password_manager/core/browser/stub_credentials_filter.h"
#include "components/password_manager/core/browser/stub_password_manager_client.h"
#include "components/password_manager/core/browser/stub_password_manager_driver.h"
#include "components/password_manager/core/common/password_manager_features.h"
......@@ -39,20 +40,11 @@ namespace password_manager {
namespace {
class MockStoreResultFilter : public CredentialsFilter {
class MockStoreResultFilter : public StubCredentialsFilter {
public:
MOCK_CONST_METHOD1(FilterResultsPtr,
void(std::vector<std::unique_ptr<PasswordForm>>* results));
MOCK_CONST_METHOD1(ShouldSave, bool(const autofill::PasswordForm& form));
MOCK_CONST_METHOD1(ReportFormLoginSuccess,
void(const PasswordFormManager& form_manager));
// GMock cannot handle move-only arguments.
std::vector<std::unique_ptr<PasswordForm>> FilterResults(
std::vector<std::unique_ptr<PasswordForm>> results) const override {
FilterResultsPtr(&results);
return results;
}
};
class MockPasswordManagerClient : public StubPasswordManagerClient {
......
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "components/password_manager/core/browser/stub_credentials_filter.h"
namespace password_manager {
StubCredentialsFilter::StubCredentialsFilter() = default;
StubCredentialsFilter::~StubCredentialsFilter() = default;
std::vector<std::unique_ptr<autofill::PasswordForm>>
StubCredentialsFilter::FilterResults(
std::vector<std::unique_ptr<autofill::PasswordForm>> results) const {
FilterResultsPtr(&results);
return results;
}
bool StubCredentialsFilter::ShouldSave(
const autofill::PasswordForm& form) const {
return true;
}
void StubCredentialsFilter::ReportFormLoginSuccess(
const PasswordFormManager& form_manager) const {}
void StubCredentialsFilter::FilterResultsPtr(
std::vector<std::unique_ptr<autofill::PasswordForm>>* results) const {}
} // namespace password_manager
// Copyright 2016 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_STUB_CREDENTIALS_FILTER_H_
#define COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_STUB_CREDENTIALS_FILTER_H_
#include "base/macros.h"
#include "components/password_manager/core/browser/credentials_filter.h"
namespace password_manager {
// Stub of the CredentialsFilter API, to be used in tests. This filter does
// not filter out anything.
class StubCredentialsFilter : public CredentialsFilter {
public:
StubCredentialsFilter();
~StubCredentialsFilter() override;
// CredentialsFilter
std::vector<std::unique_ptr<autofill::PasswordForm>> FilterResults(
std::vector<std::unique_ptr<autofill::PasswordForm>> results)
const override;
bool ShouldSave(const autofill::PasswordForm& form) const override;
void ReportFormLoginSuccess(
const PasswordFormManager& form_manager) const override;
// A version of FilterResult without moveable arguments, which cannot be
// mocked in GMock. StubCredentialsFilter::FilterResults(arg) calls
// FilterResultsPtr(&arg).
virtual void FilterResultsPtr(
std::vector<std::unique_ptr<autofill::PasswordForm>>* results) const;
private:
DISALLOW_COPY_AND_ASSIGN(StubCredentialsFilter);
};
} // namespace password_manager
#endif // COMPONENTS_PASSWORD_MANAGER_CORE_BROWSER_STUB_CREDENTIALS_FILTER_H_
......@@ -12,17 +12,6 @@
namespace password_manager {
std::vector<std::unique_ptr<autofill::PasswordForm>>
StubPasswordManagerClient::PassThroughCredentialsFilter::FilterResults(
std::vector<std::unique_ptr<autofill::PasswordForm>> results) const {
return results;
}
bool StubPasswordManagerClient::PassThroughCredentialsFilter::ShouldSave(
const autofill::PasswordForm& form) const {
return true;
}
StubPasswordManagerClient::StubPasswordManagerClient() {}
StubPasswordManagerClient::~StubPasswordManagerClient() {}
......
......@@ -7,6 +7,7 @@
#include "base/macros.h"
#include "components/password_manager/core/browser/password_manager_client.h"
#include "components/password_manager/core/browser/stub_credentials_filter.h"
#include "components/password_manager/core/browser/stub_log_manager.h"
namespace password_manager {
......@@ -45,20 +46,7 @@ class StubPasswordManagerClient : public PasswordManagerClient {
const LogManager* GetLogManager() const override;
private:
// This filter does not filter out anything, it is a dummy implementation of
// the filter interface.
class PassThroughCredentialsFilter : public CredentialsFilter {
public:
PassThroughCredentialsFilter() {}
// CredentialsFilter:
std::vector<std::unique_ptr<autofill::PasswordForm>> FilterResults(
std::vector<std::unique_ptr<autofill::PasswordForm>> results)
const override;
bool ShouldSave(const autofill::PasswordForm& form) const override;
};
const PassThroughCredentialsFilter credentials_filter_;
const StubCredentialsFilter credentials_filter_;
StubLogManager log_manager_;
DISALLOW_COPY_AND_ASSIGN(StubPasswordManagerClient);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment