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

Side by Side Diff: components/proximity_auth/ble/bluetooth_low_energy_connection_finder_unittest.cc

Issue 1912433002: Convert //components/proximity_auth from scoped_ptr to std::unique_ptr (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 8 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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "components/proximity_auth/ble/bluetooth_low_energy_connection_finder.h " 5 #include "components/proximity_auth/ble/bluetooth_low_energy_connection_finder.h "
6 6
7 #include <memory>
7 #include <string> 8 #include <string>
8 #include <utility> 9 #include <utility>
9 10
10 #include "base/bind.h" 11 #include "base/bind.h"
11 #include "base/macros.h" 12 #include "base/macros.h"
13 #include "base/memory/ptr_util.h"
12 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
13 #include "base/memory/scoped_ptr.h"
14 #include "base/message_loop/message_loop.h" 15 #include "base/message_loop/message_loop.h"
15 #include "base/run_loop.h" 16 #include "base/run_loop.h"
16 #include "base/strings/utf_string_conversions.h" 17 #include "base/strings/utf_string_conversions.h"
17 #include "base/time/time.h" 18 #include "base/time/time.h"
18 #include "components/proximity_auth/ble/bluetooth_low_energy_device_whitelist.h" 19 #include "components/proximity_auth/ble/bluetooth_low_energy_device_whitelist.h"
19 #include "components/proximity_auth/fake_connection.h" 20 #include "components/proximity_auth/fake_connection.h"
20 #include "components/proximity_auth/proximity_auth_test_util.h" 21 #include "components/proximity_auth/proximity_auth_test_util.h"
21 #include "components/proximity_auth/remote_device.h" 22 #include "components/proximity_auth/remote_device.h"
22 #include "components/proximity_auth/wire_message.h" 23 #include "components/proximity_auth/wire_message.h"
23 #include "device/bluetooth/bluetooth_adapter_factory.h" 24 #include "device/bluetooth/bluetooth_adapter_factory.h"
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 FinderStrategy finder_strategy) 63 FinderStrategy finder_strategy)
63 : BluetoothLowEnergyConnectionFinder(CreateLERemoteDeviceForTest(), 64 : BluetoothLowEnergyConnectionFinder(CreateLERemoteDeviceForTest(),
64 kServiceUUID, 65 kServiceUUID,
65 finder_strategy, 66 finder_strategy,
66 device_whitelist, 67 device_whitelist,
67 nullptr, 68 nullptr,
68 kMaxNumberOfAttempts) {} 69 kMaxNumberOfAttempts) {}
69 70
70 ~MockBluetoothLowEnergyConnectionFinder() override {} 71 ~MockBluetoothLowEnergyConnectionFinder() override {}
71 72
72 // Mock methods don't support return type scoped_ptr<>. This is a possible 73 // Mock methods don't support return type std::unique_ptr<>. This is a
74 // possible
73 // workaround: mock a proxy method to be called by the target overrided method 75 // workaround: mock a proxy method to be called by the target overrided method
74 // (CreateConnection). 76 // (CreateConnection).
Ilya Sherman 2016/04/20 22:08:56 Also, is this comment still true?
Ilya Sherman 2016/04/20 22:08:56 nit: Please rewrap
dcheng 2016/04/20 22:13:52 Done. (Also, yes, this comment is still true.)
75 MOCK_METHOD0(CreateConnectionProxy, Connection*()); 77 MOCK_METHOD0(CreateConnectionProxy, Connection*());
76 78
77 // Creates a mock connection and sets an expectation that the mock connection 79 // Creates a mock connection and sets an expectation that the mock connection
78 // finder's CreateConnection() method will be called and will return the 80 // finder's CreateConnection() method will be called and will return the
79 // created connection. Returns a reference to the created connection. 81 // created connection. Returns a reference to the created connection.
80 // NOTE: The returned connection's lifetime is managed by the connection 82 // NOTE: The returned connection's lifetime is managed by the connection
81 // finder. 83 // finder.
82 FakeConnection* ExpectCreateConnection() { 84 FakeConnection* ExpectCreateConnection() {
83 scoped_ptr<FakeConnection> connection( 85 std::unique_ptr<FakeConnection> connection(
84 new FakeConnection(CreateLERemoteDeviceForTest())); 86 new FakeConnection(CreateLERemoteDeviceForTest()));
85 FakeConnection* connection_alias = connection.get(); 87 FakeConnection* connection_alias = connection.get();
86 EXPECT_CALL(*this, CreateConnectionProxy()) 88 EXPECT_CALL(*this, CreateConnectionProxy())
87 .WillOnce(Return(connection.release())); 89 .WillOnce(Return(connection.release()));
88 return connection_alias; 90 return connection_alias;
89 } 91 }
90 92
91 MOCK_METHOD0(CloseGattConnectionProxy, void(void)); 93 MOCK_METHOD0(CloseGattConnectionProxy, void(void));
92 94
93 protected: 95 protected:
94 scoped_ptr<Connection> CreateConnection( 96 std::unique_ptr<Connection> CreateConnection(
95 const std::string& device_address) override { 97 const std::string& device_address) override {
96 return make_scoped_ptr(CreateConnectionProxy()); 98 return base::WrapUnique(CreateConnectionProxy());
97 } 99 }
98 100
99 private: 101 private:
100 DISALLOW_COPY_AND_ASSIGN(MockBluetoothLowEnergyConnectionFinder); 102 DISALLOW_COPY_AND_ASSIGN(MockBluetoothLowEnergyConnectionFinder);
101 }; 103 };
102 104
103 } // namespace 105 } // namespace
104 106
105 class ProximityAuthBluetoothLowEnergyConnectionFinderTest 107 class ProximityAuthBluetoothLowEnergyConnectionFinderTest
106 : public testing::Test { 108 : public testing::Test {
(...skipping 18 matching lines...) Expand all
125 std::vector<const device::BluetoothDevice*> devices; 127 std::vector<const device::BluetoothDevice*> devices;
126 ON_CALL(*adapter_, GetDevices()).WillByDefault(Return(devices)); 128 ON_CALL(*adapter_, GetDevices()).WillByDefault(Return(devices));
127 129
128 ON_CALL(*adapter_, IsPresent()).WillByDefault(Return(true)); 130 ON_CALL(*adapter_, IsPresent()).WillByDefault(Return(true));
129 ON_CALL(*adapter_, IsPowered()).WillByDefault(Return(true)); 131 ON_CALL(*adapter_, IsPowered()).WillByDefault(Return(true));
130 132
131 ON_CALL(*device_whitelist_, HasDeviceWithAddress(_)) 133 ON_CALL(*device_whitelist_, HasDeviceWithAddress(_))
132 .WillByDefault(Return(false)); 134 .WillByDefault(Return(false));
133 } 135 }
134 136
135 void OnConnectionFound(scoped_ptr<Connection> connection) { 137 void OnConnectionFound(std::unique_ptr<Connection> connection) {
136 last_found_connection_ = std::move(connection); 138 last_found_connection_ = std::move(connection);
137 } 139 }
138 140
139 void FindAndExpectStartDiscovery( 141 void FindAndExpectStartDiscovery(
140 BluetoothLowEnergyConnectionFinder& connection_finder) { 142 BluetoothLowEnergyConnectionFinder& connection_finder) {
141 device::BluetoothAdapter::DiscoverySessionCallback discovery_callback; 143 device::BluetoothAdapter::DiscoverySessionCallback discovery_callback;
142 scoped_ptr<device::MockBluetoothDiscoverySession> discovery_session( 144 std::unique_ptr<device::MockBluetoothDiscoverySession> discovery_session(
143 new NiceMock<device::MockBluetoothDiscoverySession>()); 145 new NiceMock<device::MockBluetoothDiscoverySession>());
144 last_discovery_session_alias_ = discovery_session.get(); 146 last_discovery_session_alias_ = discovery_session.get();
145 147
146 // Starting a discovery session. StartDiscoveryWithFilterRaw is a proxy for 148 // Starting a discovery session. StartDiscoveryWithFilterRaw is a proxy for
147 // StartDiscoveryWithFilter. 149 // StartDiscoveryWithFilter.
148 EXPECT_CALL(*adapter_, StartDiscoverySessionWithFilterRaw(_, _, _)) 150 EXPECT_CALL(*adapter_, StartDiscoverySessionWithFilterRaw(_, _, _))
149 .WillOnce(SaveArg<1>(&discovery_callback)); 151 .WillOnce(SaveArg<1>(&discovery_callback));
150 EXPECT_CALL(*adapter_, AddObserver(_)); 152 EXPECT_CALL(*adapter_, AddObserver(_));
151 ON_CALL(*last_discovery_session_alias_, IsActive()) 153 ON_CALL(*last_discovery_session_alias_, IsActive())
152 .WillByDefault(Return(true)); 154 .WillByDefault(Return(true));
(...skipping 12 matching lines...) Expand all
165 bool paired) { 167 bool paired) {
166 std::vector<device::BluetoothUUID> uuids; 168 std::vector<device::BluetoothUUID> uuids;
167 uuids.push_back(device::BluetoothUUID(uuid)); 169 uuids.push_back(device::BluetoothUUID(uuid));
168 ON_CALL(*device_, GetUUIDs()).WillByDefault(Return(uuids)); 170 ON_CALL(*device_, GetUUIDs()).WillByDefault(Return(uuids));
169 ON_CALL(*device_, GetAddress()).WillByDefault(Return(address)); 171 ON_CALL(*device_, GetAddress()).WillByDefault(Return(address));
170 ON_CALL(*device_, IsPaired()).WillByDefault(Return(paired)); 172 ON_CALL(*device_, IsPaired()).WillByDefault(Return(paired));
171 } 173 }
172 174
173 scoped_refptr<device::MockBluetoothAdapter> adapter_; 175 scoped_refptr<device::MockBluetoothAdapter> adapter_;
174 ConnectionFinder::ConnectionCallback connection_callback_; 176 ConnectionFinder::ConnectionCallback connection_callback_;
175 scoped_ptr<device::MockBluetoothDevice> device_; 177 std::unique_ptr<device::MockBluetoothDevice> device_;
176 scoped_ptr<Connection> last_found_connection_; 178 std::unique_ptr<Connection> last_found_connection_;
177 scoped_ptr<MockBluetoothLowEnergyDeviceWhitelist> device_whitelist_; 179 std::unique_ptr<MockBluetoothLowEnergyDeviceWhitelist> device_whitelist_;
178 device::MockBluetoothDiscoverySession* last_discovery_session_alias_; 180 device::MockBluetoothDiscoverySession* last_discovery_session_alias_;
179 181
180 private: 182 private:
181 base::MessageLoop message_loop_; 183 base::MessageLoop message_loop_;
182 }; 184 };
183 185
184 TEST_F(ProximityAuthBluetoothLowEnergyConnectionFinderTest, 186 TEST_F(ProximityAuthBluetoothLowEnergyConnectionFinderTest,
185 ConstructAndDestroyDoesntCrash) { 187 ConstructAndDestroyDoesntCrash) {
186 // Destroying a BluetoothConnectionFinder for which Find() has not been called 188 // Destroying a BluetoothConnectionFinder for which Find() has not been called
187 // should not crash. 189 // should not crash.
(...skipping 16 matching lines...) Expand all
204 } 206 }
205 207
206 TEST_F(ProximityAuthBluetoothLowEnergyConnectionFinderTest, 208 TEST_F(ProximityAuthBluetoothLowEnergyConnectionFinderTest,
207 Find_StopsDiscoverySessionBeforeDestroying) { 209 Find_StopsDiscoverySessionBeforeDestroying) {
208 BluetoothLowEnergyConnectionFinder connection_finder( 210 BluetoothLowEnergyConnectionFinder connection_finder(
209 CreateLERemoteDeviceForTest(), kServiceUUID, 211 CreateLERemoteDeviceForTest(), kServiceUUID,
210 BluetoothLowEnergyConnectionFinder::FIND_PAIRED_DEVICE, 212 BluetoothLowEnergyConnectionFinder::FIND_PAIRED_DEVICE,
211 device_whitelist_.get(), nullptr, kMaxNumberOfAttempts); 213 device_whitelist_.get(), nullptr, kMaxNumberOfAttempts);
212 214
213 device::BluetoothAdapter::DiscoverySessionCallback discovery_callback; 215 device::BluetoothAdapter::DiscoverySessionCallback discovery_callback;
214 scoped_ptr<device::MockBluetoothDiscoverySession> discovery_session( 216 std::unique_ptr<device::MockBluetoothDiscoverySession> discovery_session(
215 new NiceMock<device::MockBluetoothDiscoverySession>()); 217 new NiceMock<device::MockBluetoothDiscoverySession>());
216 device::MockBluetoothDiscoverySession* discovery_session_alias = 218 device::MockBluetoothDiscoverySession* discovery_session_alias =
217 discovery_session.get(); 219 discovery_session.get();
218 220
219 EXPECT_CALL(*adapter_, StartDiscoverySessionWithFilterRaw(_, _, _)) 221 EXPECT_CALL(*adapter_, StartDiscoverySessionWithFilterRaw(_, _, _))
220 .WillOnce(SaveArg<1>(&discovery_callback)); 222 .WillOnce(SaveArg<1>(&discovery_callback));
221 ON_CALL(*discovery_session_alias, IsActive()).WillByDefault(Return(true)); 223 ON_CALL(*discovery_session_alias, IsActive()).WillByDefault(Return(true));
222 EXPECT_CALL(*adapter_, AddObserver(_)); 224 EXPECT_CALL(*adapter_, AddObserver(_));
223 connection_finder.Find(connection_callback_); 225 connection_finder.Find(connection_callback_);
224 226
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
406 .WillOnce(SaveArg<1>(&discovery_callback)); 408 .WillOnce(SaveArg<1>(&discovery_callback));
407 409
408 // Connection fails. 410 // Connection fails.
409 { 411 {
410 base::RunLoop run_loop; 412 base::RunLoop run_loop;
411 connection->SetStatus(Connection::DISCONNECTED); 413 connection->SetStatus(Connection::DISCONNECTED);
412 run_loop.RunUntilIdle(); 414 run_loop.RunUntilIdle();
413 } 415 }
414 416
415 // Restarting the discovery session. 417 // Restarting the discovery session.
416 scoped_ptr<device::MockBluetoothDiscoverySession> discovery_session( 418 std::unique_ptr<device::MockBluetoothDiscoverySession> discovery_session(
417 new NiceMock<device::MockBluetoothDiscoverySession>()); 419 new NiceMock<device::MockBluetoothDiscoverySession>());
418 last_discovery_session_alias_ = discovery_session.get(); 420 last_discovery_session_alias_ = discovery_session.get();
419 ON_CALL(*last_discovery_session_alias_, IsActive()) 421 ON_CALL(*last_discovery_session_alias_, IsActive())
420 .WillByDefault(Return(true)); 422 .WillByDefault(Return(true));
421 ASSERT_FALSE(discovery_callback.is_null()); 423 ASSERT_FALSE(discovery_callback.is_null());
422 discovery_callback.Run(std::move(discovery_session)); 424 discovery_callback.Run(std::move(discovery_session));
423 425
424 // Preparing to create a GATT connection to the right device. 426 // Preparing to create a GATT connection to the right device.
425 PrepareDevice(kServiceUUID, kTestRemoteDeviceBluetoothAddress, true); 427 PrepareDevice(kServiceUUID, kTestRemoteDeviceBluetoothAddress, true);
426 connection = connection_finder.ExpectCreateConnection(); 428 connection = connection_finder.ExpectCreateConnection();
(...skipping 26 matching lines...) Expand all
453 ON_CALL(*last_discovery_session_alias_, IsActive()) 455 ON_CALL(*last_discovery_session_alias_, IsActive())
454 .WillByDefault(Return(false)); 456 .WillByDefault(Return(false));
455 connection_finder.AdapterPoweredChanged(adapter_.get(), false); 457 connection_finder.AdapterPoweredChanged(adapter_.get(), false);
456 connection_finder.AdapterPresentChanged(adapter_.get(), false); 458 connection_finder.AdapterPresentChanged(adapter_.get(), false);
457 459
458 // Adding the adapter. 460 // Adding the adapter.
459 ON_CALL(*adapter_, IsPresent()).WillByDefault(Return(true)); 461 ON_CALL(*adapter_, IsPresent()).WillByDefault(Return(true));
460 ON_CALL(*adapter_, IsPowered()).WillByDefault(Return(true)); 462 ON_CALL(*adapter_, IsPowered()).WillByDefault(Return(true));
461 463
462 device::BluetoothAdapter::DiscoverySessionCallback discovery_callback; 464 device::BluetoothAdapter::DiscoverySessionCallback discovery_callback;
463 scoped_ptr<device::MockBluetoothDiscoverySession> discovery_session( 465 std::unique_ptr<device::MockBluetoothDiscoverySession> discovery_session(
464 new NiceMock<device::MockBluetoothDiscoverySession>()); 466 new NiceMock<device::MockBluetoothDiscoverySession>());
465 last_discovery_session_alias_ = discovery_session.get(); 467 last_discovery_session_alias_ = discovery_session.get();
466 468
467 // Restarting the discovery session. 469 // Restarting the discovery session.
468 EXPECT_CALL(*adapter_, StartDiscoverySessionWithFilterRaw(_, _, _)) 470 EXPECT_CALL(*adapter_, StartDiscoverySessionWithFilterRaw(_, _, _))
469 .WillOnce(SaveArg<1>(&discovery_callback)); 471 .WillOnce(SaveArg<1>(&discovery_callback));
470 connection_finder.AdapterPresentChanged(adapter_.get(), true); 472 connection_finder.AdapterPresentChanged(adapter_.get(), true);
471 connection_finder.AdapterPoweredChanged(adapter_.get(), true); 473 connection_finder.AdapterPoweredChanged(adapter_.get(), true);
472 ON_CALL(*last_discovery_session_alias_, IsActive()) 474 ON_CALL(*last_discovery_session_alias_, IsActive())
473 .WillByDefault(Return(true)); 475 .WillByDefault(Return(true));
(...skipping 11 matching lines...) Expand all
485 // Completing the connection. 487 // Completing the connection.
486 base::RunLoop run_loop; 488 base::RunLoop run_loop;
487 ASSERT_FALSE(last_found_connection_); 489 ASSERT_FALSE(last_found_connection_);
488 connection->SetStatus(Connection::IN_PROGRESS); 490 connection->SetStatus(Connection::IN_PROGRESS);
489 connection->SetStatus(Connection::CONNECTED); 491 connection->SetStatus(Connection::CONNECTED);
490 run_loop.RunUntilIdle(); 492 run_loop.RunUntilIdle();
491 EXPECT_TRUE(last_found_connection_); 493 EXPECT_TRUE(last_found_connection_);
492 } 494 }
493 495
494 } // namespace proximity_auth 496 } // namespace proximity_auth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698