OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chromeos/components/tether/tether_host_fetcher.h" | 5 #include "chromeos/components/tether/tether_host_fetcher.h" |
6 | 6 |
7 #include <memory> | 7 #include <memory> |
8 #include <vector> | 8 #include <vector> |
9 | 9 |
10 #include "base/bind.h" | 10 #include "base/bind.h" |
11 #include "base/memory/ptr_util.h" | 11 #include "base/memory/ptr_util.h" |
12 #include "components/cryptauth/cryptauth_device_manager.h" | 12 #include "components/cryptauth/cryptauth_device_manager.h" |
| 13 #include "components/cryptauth/fake_cryptauth_service.h" |
13 #include "components/cryptauth/fake_secure_message_delegate.h" | 14 #include "components/cryptauth/fake_secure_message_delegate.h" |
14 #include "components/cryptauth/proto/cryptauth_api.pb.h" | 15 #include "components/cryptauth/proto/cryptauth_api.pb.h" |
15 #include "components/cryptauth/remote_device_loader.h" | 16 #include "components/cryptauth/remote_device_loader.h" |
16 #include "components/cryptauth/remote_device_test_util.h" | 17 #include "components/cryptauth/remote_device_test_util.h" |
17 #include "testing/gmock/include/gmock/gmock.h" | 18 #include "testing/gmock/include/gmock/gmock.h" |
18 #include "testing/gtest/include/gtest/gtest.h" | 19 #include "testing/gtest/include/gtest/gtest.h" |
19 | 20 |
20 using testing::_; | 21 using testing::_; |
21 using testing::Invoke; | 22 using testing::Invoke; |
22 using testing::NiceMock; | 23 using testing::NiceMock; |
23 using testing::Return; | 24 using testing::Return; |
24 | 25 |
25 namespace chromeos { | 26 namespace chromeos { |
26 | 27 |
27 namespace tether { | 28 namespace tether { |
28 | 29 |
29 namespace { | 30 namespace { |
30 | 31 |
31 const char kTestUserId[] = "testUserId"; | 32 const char kTestUserId[] = "testUserId"; |
32 const char kTestUserPrivateKey[] = "kTestUserPrivateKey"; | 33 const char kTestUserPrivateKey[] = "kTestUserPrivateKey"; |
33 | 34 |
34 class TestDelegate : public TetherHostFetcher::Delegate { | 35 class FakeCryptAuthServiceWithTracking |
| 36 : public cryptauth::FakeCryptAuthService { |
35 public: | 37 public: |
| 38 // FakeCryptAuthService: |
36 std::unique_ptr<cryptauth::SecureMessageDelegate> | 39 std::unique_ptr<cryptauth::SecureMessageDelegate> |
37 CreateSecureMessageDelegate() override { | 40 CreateSecureMessageDelegate() override { |
38 cryptauth::FakeSecureMessageDelegate* delegate = | 41 cryptauth::FakeSecureMessageDelegate* delegate = |
39 new cryptauth::FakeSecureMessageDelegate(); | 42 new cryptauth::FakeSecureMessageDelegate(); |
40 created_delegates_.push_back(delegate); | 43 created_delegates_.push_back(delegate); |
41 return base::WrapUnique(delegate); | 44 return base::WrapUnique(delegate); |
42 } | 45 } |
43 | 46 |
44 void VerifySecureMessageDelegateCreatedByFactory( | 47 void VerifySecureMessageDelegateCreatedByFactory( |
45 cryptauth::FakeSecureMessageDelegate* delegate) { | 48 cryptauth::FakeSecureMessageDelegate* delegate) { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 | 101 |
99 std::unique_ptr<cryptauth::RemoteDeviceLoader> BuildInstance( | 102 std::unique_ptr<cryptauth::RemoteDeviceLoader> BuildInstance( |
100 const std::vector<cryptauth::ExternalDeviceInfo>& device_info_list, | 103 const std::vector<cryptauth::ExternalDeviceInfo>& device_info_list, |
101 const std::string& user_id, | 104 const std::string& user_id, |
102 const std::string& user_private_key, | 105 const std::string& user_private_key, |
103 std::unique_ptr<cryptauth::SecureMessageDelegate> | 106 std::unique_ptr<cryptauth::SecureMessageDelegate> |
104 secure_message_delegate) override { | 107 secure_message_delegate) override { |
105 EXPECT_EQ(test_->test_device_infos_.size(), device_info_list.size()); | 108 EXPECT_EQ(test_->test_device_infos_.size(), device_info_list.size()); |
106 EXPECT_EQ(std::string(kTestUserId), user_id); | 109 EXPECT_EQ(std::string(kTestUserId), user_id); |
107 EXPECT_EQ(std::string(kTestUserPrivateKey), user_private_key); | 110 EXPECT_EQ(std::string(kTestUserPrivateKey), user_private_key); |
108 test_->test_delegate_->VerifySecureMessageDelegateCreatedByFactory( | 111 test_->fake_cryptauth_service_ |
109 static_cast<cryptauth::FakeSecureMessageDelegate*>( | 112 ->VerifySecureMessageDelegateCreatedByFactory( |
110 secure_message_delegate.get())); | 113 static_cast<cryptauth::FakeSecureMessageDelegate*>( |
| 114 secure_message_delegate.get())); |
111 | 115 |
112 std::unique_ptr<MockDeviceLoader> device_loader = | 116 std::unique_ptr<MockDeviceLoader> device_loader = |
113 base::WrapUnique(new NiceMock<MockDeviceLoader>()); | 117 base::WrapUnique(new NiceMock<MockDeviceLoader>()); |
114 ON_CALL(*device_loader, Load(_)) | 118 ON_CALL(*device_loader, Load(_)) |
115 .WillByDefault( | 119 .WillByDefault( |
116 Invoke(this, &TestRemoteDeviceLoaderFactory::MockLoadImpl)); | 120 Invoke(this, &TestRemoteDeviceLoaderFactory::MockLoadImpl)); |
117 return std::move(device_loader); | 121 return std::move(device_loader); |
118 } | 122 } |
119 | 123 |
120 void MockLoadImpl( | 124 void MockLoadImpl( |
(...skipping 13 matching lines...) Expand all Loading... |
134 | 138 |
135 TetherHostFetcherTest() | 139 TetherHostFetcherTest() |
136 : test_devices_(cryptauth::GenerateTestRemoteDevices(5)), | 140 : test_devices_(cryptauth::GenerateTestRemoteDevices(5)), |
137 test_device_infos_( | 141 test_device_infos_( |
138 CreateTetherExternalDeviceInfosForRemoteDevices(test_devices_)) {} | 142 CreateTetherExternalDeviceInfosForRemoteDevices(test_devices_)) {} |
139 | 143 |
140 void SetUp() override { | 144 void SetUp() override { |
141 device_list_list_.clear(); | 145 device_list_list_.clear(); |
142 single_device_list_.clear(); | 146 single_device_list_.clear(); |
143 | 147 |
144 std::unique_ptr<TestDelegate> test_delegate = | 148 fake_cryptauth_service_ = |
145 base::WrapUnique(new TestDelegate()); | 149 base::WrapUnique(new FakeCryptAuthServiceWithTracking()); |
146 test_delegate_ = test_delegate.get(); | |
147 | 150 |
148 mock_device_manager_ = base::WrapUnique(new NiceMock<MockDeviceManager>()); | 151 mock_device_manager_ = base::WrapUnique(new NiceMock<MockDeviceManager>()); |
149 ON_CALL(*mock_device_manager_, GetTetherHosts()) | 152 ON_CALL(*mock_device_manager_, GetTetherHosts()) |
150 .WillByDefault(Return(test_device_infos_)); | 153 .WillByDefault(Return(test_device_infos_)); |
151 | 154 |
152 test_device_loader_factory_ = | 155 test_device_loader_factory_ = |
153 base::WrapUnique(new TestRemoteDeviceLoaderFactory(this)); | 156 base::WrapUnique(new TestRemoteDeviceLoaderFactory(this)); |
154 cryptauth::RemoteDeviceLoader::Factory::SetInstanceForTesting( | 157 cryptauth::RemoteDeviceLoader::Factory::SetInstanceForTesting( |
155 test_device_loader_factory_.get()); | 158 test_device_loader_factory_.get()); |
156 | 159 |
157 tether_host_fetcher_ = base::MakeUnique<TetherHostFetcher>( | 160 tether_host_fetcher_ = base::MakeUnique<TetherHostFetcher>( |
158 std::string(kTestUserId), std::string(kTestUserPrivateKey), | 161 std::string(kTestUserId), std::string(kTestUserPrivateKey), |
159 std::move(test_delegate), mock_device_manager_.get()); | 162 fake_cryptauth_service_.get(), mock_device_manager_.get()); |
160 } | 163 } |
161 | 164 |
162 void OnTetherHostListFetched(const cryptauth::RemoteDeviceList& device_list) { | 165 void OnTetherHostListFetched(const cryptauth::RemoteDeviceList& device_list) { |
163 device_list_list_.push_back(device_list); | 166 device_list_list_.push_back(device_list); |
164 } | 167 } |
165 | 168 |
166 void OnSingleTetherHostFetched( | 169 void OnSingleTetherHostFetched( |
167 std::unique_ptr<cryptauth::RemoteDevice> device) { | 170 std::unique_ptr<cryptauth::RemoteDevice> device) { |
168 single_device_list_.push_back(std::move(device)); | 171 single_device_list_.push_back(std::move(device)); |
169 } | 172 } |
170 | 173 |
171 const std::vector<cryptauth::RemoteDevice> test_devices_; | 174 const std::vector<cryptauth::RemoteDevice> test_devices_; |
172 const std::vector<cryptauth::ExternalDeviceInfo> test_device_infos_; | 175 const std::vector<cryptauth::ExternalDeviceInfo> test_device_infos_; |
173 | 176 |
174 std::vector<cryptauth::RemoteDeviceList> device_list_list_; | 177 std::vector<cryptauth::RemoteDeviceList> device_list_list_; |
175 std::vector<std::shared_ptr<cryptauth::RemoteDevice>> single_device_list_; | 178 std::vector<std::shared_ptr<cryptauth::RemoteDevice>> single_device_list_; |
176 | 179 |
177 TestDelegate* test_delegate_; | 180 std::unique_ptr<FakeCryptAuthServiceWithTracking> fake_cryptauth_service_; |
178 std::unique_ptr<NiceMock<MockDeviceManager>> mock_device_manager_; | 181 std::unique_ptr<NiceMock<MockDeviceManager>> mock_device_manager_; |
179 std::unique_ptr<TestRemoteDeviceLoaderFactory> test_device_loader_factory_; | 182 std::unique_ptr<TestRemoteDeviceLoaderFactory> test_device_loader_factory_; |
180 | 183 |
181 std::unique_ptr<TetherHostFetcher> tether_host_fetcher_; | 184 std::unique_ptr<TetherHostFetcher> tether_host_fetcher_; |
182 | 185 |
183 private: | 186 private: |
184 DISALLOW_COPY_AND_ASSIGN(TetherHostFetcherTest); | 187 DISALLOW_COPY_AND_ASSIGN(TetherHostFetcherTest); |
185 }; | 188 }; |
186 | 189 |
187 TEST_F(TetherHostFetcherTest, TestFetchAllTetherHosts) { | 190 TEST_F(TetherHostFetcherTest, TestFetchAllTetherHosts) { |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
256 EXPECT_EQ(1u, device_list_list_.size()); | 259 EXPECT_EQ(1u, device_list_list_.size()); |
257 EXPECT_EQ(test_devices_, device_list_list_[0]); | 260 EXPECT_EQ(test_devices_, device_list_list_[0]); |
258 EXPECT_EQ(2u, single_device_list_.size()); | 261 EXPECT_EQ(2u, single_device_list_.size()); |
259 EXPECT_EQ(test_devices_[0], *single_device_list_[0]); | 262 EXPECT_EQ(test_devices_[0], *single_device_list_[0]); |
260 EXPECT_EQ(nullptr, single_device_list_[1]); | 263 EXPECT_EQ(nullptr, single_device_list_[1]); |
261 } | 264 } |
262 | 265 |
263 } // namespace tether | 266 } // namespace tether |
264 | 267 |
265 } // namespace cryptauth | 268 } // namespace cryptauth |
OLD | NEW |