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

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

Issue 189753002: Bluetooth: use generic names for fake devices (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@modalias-device-id
Patch Set: Created 6 years, 9 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 | « chromeos/dbus/fake_bluetooth_input_client.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "base/message_loop/message_loop.h" 5 #include "base/message_loop/message_loop.h"
6 #include "base/strings/utf_string_conversions.h" 6 #include "base/strings/utf_string_conversions.h"
7 #include "chromeos/dbus/fake_bluetooth_adapter_client.h" 7 #include "chromeos/dbus/fake_bluetooth_adapter_client.h"
8 #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h" 8 #include "chromeos/dbus/fake_bluetooth_agent_manager_client.h"
9 #include "chromeos/dbus/fake_bluetooth_device_client.h" 9 #include "chromeos/dbus/fake_bluetooth_device_client.h"
10 #include "chromeos/dbus/fake_bluetooth_input_client.h" 10 #include "chromeos/dbus/fake_bluetooth_input_client.h"
(...skipping 756 matching lines...) Expand 10 before | Expand all | Expand 10 after
767 base::Bind(&BluetoothChromeOSTest::ErrorCallback, 767 base::Bind(&BluetoothChromeOSTest::ErrorCallback,
768 base::Unretained(this))); 768 base::Unretained(this)));
769 message_loop_.Run(); 769 message_loop_.Run();
770 EXPECT_EQ(2, callback_count_); 770 EXPECT_EQ(2, callback_count_);
771 EXPECT_EQ(0, error_callback_count_); 771 EXPECT_EQ(0, error_callback_count_);
772 callback_count_ = 0; 772 callback_count_ = 0;
773 773
774 ASSERT_TRUE(adapter_->IsPowered()); 774 ASSERT_TRUE(adapter_->IsPowered());
775 ASSERT_TRUE(adapter_->IsDiscovering()); 775 ASSERT_TRUE(adapter_->IsDiscovering());
776 776
777 // First device to appear should be an Apple Mouse. 777 // First device to appear.
778 message_loop_.Run(); 778 message_loop_.Run();
779 779
780 EXPECT_EQ(1, observer.device_added_count_); 780 EXPECT_EQ(1, observer.device_added_count_);
781 EXPECT_EQ(FakeBluetoothDeviceClient::kAppleMouseAddress, 781 EXPECT_EQ(FakeBluetoothDeviceClient::kLegacyAutopairAddress,
782 observer.last_device_address_); 782 observer.last_device_address_);
783 783
784 // Next we should get another two devices... 784 // Next we should get another two devices...
785 message_loop_.Run(); 785 message_loop_.Run();
786 EXPECT_EQ(3, observer.device_added_count_); 786 EXPECT_EQ(3, observer.device_added_count_);
787 787
788 // Okay, let's run forward until a device is actually removed... 788 // Okay, let's run forward until a device is actually removed...
789 while (!observer.device_removed_count_) 789 while (!observer.device_removed_count_)
790 message_loop_.Run(); 790 message_loop_.Run();
791 791
(...skipping 757 matching lines...) Expand 10 before | Expand all | Expand 10 after
1549 // GetDevices shouldn't return the device either. 1549 // GetDevices shouldn't return the device either.
1550 devices = adapter_->GetDevices(); 1550 devices = adapter_->GetDevices();
1551 ASSERT_EQ(0U, devices.size()); 1551 ASSERT_EQ(0U, devices.size());
1552 } 1552 }
1553 1553
1554 TEST_F(BluetoothChromeOSTest, ForgetUnpairedDevice) { 1554 TEST_F(BluetoothChromeOSTest, ForgetUnpairedDevice) {
1555 GetAdapter(); 1555 GetAdapter();
1556 DiscoverDevices(); 1556 DiscoverDevices();
1557 1557
1558 BluetoothDevice* device = adapter_->GetDevice( 1558 BluetoothDevice* device = adapter_->GetDevice(
1559 FakeBluetoothDeviceClient::kMicrosoftMouseAddress); 1559 FakeBluetoothDeviceClient::kConnectUnpairableAddress);
1560 ASSERT_TRUE(device != NULL); 1560 ASSERT_TRUE(device != NULL);
1561 ASSERT_FALSE(device->IsPaired()); 1561 ASSERT_FALSE(device->IsPaired());
1562 1562
1563 // Connect the device so it becomes trusted and remembered. 1563 // Connect the device so it becomes trusted and remembered.
1564 device->Connect( 1564 device->Connect(
1565 NULL, 1565 NULL,
1566 base::Bind(&BluetoothChromeOSTest::Callback, 1566 base::Bind(&BluetoothChromeOSTest::Callback,
1567 base::Unretained(this)), 1567 base::Unretained(this)),
1568 base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback, 1568 base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
1569 base::Unretained(this))); 1569 base::Unretained(this)));
1570 1570
1571 ASSERT_EQ(1, callback_count_); 1571 ASSERT_EQ(1, callback_count_);
1572 ASSERT_EQ(0, error_callback_count_); 1572 ASSERT_EQ(0, error_callback_count_);
1573 callback_count_ = 0; 1573 callback_count_ = 0;
1574 1574
1575 ASSERT_TRUE(device->IsConnected()); 1575 ASSERT_TRUE(device->IsConnected());
1576 ASSERT_FALSE(device->IsConnecting()); 1576 ASSERT_FALSE(device->IsConnecting());
1577 1577
1578 // Make sure the trusted property has been set to true. 1578 // Make sure the trusted property has been set to true.
1579 FakeBluetoothDeviceClient::Properties* properties = 1579 FakeBluetoothDeviceClient::Properties* properties =
1580 fake_bluetooth_device_client_->GetProperties( 1580 fake_bluetooth_device_client_->GetProperties(
1581 dbus::ObjectPath(FakeBluetoothDeviceClient::kMicrosoftMousePath)); 1581 dbus::ObjectPath(FakeBluetoothDeviceClient::kConnectUnpairablePath));
1582 ASSERT_TRUE(properties->trusted.value()); 1582 ASSERT_TRUE(properties->trusted.value());
1583 1583
1584 // Install an observer; expect the DeviceRemoved method to be called 1584 // Install an observer; expect the DeviceRemoved method to be called
1585 // with the device we remove. 1585 // with the device we remove.
1586 TestObserver observer(adapter_); 1586 TestObserver observer(adapter_);
1587 adapter_->AddObserver(&observer); 1587 adapter_->AddObserver(&observer);
1588 1588
1589 device->Forget( 1589 device->Forget(
1590 base::Bind(&BluetoothChromeOSTest::ErrorCallback, 1590 base::Bind(&BluetoothChromeOSTest::ErrorCallback,
1591 base::Unretained(this))); 1591 base::Unretained(this)));
1592 EXPECT_EQ(0, error_callback_count_); 1592 EXPECT_EQ(0, error_callback_count_);
1593 1593
1594 EXPECT_EQ(1, observer.device_removed_count_); 1594 EXPECT_EQ(1, observer.device_removed_count_);
1595 EXPECT_EQ(FakeBluetoothDeviceClient::kMicrosoftMouseAddress, 1595 EXPECT_EQ(FakeBluetoothDeviceClient::kConnectUnpairableAddress,
1596 observer.last_device_address_); 1596 observer.last_device_address_);
1597 1597
1598 // GetDevices shouldn't return the device either. 1598 // GetDevices shouldn't return the device either.
1599 device = adapter_->GetDevice( 1599 device = adapter_->GetDevice(
1600 FakeBluetoothDeviceClient::kMicrosoftMouseAddress); 1600 FakeBluetoothDeviceClient::kConnectUnpairableAddress);
1601 EXPECT_FALSE(device != NULL); 1601 EXPECT_FALSE(device != NULL);
1602 } 1602 }
1603 1603
1604 TEST_F(BluetoothChromeOSTest, ConnectPairedDevice) { 1604 TEST_F(BluetoothChromeOSTest, ConnectPairedDevice) {
1605 GetAdapter(); 1605 GetAdapter();
1606 1606
1607 BluetoothDevice* device = adapter_->GetDevice( 1607 BluetoothDevice* device = adapter_->GetDevice(
1608 FakeBluetoothDeviceClient::kPairedDeviceAddress); 1608 FakeBluetoothDeviceClient::kPairedDeviceAddress);
1609 ASSERT_TRUE(device != NULL); 1609 ASSERT_TRUE(device != NULL);
1610 ASSERT_TRUE(device->IsPaired()); 1610 ASSERT_TRUE(device->IsPaired());
(...skipping 20 matching lines...) Expand all
1631 1631
1632 EXPECT_TRUE(device->IsConnected()); 1632 EXPECT_TRUE(device->IsConnected());
1633 EXPECT_FALSE(device->IsConnecting()); 1633 EXPECT_FALSE(device->IsConnecting());
1634 } 1634 }
1635 1635
1636 TEST_F(BluetoothChromeOSTest, ConnectUnpairableDevice) { 1636 TEST_F(BluetoothChromeOSTest, ConnectUnpairableDevice) {
1637 GetAdapter(); 1637 GetAdapter();
1638 DiscoverDevices(); 1638 DiscoverDevices();
1639 1639
1640 BluetoothDevice* device = adapter_->GetDevice( 1640 BluetoothDevice* device = adapter_->GetDevice(
1641 FakeBluetoothDeviceClient::kMicrosoftMouseAddress); 1641 FakeBluetoothDeviceClient::kConnectUnpairableAddress);
1642 ASSERT_TRUE(device != NULL); 1642 ASSERT_TRUE(device != NULL);
1643 ASSERT_FALSE(device->IsPaired()); 1643 ASSERT_FALSE(device->IsPaired());
1644 1644
1645 TestObserver observer(adapter_); 1645 TestObserver observer(adapter_);
1646 adapter_->AddObserver(&observer); 1646 adapter_->AddObserver(&observer);
1647 1647
1648 // Connect without a pairing delegate; since the device does not require 1648 // Connect without a pairing delegate; since the device does not require
1649 // pairing, this should succeed and the device should become connected. 1649 // pairing, this should succeed and the device should become connected.
1650 device->Connect( 1650 device->Connect(
1651 NULL, 1651 NULL,
1652 base::Bind(&BluetoothChromeOSTest::Callback, 1652 base::Bind(&BluetoothChromeOSTest::Callback,
1653 base::Unretained(this)), 1653 base::Unretained(this)),
1654 base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback, 1654 base::Bind(&BluetoothChromeOSTest::ConnectErrorCallback,
1655 base::Unretained(this))); 1655 base::Unretained(this)));
1656 1656
1657 EXPECT_EQ(1, callback_count_); 1657 EXPECT_EQ(1, callback_count_);
1658 EXPECT_EQ(0, error_callback_count_); 1658 EXPECT_EQ(0, error_callback_count_);
1659 1659
1660 // Two changes for connecting, one for connected, one for for trusted after 1660 // Two changes for connecting, one for connected, one for for trusted after
1661 // connection, and one for the reconnect mode (IsConnectable). 1661 // connection, and one for the reconnect mode (IsConnectable).
1662 EXPECT_EQ(5, observer.device_changed_count_); 1662 EXPECT_EQ(5, observer.device_changed_count_);
1663 EXPECT_EQ(device, observer.last_device_); 1663 EXPECT_EQ(device, observer.last_device_);
1664 1664
1665 EXPECT_TRUE(device->IsConnected()); 1665 EXPECT_TRUE(device->IsConnected());
1666 EXPECT_FALSE(device->IsConnecting()); 1666 EXPECT_FALSE(device->IsConnecting());
1667 1667
1668 // Make sure the trusted property has been set to true. 1668 // Make sure the trusted property has been set to true.
1669 FakeBluetoothDeviceClient::Properties* properties = 1669 FakeBluetoothDeviceClient::Properties* properties =
1670 fake_bluetooth_device_client_->GetProperties( 1670 fake_bluetooth_device_client_->GetProperties(
1671 dbus::ObjectPath(FakeBluetoothDeviceClient::kMicrosoftMousePath)); 1671 dbus::ObjectPath(FakeBluetoothDeviceClient::kConnectUnpairablePath));
1672 EXPECT_TRUE(properties->trusted.value()); 1672 EXPECT_TRUE(properties->trusted.value());
1673 1673
1674 // Verify is a HID device and is not connectable. 1674 // Verify is a HID device and is not connectable.
1675 BluetoothDevice::ServiceList uuids = device->GetServices(); 1675 BluetoothDevice::ServiceList uuids = device->GetServices();
1676 ASSERT_EQ(1U, uuids.size()); 1676 ASSERT_EQ(1U, uuids.size());
1677 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb"); 1677 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb");
1678 EXPECT_FALSE(device->IsConnectable()); 1678 EXPECT_FALSE(device->IsConnectable());
1679 } 1679 }
1680 1680
1681 TEST_F(BluetoothChromeOSTest, ConnectConnectedDevice) { 1681 TEST_F(BluetoothChromeOSTest, ConnectConnectedDevice) {
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
1720 1720
1721 EXPECT_TRUE(device->IsConnected()); 1721 EXPECT_TRUE(device->IsConnected());
1722 EXPECT_FALSE(device->IsConnecting()); 1722 EXPECT_FALSE(device->IsConnecting());
1723 } 1723 }
1724 1724
1725 TEST_F(BluetoothChromeOSTest, ConnectDeviceFails) { 1725 TEST_F(BluetoothChromeOSTest, ConnectDeviceFails) {
1726 GetAdapter(); 1726 GetAdapter();
1727 DiscoverDevices(); 1727 DiscoverDevices();
1728 1728
1729 BluetoothDevice* device = adapter_->GetDevice( 1729 BluetoothDevice* device = adapter_->GetDevice(
1730 FakeBluetoothDeviceClient::kAppleMouseAddress); 1730 FakeBluetoothDeviceClient::kLegacyAutopairAddress);
1731 ASSERT_TRUE(device != NULL); 1731 ASSERT_TRUE(device != NULL);
1732 ASSERT_FALSE(device->IsPaired()); 1732 ASSERT_FALSE(device->IsPaired());
1733 1733
1734 TestObserver observer(adapter_); 1734 TestObserver observer(adapter_);
1735 adapter_->AddObserver(&observer); 1735 adapter_->AddObserver(&observer);
1736 1736
1737 // Connect without a pairing delegate; since the device requires pairing, 1737 // Connect without a pairing delegate; since the device requires pairing,
1738 // this should fail with an error. 1738 // this should fail with an error.
1739 device->Connect( 1739 device->Connect(
1740 NULL, 1740 NULL,
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
1816 base::Unretained(this))); 1816 base::Unretained(this)));
1817 1817
1818 EXPECT_EQ(0, callback_count_); 1818 EXPECT_EQ(0, callback_count_);
1819 EXPECT_EQ(1, error_callback_count_); 1819 EXPECT_EQ(1, error_callback_count_);
1820 1820
1821 EXPECT_EQ(0, observer.device_changed_count_); 1821 EXPECT_EQ(0, observer.device_changed_count_);
1822 1822
1823 EXPECT_FALSE(device->IsConnected()); 1823 EXPECT_FALSE(device->IsConnected());
1824 } 1824 }
1825 1825
1826 TEST_F(BluetoothChromeOSTest, PairAppleMouse) { 1826 TEST_F(BluetoothChromeOSTest, PairLegacyAutopair) {
1827 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 1827 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
1828 1828
1829 GetAdapter(); 1829 GetAdapter();
1830 DiscoverDevices(); 1830 DiscoverDevices();
1831 1831
1832 // The Apple Mouse requires no PIN or Passkey to pair; this is equivalent 1832 // The Legacy Autopair device requires no PIN or Passkey to pair because
1833 // to Simple Secure Pairing or a device with a fixed 0000 PIN. 1833 // the daemon provides 0000 to the device for us.
1834 BluetoothDevice* device = adapter_->GetDevice( 1834 BluetoothDevice* device = adapter_->GetDevice(
1835 FakeBluetoothDeviceClient::kAppleMouseAddress); 1835 FakeBluetoothDeviceClient::kLegacyAutopairAddress);
1836 ASSERT_TRUE(device != NULL); 1836 ASSERT_TRUE(device != NULL);
1837 ASSERT_FALSE(device->IsPaired()); 1837 ASSERT_FALSE(device->IsPaired());
1838 1838
1839 TestObserver observer(adapter_); 1839 TestObserver observer(adapter_);
1840 adapter_->AddObserver(&observer); 1840 adapter_->AddObserver(&observer);
1841 1841
1842 TestPairingDelegate pairing_delegate; 1842 TestPairingDelegate pairing_delegate;
1843 device->Connect( 1843 device->Connect(
1844 &pairing_delegate, 1844 &pairing_delegate,
1845 base::Bind(&BluetoothChromeOSTest::Callback, 1845 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 22 matching lines...) Expand all
1868 1868
1869 // Verify is a HID device and is connectable. 1869 // Verify is a HID device and is connectable.
1870 BluetoothDevice::ServiceList uuids = device->GetServices(); 1870 BluetoothDevice::ServiceList uuids = device->GetServices();
1871 ASSERT_EQ(1U, uuids.size()); 1871 ASSERT_EQ(1U, uuids.size());
1872 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb"); 1872 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb");
1873 EXPECT_TRUE(device->IsConnectable()); 1873 EXPECT_TRUE(device->IsConnectable());
1874 1874
1875 // Make sure the trusted property has been set to true. 1875 // Make sure the trusted property has been set to true.
1876 FakeBluetoothDeviceClient::Properties* properties = 1876 FakeBluetoothDeviceClient::Properties* properties =
1877 fake_bluetooth_device_client_->GetProperties( 1877 fake_bluetooth_device_client_->GetProperties(
1878 dbus::ObjectPath(FakeBluetoothDeviceClient::kAppleMousePath)); 1878 dbus::ObjectPath(FakeBluetoothDeviceClient::kLegacyAutopairPath));
1879 EXPECT_TRUE(properties->trusted.value()); 1879 EXPECT_TRUE(properties->trusted.value());
1880 } 1880 }
1881 1881
1882 TEST_F(BluetoothChromeOSTest, PairAppleKeyboard) { 1882 TEST_F(BluetoothChromeOSTest, PairDisplayPinCode) {
1883 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 1883 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
1884 1884
1885 GetAdapter(); 1885 GetAdapter();
1886 DiscoverDevices(); 1886 DiscoverDevices();
1887 1887
1888 // The Apple Keyboard requires that we display a randomly generated 1888 // Requires that we display a randomly generated PIN on the screen.
1889 // PIN on the screen.
1890 BluetoothDevice* device = adapter_->GetDevice( 1889 BluetoothDevice* device = adapter_->GetDevice(
1891 FakeBluetoothDeviceClient::kAppleKeyboardAddress); 1890 FakeBluetoothDeviceClient::kDisplayPinCodeAddress);
1892 ASSERT_TRUE(device != NULL); 1891 ASSERT_TRUE(device != NULL);
1893 ASSERT_FALSE(device->IsPaired()); 1892 ASSERT_FALSE(device->IsPaired());
1894 1893
1895 TestObserver observer(adapter_); 1894 TestObserver observer(adapter_);
1896 adapter_->AddObserver(&observer); 1895 adapter_->AddObserver(&observer);
1897 1896
1898 TestPairingDelegate pairing_delegate; 1897 TestPairingDelegate pairing_delegate;
1899 device->Connect( 1898 device->Connect(
1900 &pairing_delegate, 1899 &pairing_delegate,
1901 base::Bind(&BluetoothChromeOSTest::Callback, 1900 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 24 matching lines...) Expand all
1926 1925
1927 // Verify is a HID device and is connectable. 1926 // Verify is a HID device and is connectable.
1928 BluetoothDevice::ServiceList uuids = device->GetServices(); 1927 BluetoothDevice::ServiceList uuids = device->GetServices();
1929 ASSERT_EQ(1U, uuids.size()); 1928 ASSERT_EQ(1U, uuids.size());
1930 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb"); 1929 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb");
1931 EXPECT_TRUE(device->IsConnectable()); 1930 EXPECT_TRUE(device->IsConnectable());
1932 1931
1933 // Make sure the trusted property has been set to true. 1932 // Make sure the trusted property has been set to true.
1934 FakeBluetoothDeviceClient::Properties* properties = 1933 FakeBluetoothDeviceClient::Properties* properties =
1935 fake_bluetooth_device_client_->GetProperties( 1934 fake_bluetooth_device_client_->GetProperties(
1936 dbus::ObjectPath(FakeBluetoothDeviceClient::kAppleKeyboardPath)); 1935 dbus::ObjectPath(FakeBluetoothDeviceClient::kDisplayPinCodePath));
1937 EXPECT_TRUE(properties->trusted.value()); 1936 EXPECT_TRUE(properties->trusted.value());
1938 } 1937 }
1939 1938
1940 TEST_F(BluetoothChromeOSTest, PairMotorolaKeyboard) { 1939 TEST_F(BluetoothChromeOSTest, PairDisplayPasskey) {
1941 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 1940 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
1942 1941
1943 GetAdapter(); 1942 GetAdapter();
1944 DiscoverDevices(); 1943 DiscoverDevices();
1945 1944
1946 // The Motorola Keyboard requires that we display a randomly generated 1945 // Requires that we display a randomly generated Passkey on the screen,
1947 // Passkey on the screen, and notifies us as it's typed in. 1946 // and notifies us as it's typed in.
1948 BluetoothDevice* device = adapter_->GetDevice( 1947 BluetoothDevice* device = adapter_->GetDevice(
1949 FakeBluetoothDeviceClient::kMotorolaKeyboardAddress); 1948 FakeBluetoothDeviceClient::kDisplayPasskeyAddress);
1950 ASSERT_TRUE(device != NULL); 1949 ASSERT_TRUE(device != NULL);
1951 ASSERT_FALSE(device->IsPaired()); 1950 ASSERT_FALSE(device->IsPaired());
1952 1951
1953 TestObserver observer(adapter_); 1952 TestObserver observer(adapter_);
1954 adapter_->AddObserver(&observer); 1953 adapter_->AddObserver(&observer);
1955 1954
1956 TestPairingDelegate pairing_delegate; 1955 TestPairingDelegate pairing_delegate;
1957 device->Connect( 1956 device->Connect(
1958 &pairing_delegate, 1957 &pairing_delegate,
1959 base::Bind(&BluetoothChromeOSTest::Callback, 1958 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
1999 EXPECT_TRUE(device->IsConnected()); 1998 EXPECT_TRUE(device->IsConnected());
2000 EXPECT_FALSE(device->IsConnecting()); 1999 EXPECT_FALSE(device->IsConnecting());
2001 2000
2002 EXPECT_TRUE(device->IsPaired()); 2001 EXPECT_TRUE(device->IsPaired());
2003 2002
2004 // Verify is a HID device. 2003 // Verify is a HID device.
2005 BluetoothDevice::ServiceList uuids = device->GetServices(); 2004 BluetoothDevice::ServiceList uuids = device->GetServices();
2006 ASSERT_EQ(1U, uuids.size()); 2005 ASSERT_EQ(1U, uuids.size());
2007 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb"); 2006 EXPECT_EQ(uuids[0], "00001124-0000-1000-8000-00805f9b34fb");
2008 2007
2009 // Fake MotorolaKeyboard is not connectable. 2008 // And usually not connectable.
2010 EXPECT_FALSE(device->IsConnectable()); 2009 EXPECT_FALSE(device->IsConnectable());
2011 2010
2012 // Make sure the trusted property has been set to true. 2011 // Make sure the trusted property has been set to true.
2013 FakeBluetoothDeviceClient::Properties* properties = 2012 FakeBluetoothDeviceClient::Properties* properties =
2014 fake_bluetooth_device_client_->GetProperties( 2013 fake_bluetooth_device_client_->GetProperties(
2015 dbus::ObjectPath(FakeBluetoothDeviceClient::kMotorolaKeyboardPath)); 2014 dbus::ObjectPath(FakeBluetoothDeviceClient::kDisplayPasskeyPath));
2016 EXPECT_TRUE(properties->trusted.value()); 2015 EXPECT_TRUE(properties->trusted.value());
2017 } 2016 }
2018 2017
2019 TEST_F(BluetoothChromeOSTest, PairSonyHeadphones) { 2018 TEST_F(BluetoothChromeOSTest, PairRequestPinCode) {
2020 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2019 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2021 2020
2022 GetAdapter(); 2021 GetAdapter();
2023 DiscoverDevices(); 2022 DiscoverDevices();
2024 2023
2025 // The Sony Headphones fake requires that the user enters a PIN for them. 2024 // Requires that the user enters a PIN for them.
2026 BluetoothDevice* device = adapter_->GetDevice( 2025 BluetoothDevice* device = adapter_->GetDevice(
2027 FakeBluetoothDeviceClient::kSonyHeadphonesAddress); 2026 FakeBluetoothDeviceClient::kRequestPinCodeAddress);
2028 ASSERT_TRUE(device != NULL); 2027 ASSERT_TRUE(device != NULL);
2029 ASSERT_FALSE(device->IsPaired()); 2028 ASSERT_FALSE(device->IsPaired());
2030 2029
2031 TestObserver observer(adapter_); 2030 TestObserver observer(adapter_);
2032 adapter_->AddObserver(&observer); 2031 adapter_->AddObserver(&observer);
2033 2032
2034 TestPairingDelegate pairing_delegate; 2033 TestPairingDelegate pairing_delegate;
2035 device->Connect( 2034 device->Connect(
2036 &pairing_delegate, 2035 &pairing_delegate,
2037 base::Bind(&BluetoothChromeOSTest::Callback, 2036 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 25 matching lines...) Expand all
2063 // Verify is not a HID device. 2062 // Verify is not a HID device.
2064 BluetoothDevice::ServiceList uuids = device->GetServices(); 2063 BluetoothDevice::ServiceList uuids = device->GetServices();
2065 ASSERT_EQ(0U, uuids.size()); 2064 ASSERT_EQ(0U, uuids.size());
2066 2065
2067 // Non HID devices are always connectable. 2066 // Non HID devices are always connectable.
2068 EXPECT_TRUE(device->IsConnectable()); 2067 EXPECT_TRUE(device->IsConnectable());
2069 2068
2070 // Make sure the trusted property has been set to true. 2069 // Make sure the trusted property has been set to true.
2071 FakeBluetoothDeviceClient::Properties* properties = 2070 FakeBluetoothDeviceClient::Properties* properties =
2072 fake_bluetooth_device_client_->GetProperties( 2071 fake_bluetooth_device_client_->GetProperties(
2073 dbus::ObjectPath(FakeBluetoothDeviceClient::kSonyHeadphonesPath)); 2072 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath));
2074 EXPECT_TRUE(properties->trusted.value()); 2073 EXPECT_TRUE(properties->trusted.value());
2075 } 2074 }
2076 2075
2077 TEST_F(BluetoothChromeOSTest, PairPhone) { 2076 TEST_F(BluetoothChromeOSTest, PairConfirmPasskey) {
2078 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2077 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2079 2078
2080 GetAdapter(); 2079 GetAdapter();
2081 DiscoverDevices(); 2080 DiscoverDevices();
2082 2081
2083 // The fake phone requests that we confirm a displayed passkey. 2082 // Requests that we confirm a displayed passkey.
2084 BluetoothDevice* device = adapter_->GetDevice( 2083 BluetoothDevice* device = adapter_->GetDevice(
2085 FakeBluetoothDeviceClient::kPhoneAddress); 2084 FakeBluetoothDeviceClient::kConfirmPasskeyAddress);
2086 ASSERT_TRUE(device != NULL); 2085 ASSERT_TRUE(device != NULL);
2087 ASSERT_FALSE(device->IsPaired()); 2086 ASSERT_FALSE(device->IsPaired());
2088 2087
2089 TestObserver observer(adapter_); 2088 TestObserver observer(adapter_);
2090 adapter_->AddObserver(&observer); 2089 adapter_->AddObserver(&observer);
2091 2090
2092 TestPairingDelegate pairing_delegate; 2091 TestPairingDelegate pairing_delegate;
2093 device->Connect( 2092 device->Connect(
2094 &pairing_delegate, 2093 &pairing_delegate,
2095 base::Bind(&BluetoothChromeOSTest::Callback, 2094 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 22 matching lines...) Expand all
2118 EXPECT_FALSE(device->IsConnecting()); 2117 EXPECT_FALSE(device->IsConnecting());
2119 2118
2120 EXPECT_TRUE(device->IsPaired()); 2119 EXPECT_TRUE(device->IsPaired());
2121 2120
2122 // Non HID devices are always connectable. 2121 // Non HID devices are always connectable.
2123 EXPECT_TRUE(device->IsConnectable()); 2122 EXPECT_TRUE(device->IsConnectable());
2124 2123
2125 // Make sure the trusted property has been set to true. 2124 // Make sure the trusted property has been set to true.
2126 FakeBluetoothDeviceClient::Properties* properties = 2125 FakeBluetoothDeviceClient::Properties* properties =
2127 fake_bluetooth_device_client_->GetProperties( 2126 fake_bluetooth_device_client_->GetProperties(
2128 dbus::ObjectPath(FakeBluetoothDeviceClient::kPhonePath)); 2127 dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath));
2129 EXPECT_TRUE(properties->trusted.value()); 2128 EXPECT_TRUE(properties->trusted.value());
2130 } 2129 }
2131 2130
2132 TEST_F(BluetoothChromeOSTest, PairWeirdDevice) { 2131 TEST_F(BluetoothChromeOSTest, PairRequestPasskey) {
2133 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2132 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2134 2133
2135 GetAdapter(); 2134 GetAdapter();
2136 DiscoverDevices(); 2135 DiscoverDevices();
2137 2136
2138 // Use the "weird device" fake that requires that the user enters a Passkey, 2137 // Requires that the user enters a Passkey, this would be some kind of
2139 // this would be some kind of device that has a display, but doesn't use 2138 // device that has a display, but doesn't use "just works" - maybe a car?
2140 // "just works" - maybe a car?
2141 BluetoothDevice* device = adapter_->GetDevice( 2139 BluetoothDevice* device = adapter_->GetDevice(
2142 FakeBluetoothDeviceClient::kWeirdDeviceAddress); 2140 FakeBluetoothDeviceClient::kRequestPasskeyAddress);
2143 ASSERT_TRUE(device != NULL); 2141 ASSERT_TRUE(device != NULL);
2144 ASSERT_FALSE(device->IsPaired()); 2142 ASSERT_FALSE(device->IsPaired());
2145 2143
2146 TestObserver observer(adapter_); 2144 TestObserver observer(adapter_);
2147 adapter_->AddObserver(&observer); 2145 adapter_->AddObserver(&observer);
2148 2146
2149 TestPairingDelegate pairing_delegate; 2147 TestPairingDelegate pairing_delegate;
2150 device->Connect( 2148 device->Connect(
2151 &pairing_delegate, 2149 &pairing_delegate,
2152 base::Bind(&BluetoothChromeOSTest::Callback, 2150 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2174 EXPECT_FALSE(device->IsConnecting()); 2172 EXPECT_FALSE(device->IsConnecting());
2175 2173
2176 EXPECT_TRUE(device->IsPaired()); 2174 EXPECT_TRUE(device->IsPaired());
2177 2175
2178 // Non HID devices are always connectable. 2176 // Non HID devices are always connectable.
2179 EXPECT_TRUE(device->IsConnectable()); 2177 EXPECT_TRUE(device->IsConnectable());
2180 2178
2181 // Make sure the trusted property has been set to true. 2179 // Make sure the trusted property has been set to true.
2182 FakeBluetoothDeviceClient::Properties* properties = 2180 FakeBluetoothDeviceClient::Properties* properties =
2183 fake_bluetooth_device_client_->GetProperties( 2181 fake_bluetooth_device_client_->GetProperties(
2184 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath)); 2182 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath));
2185 EXPECT_TRUE(properties->trusted.value()); 2183 EXPECT_TRUE(properties->trusted.value());
2186 } 2184 }
2187 2185
2188 TEST_F(BluetoothChromeOSTest, PairBoseSpeakers) { 2186 TEST_F(BluetoothChromeOSTest, PairJustWorks) {
2189 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2187 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2190 2188
2191 GetAdapter(); 2189 GetAdapter();
2192 DiscoverDevices(); 2190 DiscoverDevices();
2193 2191
2194 // Use the "bose speakers" fake that uses just-works pairing, since this is 2192 // Uses just-works pairing, since this is an outgoing pairing, no delegate
2195 // an outgoing pairing, no delegate interaction is required. 2193 // interaction is required.
2196 BluetoothDevice* device = adapter_->GetDevice( 2194 BluetoothDevice* device = adapter_->GetDevice(
2197 FakeBluetoothDeviceClient::kBoseSpeakersAddress); 2195 FakeBluetoothDeviceClient::kJustWorksAddress);
2198 ASSERT_TRUE(device != NULL); 2196 ASSERT_TRUE(device != NULL);
2199 ASSERT_FALSE(device->IsPaired()); 2197 ASSERT_FALSE(device->IsPaired());
2200 2198
2201 TestObserver observer(adapter_); 2199 TestObserver observer(adapter_);
2202 adapter_->AddObserver(&observer); 2200 adapter_->AddObserver(&observer);
2203 2201
2204 TestPairingDelegate pairing_delegate; 2202 TestPairingDelegate pairing_delegate;
2205 device->Connect( 2203 device->Connect(
2206 &pairing_delegate, 2204 &pairing_delegate,
2207 base::Bind(&BluetoothChromeOSTest::Callback, 2205 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 17 matching lines...) Expand all
2225 EXPECT_FALSE(device->IsConnecting()); 2223 EXPECT_FALSE(device->IsConnecting());
2226 2224
2227 EXPECT_TRUE(device->IsPaired()); 2225 EXPECT_TRUE(device->IsPaired());
2228 2226
2229 // Non HID devices are always connectable. 2227 // Non HID devices are always connectable.
2230 EXPECT_TRUE(device->IsConnectable()); 2228 EXPECT_TRUE(device->IsConnectable());
2231 2229
2232 // Make sure the trusted property has been set to true. 2230 // Make sure the trusted property has been set to true.
2233 FakeBluetoothDeviceClient::Properties* properties = 2231 FakeBluetoothDeviceClient::Properties* properties =
2234 fake_bluetooth_device_client_->GetProperties( 2232 fake_bluetooth_device_client_->GetProperties(
2235 dbus::ObjectPath(FakeBluetoothDeviceClient::kBoseSpeakersPath)); 2233 dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath));
2236 EXPECT_TRUE(properties->trusted.value()); 2234 EXPECT_TRUE(properties->trusted.value());
2237 } 2235 }
2238 2236
2239 TEST_F(BluetoothChromeOSTest, PairUnpairableDeviceFails) { 2237 TEST_F(BluetoothChromeOSTest, PairUnpairableDeviceFails) {
2240 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2238 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2241 2239
2242 GetAdapter(); 2240 GetAdapter();
2243 DiscoverDevice(FakeBluetoothDeviceClient::kUnconnectableDeviceAddress); 2241 DiscoverDevice(FakeBluetoothDeviceClient::kUnconnectableDeviceAddress);
2244 2242
2245 BluetoothDevice* device = adapter_->GetDevice( 2243 BluetoothDevice* device = adapter_->GetDevice(
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
2366 } 2364 }
2367 2365
2368 TEST_F(BluetoothChromeOSTest, PairingRejectedAtPinCode) { 2366 TEST_F(BluetoothChromeOSTest, PairingRejectedAtPinCode) {
2369 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2367 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2370 2368
2371 GetAdapter(); 2369 GetAdapter();
2372 DiscoverDevices(); 2370 DiscoverDevices();
2373 2371
2374 // Reject the pairing after we receive a request for the PIN code. 2372 // Reject the pairing after we receive a request for the PIN code.
2375 BluetoothDevice* device = adapter_->GetDevice( 2373 BluetoothDevice* device = adapter_->GetDevice(
2376 FakeBluetoothDeviceClient::kSonyHeadphonesAddress); 2374 FakeBluetoothDeviceClient::kRequestPinCodeAddress);
2377 ASSERT_TRUE(device != NULL); 2375 ASSERT_TRUE(device != NULL);
2378 ASSERT_FALSE(device->IsPaired()); 2376 ASSERT_FALSE(device->IsPaired());
2379 2377
2380 TestObserver observer(adapter_); 2378 TestObserver observer(adapter_);
2381 adapter_->AddObserver(&observer); 2379 adapter_->AddObserver(&observer);
2382 2380
2383 TestPairingDelegate pairing_delegate; 2381 TestPairingDelegate pairing_delegate;
2384 device->Connect( 2382 device->Connect(
2385 &pairing_delegate, 2383 &pairing_delegate,
2386 base::Bind(&BluetoothChromeOSTest::Callback, 2384 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2408 } 2406 }
2409 2407
2410 TEST_F(BluetoothChromeOSTest, PairingCancelledAtPinCode) { 2408 TEST_F(BluetoothChromeOSTest, PairingCancelledAtPinCode) {
2411 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2409 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2412 2410
2413 GetAdapter(); 2411 GetAdapter();
2414 DiscoverDevices(); 2412 DiscoverDevices();
2415 2413
2416 // Cancel the pairing after we receive a request for the PIN code. 2414 // Cancel the pairing after we receive a request for the PIN code.
2417 BluetoothDevice* device = adapter_->GetDevice( 2415 BluetoothDevice* device = adapter_->GetDevice(
2418 FakeBluetoothDeviceClient::kSonyHeadphonesAddress); 2416 FakeBluetoothDeviceClient::kRequestPinCodeAddress);
2419 ASSERT_TRUE(device != NULL); 2417 ASSERT_TRUE(device != NULL);
2420 ASSERT_FALSE(device->IsPaired()); 2418 ASSERT_FALSE(device->IsPaired());
2421 2419
2422 TestObserver observer(adapter_); 2420 TestObserver observer(adapter_);
2423 adapter_->AddObserver(&observer); 2421 adapter_->AddObserver(&observer);
2424 2422
2425 TestPairingDelegate pairing_delegate; 2423 TestPairingDelegate pairing_delegate;
2426 device->Connect( 2424 device->Connect(
2427 &pairing_delegate, 2425 &pairing_delegate,
2428 base::Bind(&BluetoothChromeOSTest::Callback, 2426 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2450 } 2448 }
2451 2449
2452 TEST_F(BluetoothChromeOSTest, PairingRejectedAtPasskey) { 2450 TEST_F(BluetoothChromeOSTest, PairingRejectedAtPasskey) {
2453 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2451 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2454 2452
2455 GetAdapter(); 2453 GetAdapter();
2456 DiscoverDevices(); 2454 DiscoverDevices();
2457 2455
2458 // Reject the pairing after we receive a request for the passkey. 2456 // Reject the pairing after we receive a request for the passkey.
2459 BluetoothDevice* device = adapter_->GetDevice( 2457 BluetoothDevice* device = adapter_->GetDevice(
2460 FakeBluetoothDeviceClient::kWeirdDeviceAddress); 2458 FakeBluetoothDeviceClient::kRequestPasskeyAddress);
2461 ASSERT_TRUE(device != NULL); 2459 ASSERT_TRUE(device != NULL);
2462 ASSERT_FALSE(device->IsPaired()); 2460 ASSERT_FALSE(device->IsPaired());
2463 2461
2464 TestObserver observer(adapter_); 2462 TestObserver observer(adapter_);
2465 adapter_->AddObserver(&observer); 2463 adapter_->AddObserver(&observer);
2466 2464
2467 TestPairingDelegate pairing_delegate; 2465 TestPairingDelegate pairing_delegate;
2468 device->Connect( 2466 device->Connect(
2469 &pairing_delegate, 2467 &pairing_delegate,
2470 base::Bind(&BluetoothChromeOSTest::Callback, 2468 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2492 } 2490 }
2493 2491
2494 TEST_F(BluetoothChromeOSTest, PairingCancelledAtPasskey) { 2492 TEST_F(BluetoothChromeOSTest, PairingCancelledAtPasskey) {
2495 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2493 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2496 2494
2497 GetAdapter(); 2495 GetAdapter();
2498 DiscoverDevices(); 2496 DiscoverDevices();
2499 2497
2500 // Cancel the pairing after we receive a request for the passkey. 2498 // Cancel the pairing after we receive a request for the passkey.
2501 BluetoothDevice* device = adapter_->GetDevice( 2499 BluetoothDevice* device = adapter_->GetDevice(
2502 FakeBluetoothDeviceClient::kWeirdDeviceAddress); 2500 FakeBluetoothDeviceClient::kRequestPasskeyAddress);
2503 ASSERT_TRUE(device != NULL); 2501 ASSERT_TRUE(device != NULL);
2504 ASSERT_FALSE(device->IsPaired()); 2502 ASSERT_FALSE(device->IsPaired());
2505 2503
2506 TestObserver observer(adapter_); 2504 TestObserver observer(adapter_);
2507 adapter_->AddObserver(&observer); 2505 adapter_->AddObserver(&observer);
2508 2506
2509 TestPairingDelegate pairing_delegate; 2507 TestPairingDelegate pairing_delegate;
2510 device->Connect( 2508 device->Connect(
2511 &pairing_delegate, 2509 &pairing_delegate,
2512 base::Bind(&BluetoothChromeOSTest::Callback, 2510 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2534 } 2532 }
2535 2533
2536 TEST_F(BluetoothChromeOSTest, PairingRejectedAtConfirmation) { 2534 TEST_F(BluetoothChromeOSTest, PairingRejectedAtConfirmation) {
2537 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2535 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2538 2536
2539 GetAdapter(); 2537 GetAdapter();
2540 DiscoverDevices(); 2538 DiscoverDevices();
2541 2539
2542 // Reject the pairing after we receive a request for passkey confirmation. 2540 // Reject the pairing after we receive a request for passkey confirmation.
2543 BluetoothDevice* device = adapter_->GetDevice( 2541 BluetoothDevice* device = adapter_->GetDevice(
2544 FakeBluetoothDeviceClient::kPhoneAddress); 2542 FakeBluetoothDeviceClient::kConfirmPasskeyAddress);
2545 ASSERT_TRUE(device != NULL); 2543 ASSERT_TRUE(device != NULL);
2546 ASSERT_FALSE(device->IsPaired()); 2544 ASSERT_FALSE(device->IsPaired());
2547 2545
2548 TestObserver observer(adapter_); 2546 TestObserver observer(adapter_);
2549 adapter_->AddObserver(&observer); 2547 adapter_->AddObserver(&observer);
2550 2548
2551 TestPairingDelegate pairing_delegate; 2549 TestPairingDelegate pairing_delegate;
2552 device->Connect( 2550 device->Connect(
2553 &pairing_delegate, 2551 &pairing_delegate,
2554 base::Bind(&BluetoothChromeOSTest::Callback, 2552 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2576 } 2574 }
2577 2575
2578 TEST_F(BluetoothChromeOSTest, PairingCancelledAtConfirmation) { 2576 TEST_F(BluetoothChromeOSTest, PairingCancelledAtConfirmation) {
2579 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2577 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2580 2578
2581 GetAdapter(); 2579 GetAdapter();
2582 DiscoverDevices(); 2580 DiscoverDevices();
2583 2581
2584 // Cancel the pairing after we receive a request for the passkey. 2582 // Cancel the pairing after we receive a request for the passkey.
2585 BluetoothDevice* device = adapter_->GetDevice( 2583 BluetoothDevice* device = adapter_->GetDevice(
2586 FakeBluetoothDeviceClient::kPhoneAddress); 2584 FakeBluetoothDeviceClient::kConfirmPasskeyAddress);
2587 ASSERT_TRUE(device != NULL); 2585 ASSERT_TRUE(device != NULL);
2588 ASSERT_FALSE(device->IsPaired()); 2586 ASSERT_FALSE(device->IsPaired());
2589 2587
2590 TestObserver observer(adapter_); 2588 TestObserver observer(adapter_);
2591 adapter_->AddObserver(&observer); 2589 adapter_->AddObserver(&observer);
2592 2590
2593 TestPairingDelegate pairing_delegate; 2591 TestPairingDelegate pairing_delegate;
2594 device->Connect( 2592 device->Connect(
2595 &pairing_delegate, 2593 &pairing_delegate,
2596 base::Bind(&BluetoothChromeOSTest::Callback, 2594 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 21 matching lines...) Expand all
2618 } 2616 }
2619 2617
2620 TEST_F(BluetoothChromeOSTest, PairingCancelledInFlight) { 2618 TEST_F(BluetoothChromeOSTest, PairingCancelledInFlight) {
2621 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2619 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2622 2620
2623 GetAdapter(); 2621 GetAdapter();
2624 DiscoverDevices(); 2622 DiscoverDevices();
2625 2623
2626 // Cancel the pairing while we're waiting for the remote host. 2624 // Cancel the pairing while we're waiting for the remote host.
2627 BluetoothDevice* device = adapter_->GetDevice( 2625 BluetoothDevice* device = adapter_->GetDevice(
2628 FakeBluetoothDeviceClient::kAppleMouseAddress); 2626 FakeBluetoothDeviceClient::kLegacyAutopairAddress);
2629 ASSERT_TRUE(device != NULL); 2627 ASSERT_TRUE(device != NULL);
2630 ASSERT_FALSE(device->IsPaired()); 2628 ASSERT_FALSE(device->IsPaired());
2631 2629
2632 TestObserver observer(adapter_); 2630 TestObserver observer(adapter_);
2633 adapter_->AddObserver(&observer); 2631 adapter_->AddObserver(&observer);
2634 2632
2635 TestPairingDelegate pairing_delegate; 2633 TestPairingDelegate pairing_delegate;
2636 device->Connect( 2634 device->Connect(
2637 &pairing_delegate, 2635 &pairing_delegate,
2638 base::Bind(&BluetoothChromeOSTest::Callback, 2636 base::Bind(&BluetoothChromeOSTest::Callback,
(...skipping 12 matching lines...) Expand all
2651 EXPECT_EQ(1, error_callback_count_); 2649 EXPECT_EQ(1, error_callback_count_);
2652 EXPECT_EQ(BluetoothDevice::ERROR_AUTH_CANCELED, last_connect_error_); 2650 EXPECT_EQ(BluetoothDevice::ERROR_AUTH_CANCELED, last_connect_error_);
2653 2651
2654 // Should be no changes except connecting going true and false. 2652 // Should be no changes except connecting going true and false.
2655 EXPECT_EQ(2, observer.device_changed_count_); 2653 EXPECT_EQ(2, observer.device_changed_count_);
2656 EXPECT_FALSE(device->IsConnected()); 2654 EXPECT_FALSE(device->IsConnected());
2657 EXPECT_FALSE(device->IsConnecting()); 2655 EXPECT_FALSE(device->IsConnecting());
2658 EXPECT_FALSE(device->IsPaired()); 2656 EXPECT_FALSE(device->IsPaired());
2659 } 2657 }
2660 2658
2661 TEST_F(BluetoothChromeOSTest, IncomingPairSonyHeadphones) { 2659 TEST_F(BluetoothChromeOSTest, IncomingPairRequestPinCode) {
2662 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2660 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2663 2661
2664 GetAdapter(); 2662 GetAdapter();
2665 2663
2666 TestPairingDelegate pairing_delegate; 2664 TestPairingDelegate pairing_delegate;
2667 adapter_->AddPairingDelegate( 2665 adapter_->AddPairingDelegate(
2668 &pairing_delegate, 2666 &pairing_delegate,
2669 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH); 2667 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
2670 2668
2671 // The sony headphones requests that we provide a PIN code. 2669 // Requires that we provide a PIN code.
2672 fake_bluetooth_device_client_->CreateDevice( 2670 fake_bluetooth_device_client_->CreateDevice(
2673 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2671 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2674 dbus::ObjectPath(FakeBluetoothDeviceClient::kSonyHeadphonesPath)); 2672 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath));
2675 BluetoothDevice* device = adapter_->GetDevice( 2673 BluetoothDevice* device = adapter_->GetDevice(
2676 FakeBluetoothDeviceClient::kSonyHeadphonesAddress); 2674 FakeBluetoothDeviceClient::kRequestPinCodeAddress);
2677 ASSERT_TRUE(device != NULL); 2675 ASSERT_TRUE(device != NULL);
2678 ASSERT_FALSE(device->IsPaired()); 2676 ASSERT_FALSE(device->IsPaired());
2679 2677
2680 TestObserver observer(adapter_); 2678 TestObserver observer(adapter_);
2681 adapter_->AddObserver(&observer); 2679 adapter_->AddObserver(&observer);
2682 2680
2683 fake_bluetooth_device_client_->SimulatePairing( 2681 fake_bluetooth_device_client_->SimulatePairing(
2684 dbus::ObjectPath(FakeBluetoothDeviceClient::kSonyHeadphonesPath), 2682 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath),
2685 true, 2683 true,
2686 base::Bind(&BluetoothChromeOSTest::Callback, 2684 base::Bind(&BluetoothChromeOSTest::Callback,
2687 base::Unretained(this)), 2685 base::Unretained(this)),
2688 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2686 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2689 base::Unretained(this))); 2687 base::Unretained(this)));
2690 2688
2691 EXPECT_EQ(1, pairing_delegate.call_count_); 2689 EXPECT_EQ(1, pairing_delegate.call_count_);
2692 EXPECT_EQ(1, pairing_delegate.request_pincode_count_); 2690 EXPECT_EQ(1, pairing_delegate.request_pincode_count_);
2693 2691
2694 // Set the PIN. 2692 // Set the PIN.
2695 device->SetPinCode("1234"); 2693 device->SetPinCode("1234");
2696 message_loop_.Run(); 2694 message_loop_.Run();
2697 2695
2698 EXPECT_EQ(1, callback_count_); 2696 EXPECT_EQ(1, callback_count_);
2699 EXPECT_EQ(0, error_callback_count_); 2697 EXPECT_EQ(0, error_callback_count_);
2700 2698
2701 // One for paired. 2699 // One for paired.
2702 EXPECT_EQ(1, observer.device_changed_count_); 2700 EXPECT_EQ(1, observer.device_changed_count_);
2703 EXPECT_EQ(device, observer.last_device_); 2701 EXPECT_EQ(device, observer.last_device_);
2704 2702
2705 EXPECT_TRUE(device->IsPaired()); 2703 EXPECT_TRUE(device->IsPaired());
2706 2704
2707 // No pairing context should remain on the device. 2705 // No pairing context should remain on the device.
2708 BluetoothDeviceChromeOS* device_chromeos = 2706 BluetoothDeviceChromeOS* device_chromeos =
2709 static_cast<BluetoothDeviceChromeOS*>(device); 2707 static_cast<BluetoothDeviceChromeOS*>(device);
2710 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2708 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2711 } 2709 }
2712 2710
2713 TEST_F(BluetoothChromeOSTest, IncomingPairPhone) { 2711 TEST_F(BluetoothChromeOSTest, IncomingPairConfirmPasskey) {
2714 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2712 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2715 2713
2716 GetAdapter(); 2714 GetAdapter();
2717 2715
2718 TestPairingDelegate pairing_delegate; 2716 TestPairingDelegate pairing_delegate;
2719 adapter_->AddPairingDelegate( 2717 adapter_->AddPairingDelegate(
2720 &pairing_delegate, 2718 &pairing_delegate,
2721 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH); 2719 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
2722 2720
2723 // The fake phone requests that we confirm a displayed passkey. 2721 // Requests that we confirm a displayed passkey.
2724 fake_bluetooth_device_client_->CreateDevice( 2722 fake_bluetooth_device_client_->CreateDevice(
2725 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2723 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2726 dbus::ObjectPath(FakeBluetoothDeviceClient::kPhonePath)); 2724 dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath));
2727 BluetoothDevice* device = adapter_->GetDevice( 2725 BluetoothDevice* device = adapter_->GetDevice(
2728 FakeBluetoothDeviceClient::kPhoneAddress); 2726 FakeBluetoothDeviceClient::kConfirmPasskeyAddress);
2729 ASSERT_TRUE(device != NULL); 2727 ASSERT_TRUE(device != NULL);
2730 ASSERT_FALSE(device->IsPaired()); 2728 ASSERT_FALSE(device->IsPaired());
2731 2729
2732 TestObserver observer(adapter_); 2730 TestObserver observer(adapter_);
2733 adapter_->AddObserver(&observer); 2731 adapter_->AddObserver(&observer);
2734 2732
2735 fake_bluetooth_device_client_->SimulatePairing( 2733 fake_bluetooth_device_client_->SimulatePairing(
2736 dbus::ObjectPath(FakeBluetoothDeviceClient::kPhonePath), 2734 dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath),
2737 true, 2735 true,
2738 base::Bind(&BluetoothChromeOSTest::Callback, 2736 base::Bind(&BluetoothChromeOSTest::Callback,
2739 base::Unretained(this)), 2737 base::Unretained(this)),
2740 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2738 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2741 base::Unretained(this))); 2739 base::Unretained(this)));
2742 2740
2743 EXPECT_EQ(1, pairing_delegate.call_count_); 2741 EXPECT_EQ(1, pairing_delegate.call_count_);
2744 EXPECT_EQ(1, pairing_delegate.confirm_passkey_count_); 2742 EXPECT_EQ(1, pairing_delegate.confirm_passkey_count_);
2745 EXPECT_EQ(123456U, pairing_delegate.last_passkey_); 2743 EXPECT_EQ(123456U, pairing_delegate.last_passkey_);
2746 2744
2747 // Confirm the passkey. 2745 // Confirm the passkey.
2748 device->ConfirmPairing(); 2746 device->ConfirmPairing();
2749 message_loop_.Run(); 2747 message_loop_.Run();
2750 2748
2751 EXPECT_EQ(1, callback_count_); 2749 EXPECT_EQ(1, callback_count_);
2752 EXPECT_EQ(0, error_callback_count_); 2750 EXPECT_EQ(0, error_callback_count_);
2753 2751
2754 // One for paired. 2752 // One for paired.
2755 EXPECT_EQ(1, observer.device_changed_count_); 2753 EXPECT_EQ(1, observer.device_changed_count_);
2756 EXPECT_EQ(device, observer.last_device_); 2754 EXPECT_EQ(device, observer.last_device_);
2757 2755
2758 EXPECT_TRUE(device->IsPaired()); 2756 EXPECT_TRUE(device->IsPaired());
2759 2757
2760 // No pairing context should remain on the device. 2758 // No pairing context should remain on the device.
2761 BluetoothDeviceChromeOS* device_chromeos = 2759 BluetoothDeviceChromeOS* device_chromeos =
2762 static_cast<BluetoothDeviceChromeOS*>(device); 2760 static_cast<BluetoothDeviceChromeOS*>(device);
2763 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2761 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2764 } 2762 }
2765 2763
2766 TEST_F(BluetoothChromeOSTest, IncomingPairWeirdDevice) { 2764 TEST_F(BluetoothChromeOSTest, IncomingPairRequestPasskey) {
2767 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2765 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2768 2766
2769 GetAdapter(); 2767 GetAdapter();
2770 2768
2771 TestPairingDelegate pairing_delegate; 2769 TestPairingDelegate pairing_delegate;
2772 adapter_->AddPairingDelegate( 2770 adapter_->AddPairingDelegate(
2773 &pairing_delegate, 2771 &pairing_delegate,
2774 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH); 2772 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
2775 2773
2776 // The weird device requests that we provide a Passkey. 2774 // Requests that we provide a Passkey.
2777 fake_bluetooth_device_client_->CreateDevice( 2775 fake_bluetooth_device_client_->CreateDevice(
2778 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2776 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2779 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath)); 2777 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath));
2780 BluetoothDevice* device = adapter_->GetDevice( 2778 BluetoothDevice* device = adapter_->GetDevice(
2781 FakeBluetoothDeviceClient::kWeirdDeviceAddress); 2779 FakeBluetoothDeviceClient::kRequestPasskeyAddress);
2782 ASSERT_TRUE(device != NULL); 2780 ASSERT_TRUE(device != NULL);
2783 ASSERT_FALSE(device->IsPaired()); 2781 ASSERT_FALSE(device->IsPaired());
2784 2782
2785 TestObserver observer(adapter_); 2783 TestObserver observer(adapter_);
2786 adapter_->AddObserver(&observer); 2784 adapter_->AddObserver(&observer);
2787 2785
2788 fake_bluetooth_device_client_->SimulatePairing( 2786 fake_bluetooth_device_client_->SimulatePairing(
2789 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath), 2787 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath),
2790 true, 2788 true,
2791 base::Bind(&BluetoothChromeOSTest::Callback, 2789 base::Bind(&BluetoothChromeOSTest::Callback,
2792 base::Unretained(this)), 2790 base::Unretained(this)),
2793 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2791 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2794 base::Unretained(this))); 2792 base::Unretained(this)));
2795 2793
2796 EXPECT_EQ(1, pairing_delegate.call_count_); 2794 EXPECT_EQ(1, pairing_delegate.call_count_);
2797 EXPECT_EQ(1, pairing_delegate.request_passkey_count_); 2795 EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
2798 2796
2799 // Set the Passkey. 2797 // Set the Passkey.
2800 device->SetPasskey(1234); 2798 device->SetPasskey(1234);
2801 message_loop_.Run(); 2799 message_loop_.Run();
2802 2800
2803 EXPECT_EQ(1, callback_count_); 2801 EXPECT_EQ(1, callback_count_);
2804 EXPECT_EQ(0, error_callback_count_); 2802 EXPECT_EQ(0, error_callback_count_);
2805 2803
2806 // One for paired. 2804 // One for paired.
2807 EXPECT_EQ(1, observer.device_changed_count_); 2805 EXPECT_EQ(1, observer.device_changed_count_);
2808 EXPECT_EQ(device, observer.last_device_); 2806 EXPECT_EQ(device, observer.last_device_);
2809 2807
2810 EXPECT_TRUE(device->IsPaired()); 2808 EXPECT_TRUE(device->IsPaired());
2811 2809
2812 // No pairing context should remain on the device. 2810 // No pairing context should remain on the device.
2813 BluetoothDeviceChromeOS* device_chromeos = 2811 BluetoothDeviceChromeOS* device_chromeos =
2814 static_cast<BluetoothDeviceChromeOS*>(device); 2812 static_cast<BluetoothDeviceChromeOS*>(device);
2815 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2813 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2816 } 2814 }
2817 2815
2818 TEST_F(BluetoothChromeOSTest, IncomingPairBoseSpeakers) { 2816 TEST_F(BluetoothChromeOSTest, IncomingPairJustWorks) {
2819 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2817 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2820 2818
2821 GetAdapter(); 2819 GetAdapter();
2822 2820
2823 TestPairingDelegate pairing_delegate; 2821 TestPairingDelegate pairing_delegate;
2824 adapter_->AddPairingDelegate( 2822 adapter_->AddPairingDelegate(
2825 &pairing_delegate, 2823 &pairing_delegate,
2826 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH); 2824 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
2827 2825
2828 // The Bose Speakers use just-works pairing so require authorization when 2826 // Uses just-works pairing so, sinec this an incoming pairing, require
2829 // the request is incoming. 2827 // authorization from the user.
2830 fake_bluetooth_device_client_->CreateDevice( 2828 fake_bluetooth_device_client_->CreateDevice(
2831 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2829 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2832 dbus::ObjectPath(FakeBluetoothDeviceClient::kBoseSpeakersPath)); 2830 dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath));
2833 BluetoothDevice* device = adapter_->GetDevice( 2831 BluetoothDevice* device = adapter_->GetDevice(
2834 FakeBluetoothDeviceClient::kBoseSpeakersAddress); 2832 FakeBluetoothDeviceClient::kJustWorksAddress);
2835 ASSERT_TRUE(device != NULL); 2833 ASSERT_TRUE(device != NULL);
2836 ASSERT_FALSE(device->IsPaired()); 2834 ASSERT_FALSE(device->IsPaired());
2837 2835
2838 TestObserver observer(adapter_); 2836 TestObserver observer(adapter_);
2839 adapter_->AddObserver(&observer); 2837 adapter_->AddObserver(&observer);
2840 2838
2841 fake_bluetooth_device_client_->SimulatePairing( 2839 fake_bluetooth_device_client_->SimulatePairing(
2842 dbus::ObjectPath(FakeBluetoothDeviceClient::kBoseSpeakersPath), 2840 dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath),
2843 true, 2841 true,
2844 base::Bind(&BluetoothChromeOSTest::Callback, 2842 base::Bind(&BluetoothChromeOSTest::Callback,
2845 base::Unretained(this)), 2843 base::Unretained(this)),
2846 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2844 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2847 base::Unretained(this))); 2845 base::Unretained(this)));
2848 2846
2849 EXPECT_EQ(1, pairing_delegate.call_count_); 2847 EXPECT_EQ(1, pairing_delegate.call_count_);
2850 EXPECT_EQ(1, pairing_delegate.authorize_pairing_count_); 2848 EXPECT_EQ(1, pairing_delegate.authorize_pairing_count_);
2851 2849
2852 // Confirm the pairing. 2850 // Confirm the pairing.
2853 device->ConfirmPairing(); 2851 device->ConfirmPairing();
2854 message_loop_.Run(); 2852 message_loop_.Run();
2855 2853
2856 EXPECT_EQ(1, callback_count_); 2854 EXPECT_EQ(1, callback_count_);
2857 EXPECT_EQ(0, error_callback_count_); 2855 EXPECT_EQ(0, error_callback_count_);
2858 2856
2859 // One for paired. 2857 // One for paired.
2860 EXPECT_EQ(1, observer.device_changed_count_); 2858 EXPECT_EQ(1, observer.device_changed_count_);
2861 EXPECT_EQ(device, observer.last_device_); 2859 EXPECT_EQ(device, observer.last_device_);
2862 2860
2863 EXPECT_TRUE(device->IsPaired()); 2861 EXPECT_TRUE(device->IsPaired());
2864 2862
2865 // No pairing context should remain on the device. 2863 // No pairing context should remain on the device.
2866 BluetoothDeviceChromeOS* device_chromeos = 2864 BluetoothDeviceChromeOS* device_chromeos =
2867 static_cast<BluetoothDeviceChromeOS*>(device); 2865 static_cast<BluetoothDeviceChromeOS*>(device);
2868 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2866 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2869 } 2867 }
2870 2868
2871 TEST_F(BluetoothChromeOSTest, IncomingPairSonyHeadphonesWithoutDelegate) { 2869 TEST_F(BluetoothChromeOSTest, IncomingPairRequestPinCodeWithoutDelegate) {
2872 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2870 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2873 2871
2874 GetAdapter(); 2872 GetAdapter();
2875 2873
2876 // The Sony Headphones requests that we provide a PIN Code, without a 2874 // Requires that we provide a PIN Code, without a pairing delegate,
2877 // pairing delegate, that will be rejected. 2875 // that will be rejected.
2878 fake_bluetooth_device_client_->CreateDevice( 2876 fake_bluetooth_device_client_->CreateDevice(
2879 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2877 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2880 dbus::ObjectPath(FakeBluetoothDeviceClient::kSonyHeadphonesPath)); 2878 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath));
2881 BluetoothDevice* device = adapter_->GetDevice( 2879 BluetoothDevice* device = adapter_->GetDevice(
2882 FakeBluetoothDeviceClient::kSonyHeadphonesAddress); 2880 FakeBluetoothDeviceClient::kRequestPinCodeAddress);
2883 ASSERT_TRUE(device != NULL); 2881 ASSERT_TRUE(device != NULL);
2884 ASSERT_FALSE(device->IsPaired()); 2882 ASSERT_FALSE(device->IsPaired());
2885 2883
2886 TestObserver observer(adapter_); 2884 TestObserver observer(adapter_);
2887 adapter_->AddObserver(&observer); 2885 adapter_->AddObserver(&observer);
2888 2886
2889 fake_bluetooth_device_client_->SimulatePairing( 2887 fake_bluetooth_device_client_->SimulatePairing(
2890 dbus::ObjectPath(FakeBluetoothDeviceClient::kSonyHeadphonesPath), 2888 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPinCodePath),
2891 true, 2889 true,
2892 base::Bind(&BluetoothChromeOSTest::Callback, 2890 base::Bind(&BluetoothChromeOSTest::Callback,
2893 base::Unretained(this)), 2891 base::Unretained(this)),
2894 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2892 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2895 base::Unretained(this))); 2893 base::Unretained(this)));
2896 2894
2897 message_loop_.Run(); 2895 message_loop_.Run();
2898 2896
2899 EXPECT_EQ(0, callback_count_); 2897 EXPECT_EQ(0, callback_count_);
2900 EXPECT_EQ(1, error_callback_count_); 2898 EXPECT_EQ(1, error_callback_count_);
2901 EXPECT_EQ(bluetooth_device::kErrorAuthenticationRejected, last_client_error_); 2899 EXPECT_EQ(bluetooth_device::kErrorAuthenticationRejected, last_client_error_);
2902 2900
2903 // No changes should be observer. 2901 // No changes should be observer.
2904 EXPECT_EQ(0, observer.device_changed_count_); 2902 EXPECT_EQ(0, observer.device_changed_count_);
2905 2903
2906 EXPECT_FALSE(device->IsPaired()); 2904 EXPECT_FALSE(device->IsPaired());
2907 2905
2908 // No pairing context should remain on the device. 2906 // No pairing context should remain on the device.
2909 BluetoothDeviceChromeOS* device_chromeos = 2907 BluetoothDeviceChromeOS* device_chromeos =
2910 static_cast<BluetoothDeviceChromeOS*>(device); 2908 static_cast<BluetoothDeviceChromeOS*>(device);
2911 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2909 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2912 } 2910 }
2913 2911
2914 TEST_F(BluetoothChromeOSTest, IncomingPairPhoneWithoutDelegate) { 2912 TEST_F(BluetoothChromeOSTest, IncomingPairConfirmPasskeyWithoutDelegate) {
2915 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2913 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2916 2914
2917 GetAdapter(); 2915 GetAdapter();
2918 2916
2919 // The fake phone requests that we confirm a displayed passkey, without a 2917 // Requests that we confirm a displayed passkey, without a pairing delegate,
2920 // pairing delegate, that will be rejected. 2918 // that will be rejected.
2921 fake_bluetooth_device_client_->CreateDevice( 2919 fake_bluetooth_device_client_->CreateDevice(
2922 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2920 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2923 dbus::ObjectPath(FakeBluetoothDeviceClient::kPhonePath)); 2921 dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath));
2924 BluetoothDevice* device = adapter_->GetDevice( 2922 BluetoothDevice* device = adapter_->GetDevice(
2925 FakeBluetoothDeviceClient::kPhoneAddress); 2923 FakeBluetoothDeviceClient::kConfirmPasskeyAddress);
2926 ASSERT_TRUE(device != NULL); 2924 ASSERT_TRUE(device != NULL);
2927 ASSERT_FALSE(device->IsPaired()); 2925 ASSERT_FALSE(device->IsPaired());
2928 2926
2929 TestObserver observer(adapter_); 2927 TestObserver observer(adapter_);
2930 adapter_->AddObserver(&observer); 2928 adapter_->AddObserver(&observer);
2931 2929
2932 fake_bluetooth_device_client_->SimulatePairing( 2930 fake_bluetooth_device_client_->SimulatePairing(
2933 dbus::ObjectPath(FakeBluetoothDeviceClient::kPhonePath), 2931 dbus::ObjectPath(FakeBluetoothDeviceClient::kConfirmPasskeyPath),
2934 true, 2932 true,
2935 base::Bind(&BluetoothChromeOSTest::Callback, 2933 base::Bind(&BluetoothChromeOSTest::Callback,
2936 base::Unretained(this)), 2934 base::Unretained(this)),
2937 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2935 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2938 base::Unretained(this))); 2936 base::Unretained(this)));
2939 2937
2940 message_loop_.Run(); 2938 message_loop_.Run();
2941 2939
2942 EXPECT_EQ(0, callback_count_); 2940 EXPECT_EQ(0, callback_count_);
2943 EXPECT_EQ(1, error_callback_count_); 2941 EXPECT_EQ(1, error_callback_count_);
2944 EXPECT_EQ(bluetooth_device::kErrorAuthenticationRejected, last_client_error_); 2942 EXPECT_EQ(bluetooth_device::kErrorAuthenticationRejected, last_client_error_);
2945 2943
2946 // No changes should be observer. 2944 // No changes should be observer.
2947 EXPECT_EQ(0, observer.device_changed_count_); 2945 EXPECT_EQ(0, observer.device_changed_count_);
2948 2946
2949 EXPECT_FALSE(device->IsPaired()); 2947 EXPECT_FALSE(device->IsPaired());
2950 2948
2951 // No pairing context should remain on the device. 2949 // No pairing context should remain on the device.
2952 BluetoothDeviceChromeOS* device_chromeos = 2950 BluetoothDeviceChromeOS* device_chromeos =
2953 static_cast<BluetoothDeviceChromeOS*>(device); 2951 static_cast<BluetoothDeviceChromeOS*>(device);
2954 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2952 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2955 } 2953 }
2956 2954
2957 TEST_F(BluetoothChromeOSTest, IncomingPairWeirdDeviceWithoutDelegate) { 2955 TEST_F(BluetoothChromeOSTest, IncomingPairRequestPasskeyWithoutDelegate) {
2958 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2956 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
2959 2957
2960 GetAdapter(); 2958 GetAdapter();
2961 2959
2962 // The weird device requests that we provide a displayed passkey, without a 2960 // Requests that we provide a displayed passkey, without a pairing delegate,
2963 // pairing delegate, that will be rejected. 2961 // that will be rejected.
2964 fake_bluetooth_device_client_->CreateDevice( 2962 fake_bluetooth_device_client_->CreateDevice(
2965 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 2963 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
2966 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath)); 2964 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath));
2967 BluetoothDevice* device = adapter_->GetDevice( 2965 BluetoothDevice* device = adapter_->GetDevice(
2968 FakeBluetoothDeviceClient::kWeirdDeviceAddress); 2966 FakeBluetoothDeviceClient::kRequestPasskeyAddress);
2969 ASSERT_TRUE(device != NULL); 2967 ASSERT_TRUE(device != NULL);
2970 ASSERT_FALSE(device->IsPaired()); 2968 ASSERT_FALSE(device->IsPaired());
2971 2969
2972 TestObserver observer(adapter_); 2970 TestObserver observer(adapter_);
2973 adapter_->AddObserver(&observer); 2971 adapter_->AddObserver(&observer);
2974 2972
2975 fake_bluetooth_device_client_->SimulatePairing( 2973 fake_bluetooth_device_client_->SimulatePairing(
2976 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath), 2974 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath),
2977 true, 2975 true,
2978 base::Bind(&BluetoothChromeOSTest::Callback, 2976 base::Bind(&BluetoothChromeOSTest::Callback,
2979 base::Unretained(this)), 2977 base::Unretained(this)),
2980 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 2978 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
2981 base::Unretained(this))); 2979 base::Unretained(this)));
2982 2980
2983 message_loop_.Run(); 2981 message_loop_.Run();
2984 2982
2985 EXPECT_EQ(0, callback_count_); 2983 EXPECT_EQ(0, callback_count_);
2986 EXPECT_EQ(1, error_callback_count_); 2984 EXPECT_EQ(1, error_callback_count_);
2987 EXPECT_EQ(bluetooth_device::kErrorAuthenticationRejected, last_client_error_); 2985 EXPECT_EQ(bluetooth_device::kErrorAuthenticationRejected, last_client_error_);
2988 2986
2989 // No changes should be observer. 2987 // No changes should be observer.
2990 EXPECT_EQ(0, observer.device_changed_count_); 2988 EXPECT_EQ(0, observer.device_changed_count_);
2991 2989
2992 EXPECT_FALSE(device->IsPaired()); 2990 EXPECT_FALSE(device->IsPaired());
2993 2991
2994 // No pairing context should remain on the device. 2992 // No pairing context should remain on the device.
2995 BluetoothDeviceChromeOS* device_chromeos = 2993 BluetoothDeviceChromeOS* device_chromeos =
2996 static_cast<BluetoothDeviceChromeOS*>(device); 2994 static_cast<BluetoothDeviceChromeOS*>(device);
2997 EXPECT_TRUE(device_chromeos->GetPairing() == NULL); 2995 EXPECT_TRUE(device_chromeos->GetPairing() == NULL);
2998 } 2996 }
2999 2997
3000 TEST_F(BluetoothChromeOSTest, IncomingPairBoseSpeakersWithoutDelegate) { 2998 TEST_F(BluetoothChromeOSTest, IncomingPairJustWorksWithoutDelegate) {
3001 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 2999 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
3002 3000
3003 GetAdapter(); 3001 GetAdapter();
3004 3002
3005 // The Bose Speakers uses just-works pairing and thus requires authorization, 3003 // Uses just-works pairing and thus requires authorization for incoming
3006 // without a pairing delegate, that will be rejected. 3004 // pairings, without a pairing delegate, that will be rejected.
3007 fake_bluetooth_device_client_->CreateDevice( 3005 fake_bluetooth_device_client_->CreateDevice(
3008 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 3006 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
3009 dbus::ObjectPath(FakeBluetoothDeviceClient::kBoseSpeakersPath)); 3007 dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath));
3010 BluetoothDevice* device = adapter_->GetDevice( 3008 BluetoothDevice* device = adapter_->GetDevice(
3011 FakeBluetoothDeviceClient::kBoseSpeakersAddress); 3009 FakeBluetoothDeviceClient::kJustWorksAddress);
3012 ASSERT_TRUE(device != NULL); 3010 ASSERT_TRUE(device != NULL);
3013 ASSERT_FALSE(device->IsPaired()); 3011 ASSERT_FALSE(device->IsPaired());
3014 3012
3015 TestObserver observer(adapter_); 3013 TestObserver observer(adapter_);
3016 adapter_->AddObserver(&observer); 3014 adapter_->AddObserver(&observer);
3017 3015
3018 fake_bluetooth_device_client_->SimulatePairing( 3016 fake_bluetooth_device_client_->SimulatePairing(
3019 dbus::ObjectPath(FakeBluetoothDeviceClient::kBoseSpeakersPath), 3017 dbus::ObjectPath(FakeBluetoothDeviceClient::kJustWorksPath),
3020 true, 3018 true,
3021 base::Bind(&BluetoothChromeOSTest::Callback, 3019 base::Bind(&BluetoothChromeOSTest::Callback,
3022 base::Unretained(this)), 3020 base::Unretained(this)),
3023 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 3021 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
3024 base::Unretained(this))); 3022 base::Unretained(this)));
3025 3023
3026 message_loop_.Run(); 3024 message_loop_.Run();
3027 3025
3028 EXPECT_EQ(0, callback_count_); 3026 EXPECT_EQ(0, callback_count_);
3029 EXPECT_EQ(1, error_callback_count_); 3027 EXPECT_EQ(1, error_callback_count_);
(...skipping 13 matching lines...) Expand all
3043 TEST_F(BluetoothChromeOSTest, RemovePairingDelegateDuringPairing) { 3041 TEST_F(BluetoothChromeOSTest, RemovePairingDelegateDuringPairing) {
3044 fake_bluetooth_device_client_->SetSimulationIntervalMs(10); 3042 fake_bluetooth_device_client_->SetSimulationIntervalMs(10);
3045 3043
3046 GetAdapter(); 3044 GetAdapter();
3047 3045
3048 TestPairingDelegate pairing_delegate; 3046 TestPairingDelegate pairing_delegate;
3049 adapter_->AddPairingDelegate( 3047 adapter_->AddPairingDelegate(
3050 &pairing_delegate, 3048 &pairing_delegate,
3051 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH); 3049 BluetoothAdapter::PAIRING_DELEGATE_PRIORITY_HIGH);
3052 3050
3053 // The weird device requests that we provide a Passkey. 3051 // Requests that we provide a Passkey.
3054 fake_bluetooth_device_client_->CreateDevice( 3052 fake_bluetooth_device_client_->CreateDevice(
3055 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath), 3053 dbus::ObjectPath(FakeBluetoothAdapterClient::kAdapterPath),
3056 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath)); 3054 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath));
3057 BluetoothDevice* device = adapter_->GetDevice( 3055 BluetoothDevice* device = adapter_->GetDevice(
3058 FakeBluetoothDeviceClient::kWeirdDeviceAddress); 3056 FakeBluetoothDeviceClient::kRequestPasskeyAddress);
3059 ASSERT_TRUE(device != NULL); 3057 ASSERT_TRUE(device != NULL);
3060 ASSERT_FALSE(device->IsPaired()); 3058 ASSERT_FALSE(device->IsPaired());
3061 3059
3062 TestObserver observer(adapter_); 3060 TestObserver observer(adapter_);
3063 adapter_->AddObserver(&observer); 3061 adapter_->AddObserver(&observer);
3064 3062
3065 fake_bluetooth_device_client_->SimulatePairing( 3063 fake_bluetooth_device_client_->SimulatePairing(
3066 dbus::ObjectPath(FakeBluetoothDeviceClient::kWeirdDevicePath), 3064 dbus::ObjectPath(FakeBluetoothDeviceClient::kRequestPasskeyPath),
3067 true, 3065 true,
3068 base::Bind(&BluetoothChromeOSTest::Callback, 3066 base::Bind(&BluetoothChromeOSTest::Callback,
3069 base::Unretained(this)), 3067 base::Unretained(this)),
3070 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback, 3068 base::Bind(&BluetoothChromeOSTest::DBusErrorCallback,
3071 base::Unretained(this))); 3069 base::Unretained(this)));
3072 3070
3073 EXPECT_EQ(1, pairing_delegate.call_count_); 3071 EXPECT_EQ(1, pairing_delegate.call_count_);
3074 EXPECT_EQ(1, pairing_delegate.request_passkey_count_); 3072 EXPECT_EQ(1, pairing_delegate.request_passkey_count_);
3075 3073
3076 // A pairing context should now be set on the device. 3074 // A pairing context should now be set on the device.
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
3138 3136
3139 // Unknown vendor specification identifier. 3137 // Unknown vendor specification identifier.
3140 properties->modalias.ReplaceValue("chrome:v00E0p2400d0400"); 3138 properties->modalias.ReplaceValue("chrome:v00E0p2400d0400");
3141 3139
3142 EXPECT_EQ(0, device->GetVendorID()); 3140 EXPECT_EQ(0, device->GetVendorID());
3143 EXPECT_EQ(0, device->GetProductID()); 3141 EXPECT_EQ(0, device->GetProductID());
3144 EXPECT_EQ(0, device->GetDeviceID()); 3142 EXPECT_EQ(0, device->GetDeviceID());
3145 } 3143 }
3146 3144
3147 } // namespace chromeos 3145 } // namespace chromeos
OLDNEW
« no previous file with comments | « chromeos/dbus/fake_bluetooth_input_client.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698