Chromium Code Reviews| Index: chromeos/components/tether/keep_alive_operation_unittest.cc |
| diff --git a/chromeos/components/tether/keep_alive_operation_unittest.cc b/chromeos/components/tether/keep_alive_operation_unittest.cc |
| index 57e6e467fe4b452e961367977765d7b2b238a3fa..dd8ee94e48e7fdb4f85a718562113aa281b71e02 100644 |
| --- a/chromeos/components/tether/keep_alive_operation_unittest.cc |
| +++ b/chromeos/components/tether/keep_alive_operation_unittest.cc |
| @@ -27,10 +27,26 @@ class TestObserver : public KeepAliveOperation::Observer { |
| bool has_run_callback() { return has_run_callback_; } |
| - void OnOperationFinished() override { has_run_callback_ = true; } |
| + cryptauth::RemoteDevice last_remote_device_received() { |
| + return last_remote_device_received_; |
| + } |
| + |
| + DeviceStatus* last_device_status_received() { |
| + return last_device_status_received_.get(); |
| + } |
| + |
| + void OnOperationFinished( |
| + const cryptauth::RemoteDevice& remote_device, |
| + std::unique_ptr<DeviceStatus> device_status) override { |
| + has_run_callback_ = true; |
| + last_remote_device_received_ = remote_device; |
| + last_device_status_received_ = std::move(device_status); |
| + } |
| private: |
| bool has_run_callback_; |
| + cryptauth::RemoteDevice last_remote_device_received_; |
| + std::unique_ptr<DeviceStatus> last_device_status_received_; |
| }; |
| std::string CreateKeepAliveTickleString() { |
| @@ -38,6 +54,26 @@ std::string CreateKeepAliveTickleString() { |
| return MessageWrapper(tickle).ToRawMessage(); |
| } |
| +DeviceStatus CreateFakeDeviceStatus() { |
|
Ryan Hansberry
2017/06/01 23:45:52
Has this been copied from somewhere? If so, can we
Kyle Horimoto
2017/06/06 18:30:33
Done.
|
| + WifiStatus wifi_status; |
| + wifi_status.set_status_code( |
| + WifiStatus_StatusCode::WifiStatus_StatusCode_NOT_CONNECTED); |
| + |
| + DeviceStatus device_status; |
| + device_status.set_battery_percentage(75); |
| + device_status.set_cell_provider("Google Fi"); |
| + device_status.set_connection_strength(4); |
| + device_status.mutable_wifi_status()->CopyFrom(wifi_status); |
| + |
| + return device_status; |
| +} |
| + |
| +std::string CreateKeepAliveTickleResponseString() { |
| + KeepAliveTickleResponse response; |
| + response.mutable_device_status()->CopyFrom(CreateFakeDeviceStatus()); |
| + return MessageWrapper(response).ToRawMessage(); |
| +} |
| + |
| } // namespace |
| class KeepAliveOperationTest : public testing::Test { |
| @@ -81,10 +117,40 @@ class KeepAliveOperationTest : public testing::Test { |
| DISALLOW_COPY_AND_ASSIGN(KeepAliveOperationTest); |
| }; |
| -TEST_F(KeepAliveOperationTest, TestSendsKeepAliveTickle) { |
| +TEST_F(KeepAliveOperationTest, TestSendsKeepAliveTickleAndReceivesResponse) { |
| EXPECT_FALSE(test_observer_->has_run_callback()); |
| + |
| SimulateDeviceAuthenticationAndVerifyMessageSent(); |
| + EXPECT_FALSE(test_observer_->has_run_callback()); |
| + |
| + fake_ble_connection_manager_->ReceiveMessage( |
| + test_device_, CreateKeepAliveTickleResponseString()); |
| + EXPECT_TRUE(test_observer_->has_run_callback()); |
| + EXPECT_EQ(test_device_, test_observer_->last_remote_device_received()); |
| + ASSERT_TRUE(test_observer_->last_device_status_received()); |
| + EXPECT_EQ(CreateFakeDeviceStatus().SerializeAsString(), |
| + test_observer_->last_device_status_received()->SerializeAsString()); |
| +} |
| + |
| +TEST_F(KeepAliveOperationTest, TestCannotConnect) { |
| + // Simulate the device failing to connect. |
| + fake_ble_connection_manager_->SetDeviceStatus( |
| + test_device_, cryptauth::SecureChannel::Status::CONNECTING); |
| + fake_ble_connection_manager_->SetDeviceStatus( |
| + test_device_, cryptauth::SecureChannel::Status::DISCONNECTED); |
| + fake_ble_connection_manager_->SetDeviceStatus( |
| + test_device_, cryptauth::SecureChannel::Status::CONNECTING); |
| + fake_ble_connection_manager_->SetDeviceStatus( |
| + test_device_, cryptauth::SecureChannel::Status::DISCONNECTED); |
| + fake_ble_connection_manager_->SetDeviceStatus( |
| + test_device_, cryptauth::SecureChannel::Status::CONNECTING); |
| + fake_ble_connection_manager_->SetDeviceStatus( |
| + test_device_, cryptauth::SecureChannel::Status::DISCONNECTED); |
| + |
| + // The maximum number of connection failures has occurred. |
| EXPECT_TRUE(test_observer_->has_run_callback()); |
| + EXPECT_EQ(test_device_, test_observer_->last_remote_device_received()); |
| + EXPECT_FALSE(test_observer_->last_device_status_received()); |
| } |
| } // namespace tether |