| OLD | NEW |
| 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 <memory> | 5 #include <memory> |
| 6 #include <utility> | 6 #include <utility> |
| 7 | 7 |
| 8 #include "base/command_line.h" | 8 #include "base/command_line.h" |
| 9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
| 10 #include "build/build_config.h" | 10 #include "build/build_config.h" |
| (...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 60 | 60 |
| 61 ~BluetoothPrivateApiTest() override {} | 61 ~BluetoothPrivateApiTest() override {} |
| 62 | 62 |
| 63 void SetUpOnMainThread() override { | 63 void SetUpOnMainThread() override { |
| 64 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( | 64 base::CommandLine::ForCurrentProcess()->AppendSwitchASCII( |
| 65 switches::kWhitelistedExtensionID, kTestExtensionId); | 65 switches::kWhitelistedExtensionID, kTestExtensionId); |
| 66 mock_adapter_ = new NiceMock<MockBluetoothAdapter>(); | 66 mock_adapter_ = new NiceMock<MockBluetoothAdapter>(); |
| 67 event_router()->SetAdapterForTest(mock_adapter_.get()); | 67 event_router()->SetAdapterForTest(mock_adapter_.get()); |
| 68 mock_device_.reset(new NiceMock<MockBluetoothDevice>( | 68 mock_device_.reset(new NiceMock<MockBluetoothDevice>( |
| 69 mock_adapter_.get(), 0, kDeviceName, kDeviceAddress, false, false)); | 69 mock_adapter_.get(), 0, kDeviceName, kDeviceAddress, false, false)); |
| 70 ON_CALL(*mock_adapter_.get(), GetDevice(kDeviceAddress)) | 70 ON_CALL(*mock_adapter_, GetDevice(kDeviceAddress)) |
| 71 .WillByDefault(Return(mock_device_.get())); | 71 .WillByDefault(Return(mock_device_.get())); |
| 72 ON_CALL(*mock_adapter_.get(), IsPresent()).WillByDefault(Return(true)); | 72 ON_CALL(*mock_adapter_, IsPresent()).WillByDefault(Return(true)); |
| 73 } | 73 } |
| 74 | 74 |
| 75 void TearDownOnMainThread() override {} | 75 void TearDownOnMainThread() override {} |
| 76 | 76 |
| 77 BluetoothEventRouter* event_router() { | 77 BluetoothEventRouter* event_router() { |
| 78 return BluetoothAPI::Get(browser()->profile())->event_router(); | 78 return BluetoothAPI::Get(browser()->profile())->event_router(); |
| 79 } | 79 } |
| 80 | 80 |
| 81 void SetName(const std::string& name, const base::Closure& callback) { | 81 void SetName(const std::string& name, const base::Closure& callback) { |
| 82 adapter_name_ = name; | 82 adapter_name_ = name; |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 153 NiceMock<MockBluetoothDiscoverySession>* mock_discovery_session_; | 153 NiceMock<MockBluetoothDiscoverySession>* mock_discovery_session_; |
| 154 }; | 154 }; |
| 155 | 155 |
| 156 ACTION_TEMPLATE(InvokeCallbackArgument, | 156 ACTION_TEMPLATE(InvokeCallbackArgument, |
| 157 HAS_1_TEMPLATE_PARAMS(int, k), | 157 HAS_1_TEMPLATE_PARAMS(int, k), |
| 158 AND_0_VALUE_PARAMS()) { | 158 AND_0_VALUE_PARAMS()) { |
| 159 ::std::tr1::get<k>(args).Run(); | 159 ::std::tr1::get<k>(args).Run(); |
| 160 } | 160 } |
| 161 | 161 |
| 162 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, SetAdapterState) { | 162 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, SetAdapterState) { |
| 163 ON_CALL(*mock_adapter_.get(), GetName()) | 163 ON_CALL(*mock_adapter_, GetName()) |
| 164 .WillByDefault(ReturnPointee(&adapter_name_)); | 164 .WillByDefault(ReturnPointee(&adapter_name_)); |
| 165 ON_CALL(*mock_adapter_.get(), IsPowered()) | 165 ON_CALL(*mock_adapter_, IsPowered()) |
| 166 .WillByDefault(ReturnPointee(&adapter_powered_)); | 166 .WillByDefault(ReturnPointee(&adapter_powered_)); |
| 167 ON_CALL(*mock_adapter_.get(), IsDiscoverable()) | 167 ON_CALL(*mock_adapter_, IsDiscoverable()) |
| 168 .WillByDefault(ReturnPointee(&adapter_discoverable_)); | 168 .WillByDefault(ReturnPointee(&adapter_discoverable_)); |
| 169 | 169 |
| 170 EXPECT_CALL(*mock_adapter_.get(), SetName("Dome", _, _)).WillOnce( | 170 EXPECT_CALL(*mock_adapter_, SetName("Dome", _, _)) |
| 171 WithArgs<0, 1>(Invoke(this, &BluetoothPrivateApiTest::SetName))); | 171 .WillOnce( |
| 172 EXPECT_CALL(*mock_adapter_.get(), SetPowered(true, _, _)).WillOnce( | 172 WithArgs<0, 1>(Invoke(this, &BluetoothPrivateApiTest::SetName))); |
| 173 WithArgs<0, 1>(Invoke(this, &BluetoothPrivateApiTest::SetPowered))); | 173 EXPECT_CALL(*mock_adapter_, SetPowered(true, _, _)) |
| 174 EXPECT_CALL(*mock_adapter_.get(), SetDiscoverable(true, _, _)).WillOnce( | 174 .WillOnce( |
| 175 WithArgs<0, 1>(Invoke(this, &BluetoothPrivateApiTest::SetDiscoverable))); | 175 WithArgs<0, 1>(Invoke(this, &BluetoothPrivateApiTest::SetPowered))); |
| 176 EXPECT_CALL(*mock_adapter_, SetDiscoverable(true, _, _)) |
| 177 .WillOnce(WithArgs<0, 1>( |
| 178 Invoke(this, &BluetoothPrivateApiTest::SetDiscoverable))); |
| 176 | 179 |
| 177 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/adapter_state")) | 180 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/adapter_state")) |
| 178 << message_; | 181 << message_; |
| 179 } | 182 } |
| 180 | 183 |
| 181 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, NoBluetoothAdapter) { | 184 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, NoBluetoothAdapter) { |
| 182 ON_CALL(*mock_adapter_.get(), IsPresent()).WillByDefault(Return(false)); | 185 ON_CALL(*mock_adapter_, IsPresent()).WillByDefault(Return(false)); |
| 183 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/no_adapter")) | 186 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/no_adapter")) |
| 184 << message_; | 187 << message_; |
| 185 } | 188 } |
| 186 | 189 |
| 187 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, CancelPairing) { | 190 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, CancelPairing) { |
| 188 InSequence s; | 191 InSequence s; |
| 189 EXPECT_CALL(*mock_adapter_.get(), | 192 EXPECT_CALL(*mock_adapter_, |
| 190 AddPairingDelegate( | 193 AddPairingDelegate( |
| 191 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)) | 194 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)) |
| 192 .WillOnce(WithoutArgs(Invoke( | 195 .WillOnce(WithoutArgs(Invoke( |
| 193 this, &BluetoothPrivateApiTest::DispatchAuthorizePairingEvent))); | 196 this, &BluetoothPrivateApiTest::DispatchAuthorizePairingEvent))); |
| 194 EXPECT_CALL(*mock_device_, ExpectingConfirmation()) | 197 EXPECT_CALL(*mock_device_, ExpectingConfirmation()) |
| 195 .WillRepeatedly(Return(true)); | 198 .WillRepeatedly(Return(true)); |
| 196 EXPECT_CALL(*mock_device_, CancelPairing()); | 199 EXPECT_CALL(*mock_device_, CancelPairing()); |
| 197 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/cancel_pairing")) | 200 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/cancel_pairing")) |
| 198 << message_; | 201 << message_; |
| 199 } | 202 } |
| 200 | 203 |
| 201 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, PincodePairing) { | 204 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, PincodePairing) { |
| 202 EXPECT_CALL(*mock_adapter_.get(), | 205 EXPECT_CALL(*mock_adapter_, |
| 203 AddPairingDelegate( | 206 AddPairingDelegate( |
| 204 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)) | 207 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)) |
| 205 .WillOnce(WithoutArgs( | 208 .WillOnce(WithoutArgs( |
| 206 Invoke(this, &BluetoothPrivateApiTest::DispatchPincodePairingEvent))); | 209 Invoke(this, &BluetoothPrivateApiTest::DispatchPincodePairingEvent))); |
| 207 EXPECT_CALL(*mock_device_, ExpectingPinCode()).WillRepeatedly(Return(true)); | 210 EXPECT_CALL(*mock_device_, ExpectingPinCode()).WillRepeatedly(Return(true)); |
| 208 EXPECT_CALL(*mock_device_, SetPinCode("abbbbbbk")); | 211 EXPECT_CALL(*mock_device_, SetPinCode("abbbbbbk")); |
| 209 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/pincode_pairing")) | 212 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/pincode_pairing")) |
| 210 << message_; | 213 << message_; |
| 211 } | 214 } |
| 212 | 215 |
| 213 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, PasskeyPairing) { | 216 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, PasskeyPairing) { |
| 214 EXPECT_CALL(*mock_adapter_.get(), | 217 EXPECT_CALL(*mock_adapter_, |
| 215 AddPairingDelegate( | 218 AddPairingDelegate( |
| 216 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)) | 219 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)) |
| 217 .WillOnce(WithoutArgs( | 220 .WillOnce(WithoutArgs( |
| 218 Invoke(this, &BluetoothPrivateApiTest::DispatchPasskeyPairingEvent))); | 221 Invoke(this, &BluetoothPrivateApiTest::DispatchPasskeyPairingEvent))); |
| 219 EXPECT_CALL(*mock_device_, ExpectingPasskey()).WillRepeatedly(Return(true)); | 222 EXPECT_CALL(*mock_device_, ExpectingPasskey()).WillRepeatedly(Return(true)); |
| 220 EXPECT_CALL(*mock_device_, SetPasskey(900531)); | 223 EXPECT_CALL(*mock_device_, SetPasskey(900531)); |
| 221 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/passkey_pairing")) | 224 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/passkey_pairing")) |
| 222 << message_; | 225 << message_; |
| 223 } | 226 } |
| 224 | 227 |
| 225 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, DisconnectAll) { | 228 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, DisconnectAll) { |
| 226 EXPECT_CALL(*mock_device_, IsConnected()) | 229 EXPECT_CALL(*mock_device_, IsConnected()) |
| 227 .Times(6) | 230 .Times(6) |
| 228 .WillOnce(Return(false)) | 231 .WillOnce(Return(false)) |
| 229 .WillOnce(Return(true)) | 232 .WillOnce(Return(true)) |
| 230 .WillOnce(Return(false)) | 233 .WillOnce(Return(false)) |
| 231 .WillRepeatedly(Return(true)); | 234 .WillRepeatedly(Return(true)); |
| 232 EXPECT_CALL(*mock_device_, Disconnect(_, _)) | 235 EXPECT_CALL(*mock_device_, Disconnect(_, _)) |
| 233 .Times(3) | 236 .Times(3) |
| 234 .WillOnce(InvokeCallbackArgument<1>()) | 237 .WillOnce(InvokeCallbackArgument<1>()) |
| 235 .WillOnce(InvokeCallbackArgument<1>()) | 238 .WillOnce(InvokeCallbackArgument<1>()) |
| 236 .WillOnce(InvokeCallbackArgument<0>()); | 239 .WillOnce(InvokeCallbackArgument<0>()); |
| 237 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/disconnect")) | 240 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/disconnect")) |
| 238 << message_; | 241 << message_; |
| 239 } | 242 } |
| 240 | 243 |
| 241 // Device::Forget not implemented on OSX. | 244 // Device::Forget not implemented on OSX. |
| 242 #if !defined(OS_MACOSX) | 245 #if !defined(OS_MACOSX) |
| 243 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, ForgetDevice) { | 246 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, ForgetDevice) { |
| 244 EXPECT_CALL(*mock_device_.get(), Forget(_, _)) | 247 EXPECT_CALL(*mock_device_, Forget(_, _)) |
| 245 .WillOnce( | 248 .WillOnce( |
| 246 WithArgs<0>(Invoke(this, &BluetoothPrivateApiTest::ForgetDevice))); | 249 WithArgs<0>(Invoke(this, &BluetoothPrivateApiTest::ForgetDevice))); |
| 247 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/forget_device")) | 250 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/forget_device")) |
| 248 << message_; | 251 << message_; |
| 249 } | 252 } |
| 250 #endif | 253 #endif |
| 251 | 254 |
| 252 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, DiscoveryFilter) { | 255 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, DiscoveryFilter) { |
| 253 mock_discovery_session_ = new NiceMock<MockBluetoothDiscoverySession>(); | 256 mock_discovery_session_ = new NiceMock<MockBluetoothDiscoverySession>(); |
| 254 | 257 |
| 255 BluetoothDiscoveryFilter discovery_filter(device::BLUETOOTH_TRANSPORT_LE); | 258 BluetoothDiscoveryFilter discovery_filter(device::BLUETOOTH_TRANSPORT_LE); |
| 256 discovery_filter.SetPathloss(50); | 259 discovery_filter.SetPathloss(50); |
| 257 discovery_filter.AddUUID(BluetoothUUID("cafe")); | 260 discovery_filter.AddUUID(BluetoothUUID("cafe")); |
| 258 discovery_filter.AddUUID( | 261 discovery_filter.AddUUID( |
| 259 BluetoothUUID("0000bebe-0000-1000-8000-00805f9b34fb")); | 262 BluetoothUUID("0000bebe-0000-1000-8000-00805f9b34fb")); |
| 260 | 263 |
| 261 EXPECT_CALL(*mock_adapter_.get(), StartDiscoverySessionWithFilterRaw( | 264 EXPECT_CALL(*mock_adapter_, StartDiscoverySessionWithFilterRaw( |
| 262 IsFilterEqual(&discovery_filter), _, _)) | 265 IsFilterEqual(&discovery_filter), _, _)) |
| 263 .Times(1) | 266 .Times(1) |
| 264 .WillOnce(WithArgs<1>(Invoke( | 267 .WillOnce(WithArgs<1>(Invoke( |
| 265 this, &BluetoothPrivateApiTest::CallSetDiscoveryFilterCallback))); | 268 this, &BluetoothPrivateApiTest::CallSetDiscoveryFilterCallback))); |
| 266 EXPECT_CALL(*mock_discovery_session_, IsActive()) | 269 EXPECT_CALL(*mock_discovery_session_, IsActive()) |
| 267 .Times(1) | 270 .Times(1) |
| 268 .WillOnce(Return(true)); | 271 .WillOnce(Return(true)); |
| 269 EXPECT_CALL(*mock_discovery_session_, | 272 EXPECT_CALL(*mock_discovery_session_, |
| 270 SetDiscoveryFilterRaw(Eq(nullptr), _, _)) | 273 SetDiscoveryFilterRaw(Eq(nullptr), _, _)) |
| 271 .Times(1) | 274 .Times(1) |
| 272 .WillOnce(InvokeCallbackArgument<1>()); | 275 .WillOnce(InvokeCallbackArgument<1>()); |
| 273 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/discovery_filter")) | 276 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/discovery_filter")) |
| 274 << message_; | 277 << message_; |
| 275 } | 278 } |
| 276 | 279 |
| 277 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, Connect) { | 280 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, Connect) { |
| 278 EXPECT_CALL(*mock_device_.get(), IsConnected()) | 281 EXPECT_CALL(*mock_device_, IsConnected()) |
| 279 .Times(2) | 282 .Times(2) |
| 280 .WillOnce(Return(false)) | 283 .WillOnce(Return(false)) |
| 281 .WillOnce(Return(true)); | 284 .WillOnce(Return(true)); |
| 282 EXPECT_CALL(*mock_device_.get(), Connect(_, _, _)) | 285 EXPECT_CALL(*mock_device_, Connect(_, _, _)) |
| 283 .WillOnce(InvokeCallbackArgument<1>()); | 286 .WillOnce(InvokeCallbackArgument<1>()); |
| 284 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/connect")) | 287 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/connect")) |
| 285 << message_; | 288 << message_; |
| 286 } | 289 } |
| 287 | 290 |
| 288 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, Pair) { | 291 IN_PROC_BROWSER_TEST_F(BluetoothPrivateApiTest, Pair) { |
| 289 EXPECT_CALL(*mock_adapter_.get(), | 292 EXPECT_CALL(*mock_adapter_, |
| 290 AddPairingDelegate( | 293 AddPairingDelegate( |
| 291 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)); | 294 _, device::BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH)); |
| 292 EXPECT_CALL(*mock_device_, ExpectingConfirmation()) | 295 EXPECT_CALL(*mock_device_, ExpectingConfirmation()) |
| 293 .WillRepeatedly(Return(true)); | 296 .WillRepeatedly(Return(true)); |
| 294 EXPECT_CALL(*mock_device_.get(), Pair(_, _, _)) | 297 EXPECT_CALL(*mock_device_, Pair(_, _, _)) |
| 295 .WillOnce(DoAll( | 298 .WillOnce(DoAll( |
| 296 WithoutArgs(Invoke( | 299 WithoutArgs(Invoke( |
| 297 this, | 300 this, |
| 298 &BluetoothPrivateApiTest::DispatchConfirmPasskeyPairingEvent)), | 301 &BluetoothPrivateApiTest::DispatchConfirmPasskeyPairingEvent)), |
| 299 InvokeCallbackArgument<1>())); | 302 InvokeCallbackArgument<1>())); |
| 300 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/pair")) << message_; | 303 ASSERT_TRUE(RunComponentExtensionTest("bluetooth_private/pair")) << message_; |
| 301 } | 304 } |
| 302 | 305 |
| 303 } // namespace extensions | 306 } // namespace extensions |
| OLD | NEW |