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

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: renaming header, moving TransportMask back into filter 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
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_device.h" 17 #include "device/bluetooth/bluetooth_device.h"
18 #include "device/bluetooth/bluetooth_discovery_session.h" 18 #include "device/bluetooth/bluetooth_discovery_session.h"
19 #include "device/bluetooth/bluetooth_gatt_service.h" 19 #include "device/bluetooth/bluetooth_gatt_service.h"
20 #include "device/bluetooth/bluetooth_local_gatt_characteristic.h" 20 #include "device/bluetooth/bluetooth_local_gatt_characteristic.h"
21 #include "device/bluetooth/bluetooth_local_gatt_descriptor.h" 21 #include "device/bluetooth/bluetooth_local_gatt_descriptor.h"
22 #include "device/bluetooth/bluetooth_local_gatt_service.h" 22 #include "device/bluetooth/bluetooth_local_gatt_service.h"
23 #include "device/bluetooth/bluetooth_types.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
27 #if defined(OS_ANDROID) 28 #if defined(OS_ANDROID)
28 #include "device/bluetooth/test/bluetooth_test_android.h" 29 #include "device/bluetooth/test/bluetooth_test_android.h"
29 #elif defined(OS_MACOSX) 30 #elif defined(OS_MACOSX)
30 #include "device/bluetooth/test/bluetooth_test_mac.h" 31 #include "device/bluetooth/test/bluetooth_test_mac.h"
31 #elif defined(OS_WIN) 32 #elif defined(OS_WIN)
32 #include "device/bluetooth/test/bluetooth_test_win.h" 33 #include "device/bluetooth/test/bluetooth_test_win.h"
(...skipping 226 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(BluetoothTransport::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(BluetoothTransport::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(BluetoothTransport::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(BluetoothTransport::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(BluetoothTransport::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(BluetoothTransport::TRANSPORT_CLASSIC,
341 resulting_filter->GetTransport()); 342 resulting_filter->GetTransport());
342 343
343 adapter->InjectFilteredSession(std::move(discovery_filter2)); 344 adapter->InjectFilteredSession(std::move(discovery_filter2));
344 345
345 // Two filters, should have OR of both transport's 346 // Two filters, should have OR of both transport's
346 resulting_filter = adapter->GetMergedDiscoveryFilter(); 347 resulting_filter = adapter->GetMergedDiscoveryFilter();
347 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL, 348 EXPECT_EQ(BluetoothTransport::TRANSPORT_DUAL,
348 resulting_filter->GetTransport()); 349 resulting_filter->GetTransport());
349 350
350 // When 1st filter is masked, 2nd filter transport should be returned. 351 // When 1st filter is masked, 2nd filter transport should be returned.
351 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df); 352 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df);
352 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_LE, 353 EXPECT_EQ(BluetoothTransport::TRANSPORT_LE, resulting_filter->GetTransport());
353 resulting_filter->GetTransport());
354 354
355 // When 2nd filter is masked, 1st filter transport should be returned. 355 // When 2nd filter is masked, 1st filter transport should be returned.
356 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df2); 356 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df2);
357 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_CLASSIC, 357 EXPECT_EQ(BluetoothTransport::TRANSPORT_CLASSIC,
358 resulting_filter->GetTransport()); 358 resulting_filter->GetTransport());
359 359
360 BluetoothDiscoveryFilter* df3 = new BluetoothDiscoveryFilter( 360 BluetoothDiscoveryFilter* df3 =
361 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 361 new BluetoothDiscoveryFilter(BluetoothTransport::TRANSPORT_LE);
362 df3->CopyFrom(BluetoothDiscoveryFilter( 362 df3->CopyFrom(BluetoothDiscoveryFilter(BluetoothTransport::TRANSPORT_DUAL));
363 BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL));
364 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3); 363 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3);
365 364
366 // Merging empty filter in should result in empty filter 365 // Merging empty filter in should result in empty filter
367 adapter->InjectFilteredSession(std::move(discovery_filter3)); 366 adapter->InjectFilteredSession(std::move(discovery_filter3));
368 resulting_filter = adapter->GetMergedDiscoveryFilter(); 367 resulting_filter = adapter->GetMergedDiscoveryFilter();
369 EXPECT_TRUE(resulting_filter->IsDefault()); 368 EXPECT_TRUE(resulting_filter->IsDefault());
370 369
371 adapter->CleanupSessions(); 370 adapter->CleanupSessions();
372 } 371 }
373 372
374 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterAllFields) { 373 TEST(BluetoothAdapterTest, GetMergedDiscoveryFilterAllFields) {
375 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter(); 374 scoped_refptr<TestBluetoothAdapter> adapter = new TestBluetoothAdapter();
376 int16_t resulting_rssi; 375 int16_t resulting_rssi;
377 std::set<device::BluetoothUUID> resulting_uuids; 376 std::set<device::BluetoothUUID> resulting_uuids;
378 377
379 BluetoothDiscoveryFilter* df = new BluetoothDiscoveryFilter( 378 BluetoothDiscoveryFilter* df =
380 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 379 new BluetoothDiscoveryFilter(BluetoothTransport::TRANSPORT_LE);
381 df->SetRSSI(-60); 380 df->SetRSSI(-60);
382 df->AddUUID(device::BluetoothUUID("1000")); 381 df->AddUUID(device::BluetoothUUID("1000"));
383 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df); 382 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter(df);
384 383
385 BluetoothDiscoveryFilter* df2 = new BluetoothDiscoveryFilter( 384 BluetoothDiscoveryFilter* df2 =
386 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 385 new BluetoothDiscoveryFilter(BluetoothTransport::TRANSPORT_LE);
387 df2->SetRSSI(-85); 386 df2->SetRSSI(-85);
388 df2->SetTransport(BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 387 df2->SetTransport(BluetoothTransport::TRANSPORT_LE);
389 df2->AddUUID(device::BluetoothUUID("1020")); 388 df2->AddUUID(device::BluetoothUUID("1020"));
390 df2->AddUUID(device::BluetoothUUID("1001")); 389 df2->AddUUID(device::BluetoothUUID("1001"));
391 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2); 390 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter2(df2);
392 391
393 BluetoothDiscoveryFilter* df3 = new BluetoothDiscoveryFilter( 392 BluetoothDiscoveryFilter* df3 =
394 BluetoothDiscoveryFilter::Transport::TRANSPORT_LE); 393 new BluetoothDiscoveryFilter(BluetoothTransport::TRANSPORT_LE);
395 df3->SetRSSI(-65); 394 df3->SetRSSI(-65);
396 df3->SetTransport(BluetoothDiscoveryFilter::Transport::TRANSPORT_CLASSIC); 395 df3->SetTransport(BluetoothTransport::TRANSPORT_CLASSIC);
397 df3->AddUUID(device::BluetoothUUID("1020")); 396 df3->AddUUID(device::BluetoothUUID("1020"));
398 df3->AddUUID(device::BluetoothUUID("1003")); 397 df3->AddUUID(device::BluetoothUUID("1003"));
399 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3); 398 std::unique_ptr<BluetoothDiscoveryFilter> discovery_filter3(df3);
400 399
401 // make sure adapter have one session wihout filtering. 400 // make sure adapter have one session wihout filtering.
402 adapter->InjectFilteredSession(std::move(discovery_filter)); 401 adapter->InjectFilteredSession(std::move(discovery_filter));
403 adapter->InjectFilteredSession(std::move(discovery_filter2)); 402 adapter->InjectFilteredSession(std::move(discovery_filter2));
404 adapter->InjectFilteredSession(std::move(discovery_filter3)); 403 adapter->InjectFilteredSession(std::move(discovery_filter3));
405 404
406 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter = 405 std::unique_ptr<BluetoothDiscoveryFilter> resulting_filter =
407 adapter->GetMergedDiscoveryFilter(); 406 adapter->GetMergedDiscoveryFilter();
408 resulting_filter->GetRSSI(&resulting_rssi); 407 resulting_filter->GetRSSI(&resulting_rssi);
409 resulting_filter->GetUUIDs(resulting_uuids); 408 resulting_filter->GetUUIDs(resulting_uuids);
410 EXPECT_TRUE(resulting_filter->GetTransport()); 409 EXPECT_TRUE(resulting_filter->GetTransport());
411 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL, 410 EXPECT_EQ(BluetoothTransport::TRANSPORT_DUAL,
412 resulting_filter->GetTransport()); 411 resulting_filter->GetTransport());
413 EXPECT_EQ(-85, resulting_rssi); 412 EXPECT_EQ(-85, resulting_rssi);
414 EXPECT_EQ(4UL, resulting_uuids.size()); 413 EXPECT_EQ(4UL, resulting_uuids.size());
415 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1000")) != 414 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1000")) !=
416 resulting_uuids.end()); 415 resulting_uuids.end());
417 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1001")) != 416 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1001")) !=
418 resulting_uuids.end()); 417 resulting_uuids.end());
419 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1003")) != 418 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1003")) !=
420 resulting_uuids.end()); 419 resulting_uuids.end());
421 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1020")) != 420 EXPECT_TRUE(resulting_uuids.find(device::BluetoothUUID("1020")) !=
422 resulting_uuids.end()); 421 resulting_uuids.end());
423 422
424 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df); 423 resulting_filter = adapter->GetMergedDiscoveryFilterMasked(df);
425 EXPECT_EQ(BluetoothDiscoveryFilter::Transport::TRANSPORT_DUAL, 424 EXPECT_EQ(BluetoothTransport::TRANSPORT_DUAL,
426 resulting_filter->GetTransport()); 425 resulting_filter->GetTransport());
427 426
428 adapter->CleanupSessions(); 427 adapter->CleanupSessions();
429 } 428 }
430 429
431 // TODO(scheib): Enable BluetoothTest fixture tests on all platforms. 430 // TODO(scheib): Enable BluetoothTest fixture tests on all platforms.
432 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) 431 #if defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN)
433 TEST_F(BluetoothTest, ConstructDefaultAdapter) { 432 TEST_F(BluetoothTest, ConstructDefaultAdapter) {
434 InitWithDefaultAdapter(); 433 InitWithDefaultAdapter();
435 if (!adapter_->IsPresent()) { 434 if (!adapter_->IsPresent()) {
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
763 service->Register(GetCallback(Call::NOT_EXPECTED), 762 service->Register(GetCallback(Call::NOT_EXPECTED),
764 GetGattErrorCallback(Call::EXPECTED)); 763 GetGattErrorCallback(Call::EXPECTED));
765 service->Unregister(GetCallback(Call::EXPECTED), 764 service->Unregister(GetCallback(Call::EXPECTED),
766 GetGattErrorCallback(Call::NOT_EXPECTED)); 765 GetGattErrorCallback(Call::NOT_EXPECTED));
767 service->Unregister(GetCallback(Call::NOT_EXPECTED), 766 service->Unregister(GetCallback(Call::NOT_EXPECTED),
768 GetGattErrorCallback(Call::EXPECTED)); 767 GetGattErrorCallback(Call::EXPECTED));
769 } 768 }
770 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX) 769 #endif // defined(OS_CHROMEOS) || defined(OS_LINUX)
771 770
772 } // namespace device 771 } // namespace device
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698