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

Side by Side Diff: components/proximity_auth/bluetooth_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: nits 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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/bluetooth_connection_finder.h" 5 #include "components/proximity_auth/bluetooth_connection_finder.h"
6 6
7 #include <memory>
7 #include <utility> 8 #include <utility>
8 9
9 #include "base/bind.h" 10 #include "base/bind.h"
10 #include "base/macros.h" 11 #include "base/macros.h"
12 #include "base/memory/ptr_util.h"
11 #include "base/memory/ref_counted.h" 13 #include "base/memory/ref_counted.h"
12 #include "base/memory/scoped_ptr.h"
13 #include "base/message_loop/message_loop.h" 14 #include "base/message_loop/message_loop.h"
14 #include "base/run_loop.h" 15 #include "base/run_loop.h"
15 #include "base/time/time.h" 16 #include "base/time/time.h"
16 #include "components/proximity_auth/proximity_auth_test_util.h" 17 #include "components/proximity_auth/proximity_auth_test_util.h"
17 #include "components/proximity_auth/remote_device.h" 18 #include "components/proximity_auth/remote_device.h"
18 #include "components/proximity_auth/wire_message.h" 19 #include "components/proximity_auth/wire_message.h"
19 #include "device/bluetooth/bluetooth_adapter_factory.h" 20 #include "device/bluetooth/bluetooth_adapter_factory.h"
20 #include "device/bluetooth/bluetooth_uuid.h" 21 #include "device/bluetooth/bluetooth_uuid.h"
21 #include "device/bluetooth/test/mock_bluetooth_adapter.h" 22 #include "device/bluetooth/test/mock_bluetooth_adapter.h"
22 #include "device/bluetooth/test/mock_bluetooth_device.h" 23 #include "device/bluetooth/test/mock_bluetooth_device.h"
(...skipping 22 matching lines...) Expand all
45 void SetStatus(Connection::Status status) { 46 void SetStatus(Connection::Status status) {
46 // This object should not be destroyed after setting the status and calling 47 // This object should not be destroyed after setting the status and calling
47 // observers. 48 // observers.
48 do_not_destroy_ = true; 49 do_not_destroy_ = true;
49 Connection::SetStatus(status); 50 Connection::SetStatus(status);
50 do_not_destroy_ = false; 51 do_not_destroy_ = false;
51 } 52 }
52 53
53 private: 54 private:
54 void Disconnect() override {} 55 void Disconnect() override {}
55 void SendMessageImpl(scoped_ptr<WireMessage> message) override {} 56 void SendMessageImpl(std::unique_ptr<WireMessage> message) override {}
56 57
57 // If true, we do not expect |this| object to be destroyed until this value is 58 // If true, we do not expect |this| object to be destroyed until this value is
58 // toggled back to false. 59 // toggled back to false.
59 bool do_not_destroy_; 60 bool do_not_destroy_;
60 61
61 DISALLOW_COPY_AND_ASSIGN(MockConnection); 62 DISALLOW_COPY_AND_ASSIGN(MockConnection);
62 }; 63 };
63 64
64 class MockBluetoothConnectionFinder : public BluetoothConnectionFinder { 65 class MockBluetoothConnectionFinder : public BluetoothConnectionFinder {
65 public: 66 public:
66 MockBluetoothConnectionFinder() 67 MockBluetoothConnectionFinder()
67 : BluetoothConnectionFinder(CreateClassicRemoteDeviceForTest(), 68 : BluetoothConnectionFinder(CreateClassicRemoteDeviceForTest(),
68 device::BluetoothUUID(kUuid), 69 device::BluetoothUUID(kUuid),
69 base::TimeDelta()) {} 70 base::TimeDelta()) {}
70 ~MockBluetoothConnectionFinder() override {} 71 ~MockBluetoothConnectionFinder() override {}
71 72
72 MOCK_METHOD0(CreateConnectionProxy, Connection*()); 73 MOCK_METHOD0(CreateConnectionProxy, Connection*());
73 74
74 // Creates a mock connection and sets an expectation that the mock connection 75 // Creates a mock connection and sets an expectation that the mock connection
75 // finder's CreateConnection() method will be called and will return the 76 // finder's CreateConnection() method will be called and will return the
76 // created connection. Returns a reference to the created connection. 77 // created connection. Returns a reference to the created connection.
77 // NOTE: The returned connection's lifetime is managed by the connection 78 // NOTE: The returned connection's lifetime is managed by the connection
78 // finder. 79 // finder.
79 MockConnection* ExpectCreateConnection() { 80 MockConnection* ExpectCreateConnection() {
80 scoped_ptr<MockConnection> connection(new NiceMock<MockConnection>()); 81 std::unique_ptr<MockConnection> connection(new NiceMock<MockConnection>());
81 MockConnection* connection_alias = connection.get(); 82 MockConnection* connection_alias = connection.get();
82 EXPECT_CALL(*this, CreateConnectionProxy()) 83 EXPECT_CALL(*this, CreateConnectionProxy())
83 .WillOnce(Return(connection.release())); 84 .WillOnce(Return(connection.release()));
84 return connection_alias; 85 return connection_alias;
85 } 86 }
86 87
87 using BluetoothConnectionFinder::AdapterPresentChanged; 88 using BluetoothConnectionFinder::AdapterPresentChanged;
88 using BluetoothConnectionFinder::AdapterPoweredChanged; 89 using BluetoothConnectionFinder::AdapterPoweredChanged;
89 90
90 void ClearSeekCallbacks() { 91 void ClearSeekCallbacks() {
91 seek_callback_ = base::Closure(); 92 seek_callback_ = base::Closure();
92 seek_error_callback_ = bluetooth_util::ErrorCallback(); 93 seek_error_callback_ = bluetooth_util::ErrorCallback();
93 } 94 }
94 95
95 const base::Closure& seek_callback() { return seek_callback_; } 96 const base::Closure& seek_callback() { return seek_callback_; }
96 const bluetooth_util::ErrorCallback& seek_error_callback() { 97 const bluetooth_util::ErrorCallback& seek_error_callback() {
97 return seek_error_callback_; 98 return seek_error_callback_;
98 } 99 }
99 100
100 protected: 101 protected:
101 // BluetoothConnectionFinder: 102 // BluetoothConnectionFinder:
102 scoped_ptr<Connection> CreateConnection() override { 103 std::unique_ptr<Connection> CreateConnection() override {
103 return make_scoped_ptr(CreateConnectionProxy()); 104 return base::WrapUnique(CreateConnectionProxy());
104 } 105 }
105 106
106 void SeekDeviceByAddress( 107 void SeekDeviceByAddress(
107 const std::string& bluetooth_address, 108 const std::string& bluetooth_address,
108 const base::Closure& callback, 109 const base::Closure& callback,
109 const bluetooth_util::ErrorCallback& error_callback) override { 110 const bluetooth_util::ErrorCallback& error_callback) override {
110 EXPECT_EQ(kTestRemoteDeviceBluetoothAddress, bluetooth_address); 111 EXPECT_EQ(kTestRemoteDeviceBluetoothAddress, bluetooth_address);
111 seek_callback_ = callback; 112 seek_callback_ = callback;
112 seek_error_callback_ = error_callback; 113 seek_error_callback_ = error_callback;
113 } 114 }
(...skipping 28 matching lines...) Expand all
142 ON_CALL(*adapter_, IsPresent()).WillByDefault(Return(true)); 143 ON_CALL(*adapter_, IsPresent()).WillByDefault(Return(true));
143 ON_CALL(*adapter_, IsPowered()).WillByDefault(Return(true)); 144 ON_CALL(*adapter_, IsPowered()).WillByDefault(Return(true));
144 145
145 // By default, the remote device is known to |adapter_| so 146 // By default, the remote device is known to |adapter_| so
146 // |SeekDeviceByAddress()| will not be called. 147 // |SeekDeviceByAddress()| will not be called.
147 ON_CALL(*adapter_, GetDevice(kTestRemoteDeviceBluetoothAddress)) 148 ON_CALL(*adapter_, GetDevice(kTestRemoteDeviceBluetoothAddress))
148 .WillByDefault(Return(bluetooth_device_.get())); 149 .WillByDefault(Return(bluetooth_device_.get()));
149 } 150 }
150 151
151 MOCK_METHOD1(OnConnectionFoundProxy, void(Connection* connection)); 152 MOCK_METHOD1(OnConnectionFoundProxy, void(Connection* connection));
152 void OnConnectionFound(scoped_ptr<Connection> connection) { 153 void OnConnectionFound(std::unique_ptr<Connection> connection) {
153 OnConnectionFoundProxy(connection.get()); 154 OnConnectionFoundProxy(connection.get());
154 last_found_connection_ = std::move(connection); 155 last_found_connection_ = std::move(connection);
155 } 156 }
156 157
157 // Starts |connection_finder_|. If |expect_connection| is true, then we set an 158 // Starts |connection_finder_|. If |expect_connection| is true, then we set an
158 // expectation that an in-progress connection will be created and returned. 159 // expectation that an in-progress connection will be created and returned.
159 MockConnection* StartConnectionFinder(bool expect_connection) { 160 MockConnection* StartConnectionFinder(bool expect_connection) {
160 MockConnection* connection = nullptr; 161 MockConnection* connection = nullptr;
161 if (expect_connection) 162 if (expect_connection)
162 connection = connection_finder_.ExpectCreateConnection(); 163 connection = connection_finder_.ExpectCreateConnection();
163 connection_finder_.Find(connection_callback_); 164 connection_finder_.Find(connection_callback_);
164 return connection; 165 return connection;
165 } 166 }
166 167
167 // Given an in-progress |connection| returned by |StartConnectionFinder()|, 168 // Given an in-progress |connection| returned by |StartConnectionFinder()|,
168 // simulate it transitioning to the CONNECTED state. 169 // simulate it transitioning to the CONNECTED state.
169 void SimulateDeviceConnection(MockConnection* connection) { 170 void SimulateDeviceConnection(MockConnection* connection) {
170 connection->SetStatus(Connection::IN_PROGRESS); 171 connection->SetStatus(Connection::IN_PROGRESS);
171 base::RunLoop run_loop; 172 base::RunLoop run_loop;
172 EXPECT_CALL(*this, OnConnectionFoundProxy(_)); 173 EXPECT_CALL(*this, OnConnectionFoundProxy(_));
173 connection->SetStatus(Connection::CONNECTED); 174 connection->SetStatus(Connection::CONNECTED);
174 run_loop.RunUntilIdle(); 175 run_loop.RunUntilIdle();
175 } 176 }
176 177
177 scoped_refptr<device::MockBluetoothAdapter> adapter_; 178 scoped_refptr<device::MockBluetoothAdapter> adapter_;
178 StrictMock<MockBluetoothConnectionFinder> connection_finder_; 179 StrictMock<MockBluetoothConnectionFinder> connection_finder_;
179 scoped_ptr<device::MockBluetoothDevice> bluetooth_device_; 180 std::unique_ptr<device::MockBluetoothDevice> bluetooth_device_;
180 ConnectionFinder::ConnectionCallback connection_callback_; 181 ConnectionFinder::ConnectionCallback connection_callback_;
181 182
182 private: 183 private:
183 // Save a pointer to the last found connection, to extend its lifetime. 184 // Save a pointer to the last found connection, to extend its lifetime.
184 scoped_ptr<Connection> last_found_connection_; 185 std::unique_ptr<Connection> last_found_connection_;
185 186
186 base::MessageLoop message_loop_; 187 base::MessageLoop message_loop_;
187 }; 188 };
188 189
189 TEST_F(ProximityAuthBluetoothConnectionFinderTest, 190 TEST_F(ProximityAuthBluetoothConnectionFinderTest,
190 ConstructAndDestroyDoesntCrash) { 191 ConstructAndDestroyDoesntCrash) {
191 // Destroying a BluetoothConnectionFinder for which Find() has not been called 192 // Destroying a BluetoothConnectionFinder for which Find() has not been called
192 // should not crash. 193 // should not crash.
193 BluetoothConnectionFinder connection_finder( 194 BluetoothConnectionFinder connection_finder(
194 CreateClassicRemoteDeviceForTest(), device::BluetoothUUID(kUuid), 195 CreateClassicRemoteDeviceForTest(), device::BluetoothUUID(kUuid),
(...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after
357 358
358 // Successfully connect to the Bluetooth device. 359 // Successfully connect to the Bluetooth device.
359 ON_CALL(*adapter_, GetDevice(kTestRemoteDeviceBluetoothAddress)) 360 ON_CALL(*adapter_, GetDevice(kTestRemoteDeviceBluetoothAddress))
360 .WillByDefault(Return(bluetooth_device_.get())); 361 .WillByDefault(Return(bluetooth_device_.get()));
361 MockConnection* connection = connection_finder_.ExpectCreateConnection(); 362 MockConnection* connection = connection_finder_.ExpectCreateConnection();
362 connection_finder_.seek_callback().Run(); 363 connection_finder_.seek_callback().Run();
363 SimulateDeviceConnection(connection); 364 SimulateDeviceConnection(connection);
364 } 365 }
365 366
366 } // namespace proximity_auth 367 } // namespace proximity_auth
OLDNEW
« no previous file with comments | « components/proximity_auth/bluetooth_connection_finder.cc ('k') | components/proximity_auth/bluetooth_connection_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698