Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(119)

Side by Side Diff: chromeos/components/tether/host_scanner_unittest.cc

Issue 2844973002: [CrOS Tether] Create TetherHostResponseRecorder, which records ConnectTetheringResponses and Tether… (Closed)
Patch Set: Changed "Connectable" wording to "Connected". Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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/host_scanner.h" 5 #include "chromeos/components/tether/host_scanner.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/memory/ptr_util.h" 11 #include "base/memory/ptr_util.h"
12 #include "base/run_loop.h" 12 #include "base/run_loop.h"
13 #include "base/test/scoped_task_environment.h" 13 #include "base/test/scoped_task_environment.h"
14 #include "chromeos/components/tether/device_id_tether_network_guid_map.h" 14 #include "chromeos/components/tether/device_id_tether_network_guid_map.h"
15 #include "chromeos/components/tether/fake_ble_connection_manager.h" 15 #include "chromeos/components/tether/fake_ble_connection_manager.h"
16 #include "chromeos/components/tether/fake_notification_presenter.h" 16 #include "chromeos/components/tether/fake_notification_presenter.h"
17 #include "chromeos/components/tether/fake_tether_host_fetcher.h" 17 #include "chromeos/components/tether/fake_tether_host_fetcher.h"
18 #include "chromeos/components/tether/host_scan_device_prioritizer.h" 18 #include "chromeos/components/tether/host_scan_device_prioritizer.h"
19 #include "chromeos/components/tether/host_scanner.h" 19 #include "chromeos/components/tether/host_scanner.h"
20 #include "chromeos/components/tether/mock_tether_host_response_recorder.h"
20 #include "chromeos/dbus/dbus_thread_manager.h" 21 #include "chromeos/dbus/dbus_thread_manager.h"
21 #include "chromeos/network/network_state.h" 22 #include "chromeos/network/network_state.h"
22 #include "chromeos/network/network_state_handler.h" 23 #include "chromeos/network/network_state_handler.h"
23 #include "chromeos/network/network_state_test.h" 24 #include "chromeos/network/network_state_test.h"
24 #include "chromeos/network/network_type_pattern.h" 25 #include "chromeos/network/network_type_pattern.h"
25 #include "components/cryptauth/remote_device_test_util.h" 26 #include "components/cryptauth/remote_device_test_util.h"
26 #include "testing/gtest/include/gtest/gtest.h" 27 #include "testing/gtest/include/gtest/gtest.h"
27 28
28 namespace chromeos { 29 namespace chromeos {
29 30
30 namespace tether { 31 namespace tether {
31 32
32 namespace { 33 namespace {
33 34
34 class FakeHostScanDevicePrioritizer : public HostScanDevicePrioritizer { 35 class FakeHostScanDevicePrioritizer : public HostScanDevicePrioritizer {
35 public: 36 public:
36 FakeHostScanDevicePrioritizer() : HostScanDevicePrioritizer(nullptr) {} 37 FakeHostScanDevicePrioritizer() : HostScanDevicePrioritizer(nullptr) {}
37 ~FakeHostScanDevicePrioritizer() override {} 38 ~FakeHostScanDevicePrioritizer() override {}
38 39
39 // Simply leave |remote_devices| as-is. 40 // Simply leave |remote_devices| as-is.
40 void SortByHostScanOrder( 41 void SortByHostScanOrder(
41 std::vector<cryptauth::RemoteDevice>* remote_devices) const override {} 42 std::vector<cryptauth::RemoteDevice>* remote_devices) const override {}
42 }; 43 };
43 44
44 class FakeHostScannerOperation : public HostScannerOperation { 45 class FakeHostScannerOperation : public HostScannerOperation {
45 public: 46 public:
46 FakeHostScannerOperation( 47 FakeHostScannerOperation(
47 const std::vector<cryptauth::RemoteDevice>& devices_to_connect, 48 const std::vector<cryptauth::RemoteDevice>& devices_to_connect,
48 BleConnectionManager* connection_manager, 49 BleConnectionManager* connection_manager,
49 HostScanDevicePrioritizer* host_scan_device_prioritizer) 50 HostScanDevicePrioritizer* host_scan_device_prioritizer,
51 TetherHostResponseRecorder* tether_host_response_recorder)
50 : HostScannerOperation(devices_to_connect, 52 : HostScannerOperation(devices_to_connect,
51 connection_manager, 53 connection_manager,
52 host_scan_device_prioritizer) {} 54 host_scan_device_prioritizer,
55 tether_host_response_recorder) {}
53 56
54 ~FakeHostScannerOperation() override {} 57 ~FakeHostScannerOperation() override {}
55 58
56 void SendScannedDeviceListUpdate( 59 void SendScannedDeviceListUpdate(
57 const std::vector<HostScannerOperation::ScannedDeviceInfo>& 60 const std::vector<HostScannerOperation::ScannedDeviceInfo>&
58 scanned_device_list_so_far, 61 scanned_device_list_so_far,
59 bool is_final_scan_result) { 62 bool is_final_scan_result) {
60 scanned_device_list_so_far_ = scanned_device_list_so_far; 63 scanned_device_list_so_far_ = scanned_device_list_so_far;
61 NotifyObserversOfScannedDeviceList(is_final_scan_result); 64 NotifyObserversOfScannedDeviceList(is_final_scan_result);
62 } 65 }
63 }; 66 };
64 67
65 class FakeHostScannerOperationFactory : public HostScannerOperation::Factory { 68 class FakeHostScannerOperationFactory : public HostScannerOperation::Factory {
66 public: 69 public:
67 FakeHostScannerOperationFactory( 70 FakeHostScannerOperationFactory(
68 const std::vector<cryptauth::RemoteDevice>& test_devices) 71 const std::vector<cryptauth::RemoteDevice>& test_devices)
69 : expected_devices_(test_devices) {} 72 : expected_devices_(test_devices) {}
70 virtual ~FakeHostScannerOperationFactory() {} 73 virtual ~FakeHostScannerOperationFactory() {}
71 74
72 std::vector<FakeHostScannerOperation*>& created_operations() { 75 std::vector<FakeHostScannerOperation*>& created_operations() {
73 return created_operations_; 76 return created_operations_;
74 } 77 }
75 78
76 protected: 79 protected:
77 // HostScannerOperation::Factory: 80 // HostScannerOperation::Factory:
78 std::unique_ptr<HostScannerOperation> BuildInstance( 81 std::unique_ptr<HostScannerOperation> BuildInstance(
79 const std::vector<cryptauth::RemoteDevice>& devices_to_connect, 82 const std::vector<cryptauth::RemoteDevice>& devices_to_connect,
80 BleConnectionManager* connection_manager, 83 BleConnectionManager* connection_manager,
81 HostScanDevicePrioritizer* host_scan_device_prioritizer) override { 84 HostScanDevicePrioritizer* host_scan_device_prioritizer,
85 TetherHostResponseRecorder* tether_host_response_recorder) override {
82 EXPECT_EQ(expected_devices_, devices_to_connect); 86 EXPECT_EQ(expected_devices_, devices_to_connect);
83 FakeHostScannerOperation* operation = new FakeHostScannerOperation( 87 FakeHostScannerOperation* operation = new FakeHostScannerOperation(
84 devices_to_connect, connection_manager, host_scan_device_prioritizer); 88 devices_to_connect, connection_manager, host_scan_device_prioritizer,
89 tether_host_response_recorder);
85 created_operations_.push_back(operation); 90 created_operations_.push_back(operation);
86 return base::WrapUnique(operation); 91 return base::WrapUnique(operation);
87 } 92 }
88 93
89 private: 94 private:
90 const std::vector<cryptauth::RemoteDevice>& expected_devices_; 95 const std::vector<cryptauth::RemoteDevice>& expected_devices_;
91 std::vector<FakeHostScannerOperation*> created_operations_; 96 std::vector<FakeHostScannerOperation*> created_operations_;
92 }; 97 };
93 98
94 std::string GenerateCellProviderForDevice( 99 std::string GenerateCellProviderForDevice(
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
142 network_state_handler()->SetTetherTechnologyState( 147 network_state_handler()->SetTetherTechnologyState(
143 NetworkStateHandler::TECHNOLOGY_ENABLED); 148 NetworkStateHandler::TECHNOLOGY_ENABLED);
144 149
145 scanned_device_infos_so_far_.clear(); 150 scanned_device_infos_so_far_.clear();
146 151
147 fake_tether_host_fetcher_ = base::MakeUnique<FakeTetherHostFetcher>( 152 fake_tether_host_fetcher_ = base::MakeUnique<FakeTetherHostFetcher>(
148 test_devices_, false /* synchronously_reply_with_results */); 153 test_devices_, false /* synchronously_reply_with_results */);
149 fake_ble_connection_manager_ = base::MakeUnique<FakeBleConnectionManager>(); 154 fake_ble_connection_manager_ = base::MakeUnique<FakeBleConnectionManager>();
150 fake_host_scan_device_prioritizer_ = 155 fake_host_scan_device_prioritizer_ =
151 base::MakeUnique<FakeHostScanDevicePrioritizer>(); 156 base::MakeUnique<FakeHostScanDevicePrioritizer>();
157 mock_tether_host_response_recorder_ =
158 base::MakeUnique<MockTetherHostResponseRecorder>();
152 fake_notification_presenter_ = 159 fake_notification_presenter_ =
153 base::MakeUnique<FakeNotificationPresenter>(); 160 base::MakeUnique<FakeNotificationPresenter>();
154 device_id_tether_network_guid_map_ = 161 device_id_tether_network_guid_map_ =
155 base::MakeUnique<DeviceIdTetherNetworkGuidMap>(); 162 base::MakeUnique<DeviceIdTetherNetworkGuidMap>();
156 163
157 fake_host_scanner_operation_factory_ = 164 fake_host_scanner_operation_factory_ =
158 base::WrapUnique(new FakeHostScannerOperationFactory(test_devices_)); 165 base::WrapUnique(new FakeHostScannerOperationFactory(test_devices_));
159 HostScannerOperation::Factory::SetInstanceForTesting( 166 HostScannerOperation::Factory::SetInstanceForTesting(
160 fake_host_scanner_operation_factory_.get()); 167 fake_host_scanner_operation_factory_.get());
161 168
162 host_scanner_ = base::WrapUnique(new HostScanner( 169 host_scanner_ = base::WrapUnique(new HostScanner(
163 fake_tether_host_fetcher_.get(), fake_ble_connection_manager_.get(), 170 fake_tether_host_fetcher_.get(), fake_ble_connection_manager_.get(),
164 fake_host_scan_device_prioritizer_.get(), network_state_handler(), 171 fake_host_scan_device_prioritizer_.get(),
172 mock_tether_host_response_recorder_.get(), network_state_handler(),
165 fake_notification_presenter_.get(), 173 fake_notification_presenter_.get(),
166 device_id_tether_network_guid_map_.get())); 174 device_id_tether_network_guid_map_.get()));
167 } 175 }
168 176
169 void TearDown() override { 177 void TearDown() override {
170 ShutdownNetworkState(); 178 ShutdownNetworkState();
171 NetworkStateTest::TearDown(); 179 NetworkStateTest::TearDown();
172 DBusThreadManager::Shutdown(); 180 DBusThreadManager::Shutdown();
173 181
174 HostScannerOperation::Factory::SetInstanceForTesting(nullptr); 182 HostScannerOperation::Factory::SetInstanceForTesting(nullptr);
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 222
215 base::test::ScopedTaskEnvironment scoped_task_environment_; 223 base::test::ScopedTaskEnvironment scoped_task_environment_;
216 224
217 const std::vector<cryptauth::RemoteDevice> test_devices_; 225 const std::vector<cryptauth::RemoteDevice> test_devices_;
218 const std::vector<HostScannerOperation::ScannedDeviceInfo> 226 const std::vector<HostScannerOperation::ScannedDeviceInfo>
219 test_scanned_device_infos; 227 test_scanned_device_infos;
220 228
221 std::unique_ptr<FakeTetherHostFetcher> fake_tether_host_fetcher_; 229 std::unique_ptr<FakeTetherHostFetcher> fake_tether_host_fetcher_;
222 std::unique_ptr<FakeBleConnectionManager> fake_ble_connection_manager_; 230 std::unique_ptr<FakeBleConnectionManager> fake_ble_connection_manager_;
223 std::unique_ptr<HostScanDevicePrioritizer> fake_host_scan_device_prioritizer_; 231 std::unique_ptr<HostScanDevicePrioritizer> fake_host_scan_device_prioritizer_;
232 std::unique_ptr<MockTetherHostResponseRecorder>
233 mock_tether_host_response_recorder_;
224 std::unique_ptr<FakeNotificationPresenter> fake_notification_presenter_; 234 std::unique_ptr<FakeNotificationPresenter> fake_notification_presenter_;
225 // TODO(hansberry): Use a fake for this when a real mapping scheme is created. 235 // TODO(hansberry): Use a fake for this when a real mapping scheme is created.
226 std::unique_ptr<DeviceIdTetherNetworkGuidMap> 236 std::unique_ptr<DeviceIdTetherNetworkGuidMap>
227 device_id_tether_network_guid_map_; 237 device_id_tether_network_guid_map_;
228 238
229 std::unique_ptr<FakeHostScannerOperationFactory> 239 std::unique_ptr<FakeHostScannerOperationFactory>
230 fake_host_scanner_operation_factory_; 240 fake_host_scanner_operation_factory_;
231 241
232 std::vector<HostScannerOperation::ScannedDeviceInfo> 242 std::vector<HostScannerOperation::ScannedDeviceInfo>
233 scanned_device_infos_so_far_; 243 scanned_device_infos_so_far_;
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
360 ->SendScannedDeviceListUpdate(scanned_device_infos_so_far_, 370 ->SendScannedDeviceListUpdate(scanned_device_infos_so_far_,
361 true /* is_final_scan_result */); 371 true /* is_final_scan_result */);
362 EXPECT_EQ(scanned_device_infos_so_far_, 372 EXPECT_EQ(scanned_device_infos_so_far_,
363 host_scanner_->most_recent_scan_results()); 373 host_scanner_->most_recent_scan_results());
364 EXPECT_FALSE(host_scanner_->IsScanActive()); 374 EXPECT_FALSE(host_scanner_->IsScanActive());
365 } 375 }
366 376
367 } // namespace tether 377 } // namespace tether
368 378
369 } // namespace chromeos 379 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/components/tether/host_scanner_operation_unittest.cc ('k') | chromeos/components/tether/initializer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698