Add FakeSecureMessageDelegateFactory class
Replace duplicate implementations with this centralized class.
Bug: 976745
Change-Id: Idb328759ee467b66e417d54d858d895dab3fd4d6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1666771
Auto-Submit: Josh Nohle <nohle@chromium.org>
Commit-Queue: Kyle Horimoto <khorimoto@chromium.org>
Reviewed-by: Kyle Horimoto <khorimoto@chromium.org>
Cr-Commit-Position: refs/heads/master@{#670529}
diff --git a/chromeos/components/multidevice/fake_secure_message_delegate.cc b/chromeos/components/multidevice/fake_secure_message_delegate.cc
index 39f696df..bccbf976 100644
--- a/chromeos/components/multidevice/fake_secure_message_delegate.cc
+++ b/chromeos/components/multidevice/fake_secure_message_delegate.cc
@@ -197,6 +197,14 @@
return kPrivateKeyPrefix + public_key;
}
+std::unique_ptr<multidevice::SecureMessageDelegate>
+FakeSecureMessageDelegateFactory::BuildInstance() {
+ auto instance = std::make_unique<multidevice::FakeSecureMessageDelegate>();
+ instance_ = instance.get();
+
+ return instance;
+}
+
} // namespace multidevice
} // namespace chromeos
diff --git a/chromeos/components/multidevice/fake_secure_message_delegate.h b/chromeos/components/multidevice/fake_secure_message_delegate.h
index 8bb1aaa..b94842b 100644
--- a/chromeos/components/multidevice/fake_secure_message_delegate.h
+++ b/chromeos/components/multidevice/fake_secure_message_delegate.h
@@ -5,8 +5,11 @@
#ifndef CHROMEOS_COMPONENTS_MULTIDEVICE_FAKE_SECURE_MESSAGE_DELEGATE_H_
#define CHROMEOS_COMPONENTS_MULTIDEVICE_FAKE_SECURE_MESSAGE_DELEGATE_H_
+#include <memory>
+
#include "base/macros.h"
#include "chromeos/components/multidevice/secure_message_delegate.h"
+#include "chromeos/components/multidevice/secure_message_delegate_impl.h"
namespace chromeos {
@@ -51,6 +54,23 @@
DISALLOW_COPY_AND_ASSIGN(FakeSecureMessageDelegate);
};
+class FakeSecureMessageDelegateFactory
+ : public multidevice::SecureMessageDelegateImpl::Factory {
+ public:
+ FakeSecureMessageDelegateFactory() = default;
+ ~FakeSecureMessageDelegateFactory() override = default;
+
+ multidevice::FakeSecureMessageDelegate* instance() { return instance_; }
+
+ private:
+ // multidevice::SecureMessageDelegateImpl::Factory:
+ std::unique_ptr<multidevice::SecureMessageDelegate> BuildInstance() override;
+
+ multidevice::FakeSecureMessageDelegate* instance_ = nullptr;
+
+ DISALLOW_COPY_AND_ASSIGN(FakeSecureMessageDelegateFactory);
+};
+
} // namespace multidevice
} // namespace chromeos
diff --git a/chromeos/services/device_sync/cryptauth_key_creator_impl_unittest.cc b/chromeos/services/device_sync/cryptauth_key_creator_impl_unittest.cc
index ab35c46..d29bdca 100644
--- a/chromeos/services/device_sync/cryptauth_key_creator_impl_unittest.cc
+++ b/chromeos/services/device_sync/cryptauth_key_creator_impl_unittest.cc
@@ -2,6 +2,8 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#include "chromeos/services/device_sync/cryptauth_key_creator_impl.h"
+
#include <memory>
#include <string>
#include <utility>
@@ -16,7 +18,6 @@
#include "chromeos/services/device_sync/cryptauth_key.h"
#include "chromeos/services/device_sync/cryptauth_key_bundle.h"
#include "chromeos/services/device_sync/cryptauth_key_creator.h"
-#include "chromeos/services/device_sync/cryptauth_key_creator_impl.h"
#include "chromeos/services/device_sync/proto/cryptauth_common.pb.h"
#include "crypto/hkdf.h"
#include "testing/gtest/include/gtest/gtest.h"
@@ -47,36 +48,13 @@
}
}
-class FakeSecureMessageDelegateFactory
- : public multidevice::SecureMessageDelegateImpl::Factory {
- public:
- FakeSecureMessageDelegateFactory() = default;
-
- ~FakeSecureMessageDelegateFactory() override = default;
-
- multidevice::FakeSecureMessageDelegate* instance() { return instance_; }
-
- private:
- // multidevice::SecureMessageDelegateImpl::Factory:
- std::unique_ptr<multidevice::SecureMessageDelegate> BuildInstance() override {
- auto instance = std::make_unique<multidevice::FakeSecureMessageDelegate>();
- instance_ = instance.get();
-
- return instance;
- }
-
- multidevice::FakeSecureMessageDelegate* instance_ = nullptr;
-
- DISALLOW_COPY_AND_ASSIGN(FakeSecureMessageDelegateFactory);
-};
-
} // namespace
class DeviceSyncCryptAuthKeyCreatorImplTest : public testing::Test {
protected:
DeviceSyncCryptAuthKeyCreatorImplTest()
: fake_secure_message_delegate_factory_(
- std::make_unique<FakeSecureMessageDelegateFactory>()),
+ std::make_unique<multidevice::FakeSecureMessageDelegateFactory>()),
fake_server_ephemeral_dh_(CryptAuthKey(
kFakeServerEphemeralDhPublicKeyMaterial,
fake_secure_message_delegate()->GetPrivateKeyForPublicKey(
@@ -161,7 +139,7 @@
client_ephemeral_dh_ = client_ephemeral_dh;
}
- std::unique_ptr<FakeSecureMessageDelegateFactory>
+ std::unique_ptr<multidevice::FakeSecureMessageDelegateFactory>
fake_secure_message_delegate_factory_;
std::unique_ptr<CryptAuthKeyCreator> key_creator_;
diff --git a/chromeos/services/device_sync/remote_device_provider_impl_unittest.cc b/chromeos/services/device_sync/remote_device_provider_impl_unittest.cc
index 906d76b..39bc2eec 100644
--- a/chromeos/services/device_sync/remote_device_provider_impl_unittest.cc
+++ b/chromeos/services/device_sync/remote_device_provider_impl_unittest.cc
@@ -34,21 +34,6 @@
const char kTestUserId[] = "testUserId";
const char kTestUserPrivateKey[] = "kTestUserPrivateKey";
-class FakeSecureMessageDelegateFactory
- : public multidevice::SecureMessageDelegateImpl::Factory {
- public:
- // multidevice::SecureMessageDelegateImpl::Factory:
- std::unique_ptr<multidevice::SecureMessageDelegate> BuildInstance() override {
- multidevice::FakeSecureMessageDelegate* delegate =
- new multidevice::FakeSecureMessageDelegate();
- created_delegates_.push_back(delegate);
- return base::WrapUnique(delegate);
- }
-
- private:
- std::vector<multidevice::FakeSecureMessageDelegate*> created_delegates_;
-};
-
std::vector<cryptauth::ExternalDeviceInfo>
CreateExternalDeviceInfosForRemoteDevices(
const multidevice::RemoteDeviceList remote_devices) {
@@ -157,7 +142,7 @@
void SetUp() override {
fake_device_manager_ = std::make_unique<FakeCryptAuthDeviceManager>();
fake_secure_message_delegate_factory_ =
- std::make_unique<FakeSecureMessageDelegateFactory>();
+ std::make_unique<multidevice::FakeSecureMessageDelegateFactory>();
multidevice::SecureMessageDelegateImpl::Factory::SetInstanceForTesting(
fake_secure_message_delegate_factory_.get());
test_device_loader_factory_ =
@@ -206,7 +191,7 @@
return test_device_loader_factory_->test_device_infos_[val];
}
- std::unique_ptr<FakeSecureMessageDelegateFactory>
+ std::unique_ptr<multidevice::FakeSecureMessageDelegateFactory>
fake_secure_message_delegate_factory_;
std::unique_ptr<FakeCryptAuthDeviceManager> fake_device_manager_;
diff --git a/chromeos/services/secure_channel/secure_channel_unittest.cc b/chromeos/services/secure_channel/secure_channel_unittest.cc
index 34487c2..9ac455b 100644
--- a/chromeos/services/secure_channel/secure_channel_unittest.cc
+++ b/chromeos/services/secure_channel/secure_channel_unittest.cc
@@ -43,15 +43,6 @@
std::string payload;
};
-class FakeSecureMessageDelegateFactory
- : public multidevice::SecureMessageDelegateImpl::Factory {
- public:
- // multidevice::SecureMessageDelegateImpl::Factory:
- std::unique_ptr<multidevice::SecureMessageDelegate> BuildInstance() override {
- return std::make_unique<multidevice::FakeSecureMessageDelegate>();
- }
-};
-
class TestObserver final : public SecureChannel::Observer {
public:
explicit TestObserver(SecureChannel* secure_channel)
@@ -166,7 +157,7 @@
test_authenticator_factory_.get());
fake_secure_message_delegate_factory_ =
- std::make_unique<FakeSecureMessageDelegateFactory>();
+ std::make_unique<multidevice::FakeSecureMessageDelegateFactory>();
multidevice::SecureMessageDelegateImpl::Factory::SetInstanceForTesting(
fake_secure_message_delegate_factory_.get());
@@ -341,7 +332,7 @@
// Owned by secure_channel_.
FakeConnection* fake_connection_;
- std::unique_ptr<FakeSecureMessageDelegateFactory>
+ std::unique_ptr<multidevice::FakeSecureMessageDelegateFactory>
fake_secure_message_delegate_factory_;
// Owned by secure_channel_ once authentication has completed successfully.