Commit 4b57df03 authored by Jun Choi's avatar Jun Choi Committed by Commit Bot

Apply VirtualCtap2Device to browser tests

Add end to end tests using VirtualCtap2Device and replace all use of
MockFidoDevice in integration tests.

Bug: 829413
Change-Id: If483308eda2502efd93ab9996c75f976e89bfd2b
Reviewed-on: https://chromium-review.googlesource.com/1117838
Commit-Queue: Jun Choi <hongjunchoi@chromium.org>
Reviewed-by: default avatarBalazs Engedy <engedy@chromium.org>
Reviewed-by: default avatarKim Paulhamus <kpaulhamus@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572352}
parent e2c7ebd5
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
#include "base/macros.h" #include "base/macros.h"
#include "base/memory/weak_ptr.h" #include "base/memory/weak_ptr.h"
#include "base/threading/sequenced_task_runner_handle.h" #include "base/threading/sequenced_task_runner_handle.h"
#include "device/fido/virtual_ctap2_device.h"
#include "device/fido/virtual_u2f_device.h" #include "device/fido/virtual_u2f_device.h"
namespace device { namespace device {
...@@ -23,14 +24,21 @@ class VirtualFidoDeviceDiscovery ...@@ -23,14 +24,21 @@ class VirtualFidoDeviceDiscovery
public base::SupportsWeakPtr<VirtualFidoDeviceDiscovery> { public base::SupportsWeakPtr<VirtualFidoDeviceDiscovery> {
public: public:
explicit VirtualFidoDeviceDiscovery( explicit VirtualFidoDeviceDiscovery(
scoped_refptr<VirtualFidoDevice::State> state) scoped_refptr<VirtualFidoDevice::State> state,
ProtocolVersion supported_protocol)
: FidoDiscovery(FidoTransportProtocol::kUsbHumanInterfaceDevice), : FidoDiscovery(FidoTransportProtocol::kUsbHumanInterfaceDevice),
state_(std::move(state)) {} state_(std::move(state)),
supported_protocol_(supported_protocol) {}
~VirtualFidoDeviceDiscovery() override = default; ~VirtualFidoDeviceDiscovery() override = default;
protected: protected:
void StartInternal() override { void StartInternal() override {
auto device = std::make_unique<VirtualU2fDevice>(state_); std::unique_ptr<FidoDevice> device;
if (supported_protocol_ == ProtocolVersion::kCtap)
device = std::make_unique<VirtualCtap2Device>(state_);
else
device = std::make_unique<VirtualU2fDevice>(state_);
AddDevice(std::move(device)); AddDevice(std::move(device));
base::SequencedTaskRunnerHandle::Get()->PostTask( base::SequencedTaskRunnerHandle::Get()->PostTask(
FROM_HERE, FROM_HERE,
...@@ -40,6 +48,7 @@ class VirtualFidoDeviceDiscovery ...@@ -40,6 +48,7 @@ class VirtualFidoDeviceDiscovery
private: private:
scoped_refptr<VirtualFidoDevice::State> state_; scoped_refptr<VirtualFidoDevice::State> state_;
ProtocolVersion supported_protocol_;
DISALLOW_COPY_AND_ASSIGN(VirtualFidoDeviceDiscovery); DISALLOW_COPY_AND_ASSIGN(VirtualFidoDeviceDiscovery);
}; };
...@@ -47,6 +56,11 @@ ScopedVirtualFidoDevice::ScopedVirtualFidoDevice() ...@@ -47,6 +56,11 @@ ScopedVirtualFidoDevice::ScopedVirtualFidoDevice()
: state_(new VirtualFidoDevice::State) {} : state_(new VirtualFidoDevice::State) {}
ScopedVirtualFidoDevice::~ScopedVirtualFidoDevice() = default; ScopedVirtualFidoDevice::~ScopedVirtualFidoDevice() = default;
void ScopedVirtualFidoDevice::SetSupportedProtocol(
ProtocolVersion supported_protocol) {
supported_protocol_ = ProtocolVersion::kCtap;
}
VirtualFidoDevice::State* ScopedVirtualFidoDevice::mutable_state() { VirtualFidoDevice::State* ScopedVirtualFidoDevice::mutable_state() {
return state_.get(); return state_.get();
} }
...@@ -57,7 +71,8 @@ std::unique_ptr<FidoDiscovery> ScopedVirtualFidoDevice::CreateFidoDiscovery( ...@@ -57,7 +71,8 @@ std::unique_ptr<FidoDiscovery> ScopedVirtualFidoDevice::CreateFidoDiscovery(
if (transport != FidoTransportProtocol::kUsbHumanInterfaceDevice) { if (transport != FidoTransportProtocol::kUsbHumanInterfaceDevice) {
return nullptr; return nullptr;
} }
return std::make_unique<VirtualFidoDeviceDiscovery>(state_); return std::make_unique<VirtualFidoDeviceDiscovery>(state_,
supported_protocol_);
} }
} // namespace test } // namespace test
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include <memory> #include <memory>
#include "base/macros.h" #include "base/macros.h"
#include "device/fido/fido_constants.h"
#include "device/fido/fido_discovery.h" #include "device/fido/fido_discovery.h"
#include "device/fido/virtual_fido_device.h" #include "device/fido/virtual_fido_device.h"
...@@ -23,6 +24,7 @@ class ScopedVirtualFidoDevice ...@@ -23,6 +24,7 @@ class ScopedVirtualFidoDevice
ScopedVirtualFidoDevice(); ScopedVirtualFidoDevice();
~ScopedVirtualFidoDevice() override; ~ScopedVirtualFidoDevice() override;
void SetSupportedProtocol(ProtocolVersion supported_protocol);
VirtualFidoDevice::State* mutable_state(); VirtualFidoDevice::State* mutable_state();
protected: protected:
...@@ -31,6 +33,7 @@ class ScopedVirtualFidoDevice ...@@ -31,6 +33,7 @@ class ScopedVirtualFidoDevice
::service_manager::Connector* connector) override; ::service_manager::Connector* connector) override;
private: private:
ProtocolVersion supported_protocol_ = ProtocolVersion::kU2f;
scoped_refptr<VirtualFidoDevice::State> state_; scoped_refptr<VirtualFidoDevice::State> state_;
DISALLOW_COPY_AND_ASSIGN(ScopedVirtualFidoDevice); DISALLOW_COPY_AND_ASSIGN(ScopedVirtualFidoDevice);
}; };
......
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