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 @@
#include "base/macros.h"
#include "base/memory/weak_ptr.h"
#include "base/threading/sequenced_task_runner_handle.h"
#include "device/fido/virtual_ctap2_device.h"
#include "device/fido/virtual_u2f_device.h"
namespace device {
......@@ -23,14 +24,21 @@ class VirtualFidoDeviceDiscovery
public base::SupportsWeakPtr<VirtualFidoDeviceDiscovery> {
public:
explicit VirtualFidoDeviceDiscovery(
scoped_refptr<VirtualFidoDevice::State> state)
scoped_refptr<VirtualFidoDevice::State> state,
ProtocolVersion supported_protocol)
: FidoDiscovery(FidoTransportProtocol::kUsbHumanInterfaceDevice),
state_(std::move(state)) {}
state_(std::move(state)),
supported_protocol_(supported_protocol) {}
~VirtualFidoDeviceDiscovery() override = default;
protected:
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));
base::SequencedTaskRunnerHandle::Get()->PostTask(
FROM_HERE,
......@@ -40,6 +48,7 @@ class VirtualFidoDeviceDiscovery
private:
scoped_refptr<VirtualFidoDevice::State> state_;
ProtocolVersion supported_protocol_;
DISALLOW_COPY_AND_ASSIGN(VirtualFidoDeviceDiscovery);
};
......@@ -47,6 +56,11 @@ ScopedVirtualFidoDevice::ScopedVirtualFidoDevice()
: state_(new VirtualFidoDevice::State) {}
ScopedVirtualFidoDevice::~ScopedVirtualFidoDevice() = default;
void ScopedVirtualFidoDevice::SetSupportedProtocol(
ProtocolVersion supported_protocol) {
supported_protocol_ = ProtocolVersion::kCtap;
}
VirtualFidoDevice::State* ScopedVirtualFidoDevice::mutable_state() {
return state_.get();
}
......@@ -57,7 +71,8 @@ std::unique_ptr<FidoDiscovery> ScopedVirtualFidoDevice::CreateFidoDiscovery(
if (transport != FidoTransportProtocol::kUsbHumanInterfaceDevice) {
return nullptr;
}
return std::make_unique<VirtualFidoDeviceDiscovery>(state_);
return std::make_unique<VirtualFidoDeviceDiscovery>(state_,
supported_protocol_);
}
} // namespace test
......
......@@ -8,6 +8,7 @@
#include <memory>
#include "base/macros.h"
#include "device/fido/fido_constants.h"
#include "device/fido/fido_discovery.h"
#include "device/fido/virtual_fido_device.h"
......@@ -23,6 +24,7 @@ class ScopedVirtualFidoDevice
ScopedVirtualFidoDevice();
~ScopedVirtualFidoDevice() override;
void SetSupportedProtocol(ProtocolVersion supported_protocol);
VirtualFidoDevice::State* mutable_state();
protected:
......@@ -31,6 +33,7 @@ class ScopedVirtualFidoDevice
::service_manager::Connector* connector) override;
private:
ProtocolVersion supported_protocol_ = ProtocolVersion::kU2f;
scoped_refptr<VirtualFidoDevice::State> state_;
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