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

Side by Side Diff: device/bluetooth/bluetooth_adapter_unittest.cc

Issue 2063353002: device/bluetooth: split out transport enum (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fixing new use in components/arc/bluetooth Created 4 years, 6 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
« no previous file with comments | « device/bluetooth/bluetooth_adapter_mac_unittest.mm ('k') | device/bluetooth/bluetooth_common.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "device/bluetooth/bluetooth_adapter.h" 5 #include "device/bluetooth/bluetooth_adapter.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
11 #include <utility> 11 #include <utility>
12 12
13 #include "base/bind.h" 13 #include "base/bind.h"
14 #include "base/memory/ref_counted.h" 14 #include "base/memory/ref_counted.h"
15 #include "base/run_loop.h" 15 #include "base/run_loop.h"
16 #include "build/build_config.h" 16 #include "build/build_config.h"
17 #include "device/bluetooth/bluetooth_common.h"
17 #include "device/bluetooth/bluetooth_device.h" 18 #include "device/bluetooth/bluetooth_device.h"
18 #include "device/bluetooth/bluetooth_discovery_session.h" 19 #include "device/bluetooth/bluetooth_discovery_session.h"
19 #include "device/bluetooth/bluetooth_gatt_service.h" 20 #include "device/bluetooth/bluetooth_gatt_service.h"
20 #include "device/bluetooth/bluetooth_local_gatt_characteristic.h" 21 #include "device/bluetooth/bluetooth_local_gatt_characteristic.h"
21 #include "device/bluetooth/bluetooth_local_gatt_descriptor.h" 22 #include "device/bluetooth/bluetooth_local_gatt_descriptor.h"
22 #include "device/bluetooth/bluetooth_local_gatt_service.h" 23 #include "device/bluetooth/bluetooth_local_gatt_service.h"
23 #include "device/bluetooth/test/bluetooth_test.h" 24 #include "device/bluetooth/test/bluetooth_test.h"
24 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h" 25 #include "device/bluetooth/test/test_bluetooth_adapter_observer.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 27
(...skipping 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
259 260
260 adapter->CleanupSessions(); 261 adapter->CleanupSessions();
261 } 262 }
262 263
263 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterRssi) { 264 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterRssi) {
264 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter(); 265 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
265 int16_t resulting_rssi; 266 int16_t resulting_rssi;
266 uint16_t resulting_pathloss; 267 uint16_t resulting_pathloss;
267 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter; 268 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter;
268 269
269 BluetoothDiscoveryFilter* df = new BluetoothDiscoveryFilter( 270 BluetoothDiscoveryFilter* df =
270 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 271 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
271 df->SetRSSI(-30); 272 df->SetRSSI(-30);
272 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df); 273 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df);
273 274
274 BluetoothDiscoveryFilter* df2 = new BluetoothDiscoveryFilter( 275 BluetoothDiscoveryFilter* df2 =
275 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 276 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
276 df2->SetRSSI(-65); 277 df2->SetRSSI(-65);
277 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2); 278 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2);
278 279
279 // make sure adapter have one session wihout filtering. 280 // make sure adapter have one session wihout filtering.
280 adapter->InjectFilteredSession(std::move(discovery_filter)); 281 adapter->InjectFilteredSession(std::move(discovery_filter));
281 282
282 // DO_NOTHING should have no impact 283 // DO_NOTHING should have no impact
283 resulting_filter = adapter->GetMergedDiscoveryFilter(); 284 resulting_filter = adapter->GetMergedDiscoveryFilter();
284 resulting_filter->GetRSSI(&resulting_rssi); 285 resulting_filter->GetRSSI(&resulting_rssi);
285 EXPECT_EQ(-30, resulting_rssi); 286 EXPECT_EQ(-30, resulting_rssi);
(...skipping 13 matching lines...) Expand all
299 // ommit bigger value, result should stay same 300 // ommit bigger value, result should stay same
300 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df); 301 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df);
301 resulting_filter->GetRSSI(&resulting_rssi); 302 resulting_filter->GetRSSI(&resulting_rssi);
302 EXPECT_EQ(-65, resulting_rssi); 303 EXPECT_EQ(-65, resulting_rssi);
303 304
304 // ommit lower value, result should change 305 // ommit lower value, result should change
305 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df2); 306 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df2);
306 resulting_filter->GetRSSI(&resulting_rssi); 307 resulting_filter->GetRSSI(&resulting_rssi);
307 EXPECT_EQ(-30, resulting_rssi); 308 EXPECT_EQ(-30, resulting_rssi);
308 309
309 BluetoothDiscoveryFilter* df3 = new BluetoothDiscoveryFilter( 310 BluetoothDiscoveryFilter* df3 =
310 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 311 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
311 df3->SetPathloss(60); 312 df3->SetPathloss(60);
312 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3); 313 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3);
313 314
314 // when rssi and pathloss are merged, both should be cleared, becuase there is 315 // when rssi and pathloss are merged, both should be cleared, becuase there is
315 // no way to tell which filter will be more generic 316 // no way to tell which filter will be more generic
316 adapter->InjectFilteredSession(std::move(discovery_filter3)); 317 adapter->InjectFilteredSession(std::move(discovery_filter3));
317 resulting_filter = adapter->GetMergedDiscoveryFilter(); 318 resulting_filter = adapter->GetMergedDiscoveryFilter();
318 EXPECT_FALSE(resulting_filter->GetRSSI(&resulting_rssi)); 319 EXPECT_FALSE(resulting_filter->GetRSSI(&resulting_rssi));
319 EXPECT_FALSE(resulting_filter->GetPathloss(&resulting_pathloss)); 320 EXPECT_FALSE(resulting_filter->GetPathloss(&resulting_pathloss));
320 321
321 adapter->CleanupSessions(); 322 adapter->CleanupSessions();
322 } 323 }
323 324
324 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterTransport) { 325 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterTransport) {
325 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter(); 326 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
326 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter; 327 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter;
327 328
328 BluetoothDiscoveryFilter* df = new BluetoothDiscoveryFilter( 329 BluetoothDiscoveryFilter* df =
329 BluetoothDiscoveryFilter::Transport::TRANSPORT_CLASSIC); 330 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_CLASSIC);
330 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df); 331 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df);
331 332
332 BluetoothDiscoveryFilter* df2 = new BluetoothDiscoveryFilter( 333 BluetoothDiscoveryFilter* df2 =
333 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 334 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
334 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2); 335 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2);
335 336
336 adapter->InjectFilteredSession(std::move(discovery_filter)); 337 adapter->InjectFilteredSession(std::move(discovery_filter));
337 338
338 // Just one filter, make sure transport was properly rewritten 339 // Just one filter, make sure transport was properly rewritten
339 resulting_filter = adapter->GetMergedDiscoveryFilter(); 340 resulting_filter = adapter->GetMergedDiscoveryFilter();
340 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_CLASSIC, 341 EXPECT_EQ(BLUETOOTH_TRANSPORT_CLASSIC, resulting_filter->GetTransport());
341 resulting_filter->GetTransport());
342 342
343 adapter->InjectFilteredSession(std::move(discovery_filter2)); 343 adapter->InjectFilteredSession(std::move(discovery_filter2));
344 344
345 // Two filters, should have OR of both transport's 345 // Two filters, should have OR of both transport's
346 resulting_filter = adapter->GetMergedDiscoveryFilter(); 346 resulting_filter = adapter->GetMergedDiscoveryFilter();
347 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL, 347 EXPECT_EQ(BLUETOOTH_TRANSPORT_DUAL, resulting_filter->GetTransport());
348 resulting_filter->GetTransport());
349 348
350 // When 1st filter is masked, 2nd filter transport should be returned. 349 // When 1st filter is masked, 2nd filter transport should be returned.
351 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df); 350 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df);
352 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_LE, 351 EXPECT_EQ(BLUETOOTH_TRANSPORT_LE, resulting_filter->GetTransport());
353 resulting_filter->GetTransport());
354 352
355 // When 2nd filter is masked, 1st filter transport should be returned. 353 // When 2nd filter is masked, 1st filter transport should be returned.
356 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df2); 354 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df2);
357 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_CLASSIC, 355 EXPECT_EQ(BLUETOOTH_TRANSPORT_CLASSIC, resulting_filter->GetTransport());
358 resulting_filter->GetTransport());
359 356
360 BluetoothDiscoveryFilter* df3 = new BluetoothDiscoveryFilter( 357 BluetoothDiscoveryFilter* df3 =
361 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 358 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
362 df3->CopyFrom(BluetoothDiscoveryFilter( 359 df3->CopyFrom(BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_DUAL));
363 BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL));
364 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3); 360 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3);
365 361
366 // Merging empty filter in should result in empty filter 362 // Merging empty filter in should result in empty filter
367 adapter->InjectFilteredSession(std::move(discovery_filter3)); 363 adapter->InjectFilteredSession(std::move(discovery_filter3));
368 resulting_filter = adapter->GetMergedDiscoveryFilter(); 364 resulting_filter = adapter->GetMergedDiscoveryFilter();
369 EXPECT_TRUE(resulting_filter->IsDefault()); 365 EXPECT_TRUE(resulting_filter->IsDefault());
370 366
371 adapter->CleanupSessions(); 367 adapter->CleanupSessions();
372 } 368 }
373 369
374 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterAllFields) { 370 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterAllFields) {
375 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter(); 371 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
376 int16_t resulting_rssi; 372 int16_t resulting_rssi;
377 std::set<device::BluetoothUUID> resulting_uuids; 373 std::set<device::BluetoothUUID> resulting_uuids;
378 374
379 BluetoothDiscoveryFilter* df = new BluetoothDiscoveryFilter( 375 BluetoothDiscoveryFilter* df =
380 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 376 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
381 df->SetRSSI(-60); 377 df->SetRSSI(-60);
382 df->AddUUID(device::BluetoothUUID("1000")); 378 df->AddUUID(device::BluetoothUUID("1000"));
383 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df); 379 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df);
384 380
385 BluetoothDiscoveryFilter* df2 = new BluetoothDiscoveryFilter( 381 BluetoothDiscoveryFilter* df2 =
386 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 382 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
387 df2->SetRSSI(-85); 383 df2->SetRSSI(-85);
388 df2->SetTransport(BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 384 df2->SetTransport(BLUETOOTH_TRANSPORT_LE);
389 df2->AddUUID(device::BluetoothUUID("1020")); 385 df2->AddUUID(device::BluetoothUUID("1020"));
390 df2->AddUUID(device::BluetoothUUID("1001")); 386 df2->AddUUID(device::BluetoothUUID("1001"));
391 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2); 387 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2);
392 388
393 BluetoothDiscoveryFilter* df3 = new BluetoothDiscoveryFilter( 389 BluetoothDiscoveryFilter* df3 =
394 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 390 new BluetoothDiscoveryFilter(BLUETOOTH_TRANSPORT_LE);
395 df3->SetRSSI(-65); 391 df3->SetRSSI(-65);
396 df3->SetTransport(BluetoothDiscoveryFilter::Transport::TRANSPORT_CLASSIC); 392 df3->SetTransport(BLUETOOTH_TRANSPORT_CLASSIC);
397 df3->AddUUID(device::BluetoothUUID("1020")); 393 df3->AddUUID(device::BluetoothUUID("1020"));
398 df3->AddUUID(device::BluetoothUUID("1003")); 394 df3->AddUUID(device::BluetoothUUID("1003"));
399 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3); 395 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3);
400 396
401 // make sure adapter have one session wihout filtering. 397 // make sure adapter have one session wihout filtering.
402 adapter->InjectFilteredSession(std::move(discovery_filter)); 398 adapter->InjectFilteredSession(std::move(discovery_filter));
403 adapter->InjectFilteredSession(std::move(discovery_filter2)); 399 adapter->InjectFilteredSession(std::move(discovery_filter2));
404 adapter->InjectFilteredSession(std::move(discovery_filter3)); 400 adapter->InjectFilteredSession(std::move(discovery_filter3));
405 401
406 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter = 402 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter =
407 adapter->GetMergedDiscoveryFilter(); 403 adapter->GetMergedDiscoveryFilter();
408 resulting_filter->GetRSSI(&resulting_rssi); 404 resulting_filter->GetRSSI(&resulting_rssi);
409 resulting_filter->GetUUIDs(resulting_uuids); 405 resulting_filter->GetUUIDs(resulting_uuids);
410 EXPECT_TRUE(resulting_filter->GetTransport()); 406 EXPECT_TRUE(resulting_filter->GetTransport());
411 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL, 407 EXPECT_EQ(BLUETOOTH_TRANSPORT_DUAL, resulting_filter->GetTransport());
412 resulting_filter->GetTransport());
413 EXPECT_EQ(-85, resulting_rssi); 408 EXPECT_EQ(-85, resulting_rssi);
414 EXPECT_EQ(4UL, resulting_uuids.size()); 409 EXPECT_EQ(4UL, resulting_uuids.size());
415 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1000")) != 410 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1000")) !=
416 resulting_uuids.end()); 411 resulting_uuids.end());
417 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1001")) != 412 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1001")) !=
418 resulting_uuids.end()); 413 resulting_uuids.end());
419 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1003")) != 414 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1003")) !=
420 resulting_uuids.end()); 415 resulting_uuids.end());
421 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1020")) != 416 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1020")) !=
422 resulting_uuids.end()); 417 resulting_uuids.end());
423 418
424 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df); 419 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df);
425 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL, 420 EXPECT_EQ(BLUETOOTH_TRANSPORT_DUAL, resulting_filter->GetTransport());
426 resulting_filter->GetTransport());
427 421
428 adapter->CleanupSessions(); 422 adapter->CleanupSessions();
429 } 423 }
430 424
431 // TODO(scheib): Enable BluetoothTest fixture tests on all platforms. 425 // TODO(scheib): Enable BluetoothTest fixture tests on all platforms.
432 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) 426 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
433 TEST_F(BluetoothTest, ConstructDefaultAdapter) { 427 TEST_F(BluetoothTest, ConstructDefaultAdapter) {
434 InitWithDefaultAdapter(); 428 InitWithDefaultAdapter();
435 if (!adapter_->IsPresent()) { 429 if (!adapter_->IsPresent()) {
436 LOG(WARNING) << "Bluetooth adapter not present; skipping unit test."; 430 LOG(WARNING) << "Bluetooth adapter not present; skipping unit test.";
(...skipping 326 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 service->Register(GetCallback(Call::NOT_EXPECTED), 757 service->Register(GetCallback(Call::NOT_EXPECTED),
764 GetGattErrorCallback(Call::EXPECTED)); 758 GetGattErrorCallback(Call::EXPECTED));
765 service->Unregister(GetCallback(Call::EXPECTED), 759 service->Unregister(GetCallback(Call::EXPECTED),
766 GetGattErrorCallback(Call::NOT_EXPECTED)); 760 GetGattErrorCallback(Call::NOT_EXPECTED));
767 service->Unregister(GetCallback(Call::NOT_EXPECTED), 761 service->Unregister(GetCallback(Call::NOT_EXPECTED),
768 GetGattErrorCallback(Call::EXPECTED)); 762 GetGattErrorCallback(Call::EXPECTED));
769 } 763 }
770 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX) 764 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX)
771 765
772 } // namespace device 766 } // namespace device
OLDNEW
« no previous file with comments | « device/bluetooth/bluetooth_adapter_mac_unittest.mm ('k') | device/bluetooth/bluetooth_common.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698