Commit 59ea3334 authored by Max Li's avatar Max Li Committed by Commit Bot

Add GetDevicesActivityStatus to DeviceSyncClient

Bug: 923594
Change-Id: Id7fee971d9d52eac80a79523c9a354fd53809c64
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1862732
Commit-Queue: Max Li <themaxli@chromium.org>
Reviewed-by: default avatarJosh Nohle <nohle@chromium.org>
Cr-Commit-Position: refs/heads/master@{#706642}
parent c4c6a468
......@@ -49,7 +49,7 @@ void FakeDeviceSync::InvokePendingFindEligibleDevicesCallback(
void FakeDeviceSync::InvokePendingGetDevicesActivityStatusCallback(
mojom::NetworkRequestResult result_code,
std::vector<mojom::DeviceActivityStatusPtr>
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
get_devices_activity_status_response) {
std::move(get_devices_activity_status_callback_queue_.front())
.Run(result_code, std::move(get_devices_activity_status_response));
......
......@@ -46,7 +46,7 @@ class FakeDeviceSync : public DeviceSyncBase {
mojom::FindEligibleDevicesResponsePtr find_eligible_devices_response_ptr);
void InvokePendingGetDevicesActivityStatusCallback(
mojom::NetworkRequestResult result_code,
std::vector<mojom::DeviceActivityStatusPtr>
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
get_devices_activity_status_response);
void InvokePendingGetDebugInfoCallback(mojom::DebugInfoPtr debug_info_ptr);
......
......@@ -87,6 +87,8 @@ class DeviceSyncClient {
virtual void FindEligibleDevices(
multidevice::SoftwareFeature software_feature,
FindEligibleDevicesCallback callback) = 0;
virtual void GetDevicesActivityStatus(
mojom::DeviceSync::GetDevicesActivityStatusCallback callback) = 0;
virtual void GetDebugInfo(
mojom::DeviceSync::GetDebugInfoCallback callback) = 0;
......
......@@ -126,6 +126,11 @@ void DeviceSyncClientImpl::FindEligibleDevices(
weak_ptr_factory_.GetWeakPtr(), std::move(callback)));
}
void DeviceSyncClientImpl::GetDevicesActivityStatus(
mojom::DeviceSync::GetDevicesActivityStatusCallback callback) {
device_sync_ptr_->GetDevicesActivityStatus(std::move(callback));
}
void DeviceSyncClientImpl::GetDebugInfo(
mojom::DeviceSync::GetDebugInfoCallback callback) {
device_sync_ptr_->GetDebugInfo(std::move(callback));
......
......@@ -68,6 +68,8 @@ class DeviceSyncClientImpl : public DeviceSyncClient,
mojom::DeviceSync::SetSoftwareFeatureStateCallback callback) override;
void FindEligibleDevices(multidevice::SoftwareFeature software_feature,
FindEligibleDevicesCallback callback) override;
void GetDevicesActivityStatus(
mojom::DeviceSync::GetDevicesActivityStatusCallback callback) override;
void GetDebugInfo(mojom::DeviceSync::GetDebugInfoCallback callback) override;
// mojom::DeviceSyncObserver:
......
......@@ -373,6 +373,42 @@ class DeviceSyncClientImplTest : public testing::Test {
expected_ineligible_devices);
}
void CallGetDevicesActivityStatus(
mojom::NetworkRequestResult expected_result_code,
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
expected_activity_statuses) {
base::RunLoop run_loop;
client_->GetDevicesActivityStatus(
base::BindOnce(&DeviceSyncClientImplTest::OnGetDevicesActivityStatus,
base::Unretained(this), run_loop.QuitClosure()));
SendPendingMojoMessages();
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
device_activity_statuses_optional;
if (expected_activity_statuses != base::nullopt) {
std::vector<mojom::DeviceActivityStatusPtr> device_activity_statuses;
for (const mojom::DeviceActivityStatusPtr& device_activity_status :
*expected_activity_statuses) {
device_activity_statuses.emplace_back(mojom::DeviceActivityStatus::New(
device_activity_status->device_id,
device_activity_status->last_activity_time,
device_activity_status->connectivity_status));
}
device_activity_statuses_optional =
base::make_optional(std::move(device_activity_statuses));
}
fake_device_sync_->InvokePendingGetDevicesActivityStatusCallback(
expected_result_code, std::move(device_activity_statuses_optional));
run_loop.Run();
EXPECT_EQ(expected_result_code,
std::get<0>(get_devices_activity_status_code_and_response_));
EXPECT_EQ(expected_activity_statuses,
std::get<1>(get_devices_activity_status_code_and_response_));
}
void CallGetDebugInfo() {
EXPECT_FALSE(debug_info_received_);
......@@ -444,6 +480,9 @@ class DeviceSyncClientImplTest : public testing::Test {
multidevice::RemoteDeviceRefList,
multidevice::RemoteDeviceRefList>
find_eligible_devices_error_code_and_response_;
std::tuple<mojom::NetworkRequestResult,
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>>
get_devices_activity_status_code_and_response_;
bool debug_info_received_ = false;
private:
......@@ -475,6 +514,16 @@ class DeviceSyncClientImplTest : public testing::Test {
std::move(callback).Run();
}
void OnGetDevicesActivityStatus(
base::OnceClosure callback,
mojom::NetworkRequestResult result_code,
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
device_activity_status) {
get_devices_activity_status_code_and_response_ =
std::make_tuple(result_code, std::move(device_activity_status));
std::move(callback).Run();
}
void OnGetDebugInfoCompleted(base::OnceClosure callback,
mojom::DebugInfoPtr debug_info_ptr) {
debug_info_received_ = true;
......@@ -681,6 +730,23 @@ TEST_F(DeviceSyncClientImplTest, TestFindEligibleDevices_ErrorCode) {
multidevice::RemoteDeviceList());
}
TEST_F(DeviceSyncClientImplTest, TestGetDevicesActivityStatus_NoErrorCode) {
SetupClient();
std::vector<mojom::DeviceActivityStatusPtr> expected_activity_statuses;
expected_activity_statuses.emplace_back(mojom::DeviceActivityStatus::New(
"deviceid", base::Time(), cryptauthv2::ConnectivityStatus::ONLINE));
CallGetDevicesActivityStatus(mojom::NetworkRequestResult::kSuccess,
std::move(expected_activity_statuses));
}
TEST_F(DeviceSyncClientImplTest, TestGetDevicesActivityStatus_ErrorCode) {
SetupClient();
CallGetDevicesActivityStatus(mojom::NetworkRequestResult::kEndpointNotFound,
base::nullopt);
}
TEST_F(DeviceSyncClientImplTest, TestGetDebugInfo) {
SetupClient();
......
......@@ -49,6 +49,11 @@ void FakeDeviceSyncClient::FindEligibleDevices(
find_eligible_devices_callback_queue_.push(std::move(callback));
}
void FakeDeviceSyncClient::GetDevicesActivityStatus(
mojom::DeviceSync::GetDevicesActivityStatusCallback callback) {
get_devices_activity_status_callback_queue_.push(std::move(callback));
}
void FakeDeviceSyncClient::GetDebugInfo(
mojom::DeviceSync::GetDebugInfoCallback callback) {
get_debug_info_callback_queue_.push(std::move(callback));
......@@ -105,6 +110,16 @@ void FakeDeviceSyncClient::InvokePendingFindEligibleDevicesCallback(
find_eligible_devices_callback_queue_.pop();
}
void FakeDeviceSyncClient::InvokePendingGetDevicesActivityStatusCallback(
mojom::NetworkRequestResult result_code,
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
device_activity_status) {
DCHECK(get_devices_activity_status_callback_queue_.size() > 0);
std::move(get_devices_activity_status_callback_queue_.front())
.Run(result_code, std::move(device_activity_status));
get_devices_activity_status_callback_queue_.pop();
}
void FakeDeviceSyncClient::InvokePendingGetDebugInfoCallback(
mojom::DebugInfoPtr debug_info_ptr) {
DCHECK(get_debug_info_callback_queue_.size() > 0);
......
......@@ -42,6 +42,10 @@ class FakeDeviceSyncClient : public DeviceSyncClient {
mojom::NetworkRequestResult result_code,
multidevice::RemoteDeviceRefList eligible_devices,
multidevice::RemoteDeviceRefList ineligible_devices);
void InvokePendingGetDevicesActivityStatusCallback(
mojom::NetworkRequestResult result_code,
base::Optional<std::vector<mojom::DeviceActivityStatusPtr>>
device_activity_status);
void InvokePendingGetDebugInfoCallback(mojom::DebugInfoPtr debug_info_ptr);
void set_synced_devices(multidevice::RemoteDeviceRefList synced_devices) {
......@@ -73,6 +77,8 @@ class FakeDeviceSyncClient : public DeviceSyncClient {
mojom::DeviceSync::SetSoftwareFeatureStateCallback callback) override;
void FindEligibleDevices(multidevice::SoftwareFeature software_feature,
FindEligibleDevicesCallback callback) override;
void GetDevicesActivityStatus(
mojom::DeviceSync::GetDevicesActivityStatusCallback callback) override;
void GetDebugInfo(mojom::DeviceSync::GetDebugInfoCallback callback) override;
multidevice::RemoteDeviceRefList synced_devices_;
......@@ -85,6 +91,8 @@ class FakeDeviceSyncClient : public DeviceSyncClient {
std::queue<mojom::DeviceSync::SetSoftwareFeatureStateCallback>
set_software_feature_state_callback_queue_;
std::queue<FindEligibleDevicesCallback> find_eligible_devices_callback_queue_;
std::queue<mojom::DeviceSync::GetDevicesActivityStatusCallback>
get_devices_activity_status_callback_queue_;
std::queue<mojom::DeviceSync::GetDebugInfoCallback>
get_debug_info_callback_queue_;
......
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