| Index: chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos_unittest.cc
|
| diff --git a/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos_unittest.cc b/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos_unittest.cc
|
| deleted file mode 100644
|
| index d909559cc5f53e8d809b5945086884eb3f67fe09..0000000000000000000000000000000000000000
|
| --- a/chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos_unittest.cc
|
| +++ /dev/null
|
| @@ -1,1553 +0,0 @@
|
| -// Copyright (c) 2012 The Chromium Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h"
|
| -#include "chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h"
|
| -#include "chrome/browser/chromeos/bluetooth/bluetooth_adapter_factory.h"
|
| -#include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_adapter.h"
|
| -#include "chromeos/dbus/mock_bluetooth_adapter_client.h"
|
| -#include "chromeos/dbus/mock_bluetooth_manager_client.h"
|
| -#include "chromeos/dbus/mock_dbus_thread_manager.h"
|
| -#include "dbus/object_path.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -using ::testing::_;
|
| -using ::testing::InSequence;
|
| -using ::testing::Return;
|
| -using ::testing::SaveArg;
|
| -
|
| -namespace chromeos {
|
| -
|
| -class BluetoothAdapterChromeOsTest : public testing::Test {
|
| - public:
|
| - virtual void SetUp() {
|
| - MockDBusThreadManager* mock_dbus_thread_manager = new MockDBusThreadManager;
|
| -
|
| - EXPECT_CALL(*mock_dbus_thread_manager, GetSystemBus())
|
| - .WillRepeatedly(Return(reinterpret_cast<dbus::Bus*>(NULL)));
|
| - DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager);
|
| -
|
| - mock_manager_client_ =
|
| - mock_dbus_thread_manager->mock_bluetooth_manager_client();
|
| - mock_adapter_client_ =
|
| - mock_dbus_thread_manager->mock_bluetooth_adapter_client();
|
| -
|
| - set_callback_called_ = false;
|
| - error_callback_called_ = false;
|
| - }
|
| -
|
| - virtual void TearDown() {
|
| - DBusThreadManager::Shutdown();
|
| - }
|
| -
|
| - void SetCallback() {
|
| - set_callback_called_ = true;
|
| - }
|
| -
|
| - void ErrorCallback() {
|
| - error_callback_called_ = true;
|
| - }
|
| -
|
| - protected:
|
| - MockBluetoothManagerClient* mock_manager_client_;
|
| - MockBluetoothAdapterClient* mock_adapter_client_;
|
| -
|
| - bool set_callback_called_;
|
| - bool error_callback_called_;
|
| -};
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterNotPresent) {
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback; make out it failed.
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must not be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - adapter_callback.Run(dbus::ObjectPath(""), false);
|
| -
|
| - // Adapter should not be present.
|
| - EXPECT_FALSE(adapter->IsPresent());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterWithAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged will be called to
|
| - // indicate the adapter is now present.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should be present with the given address.
|
| - EXPECT_TRUE(adapter->IsPresent());
|
| - EXPECT_EQ(adapter_address, adapter->address());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterWithoutAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must not be called
|
| - // yet.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should not be present yet.
|
| - EXPECT_FALSE(adapter->IsPresent());
|
| -
|
| - // Tell the adapter the address now;
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged now must be called.
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.address.name());
|
| -
|
| - // Adapter should be present with the given address.
|
| - EXPECT_TRUE(adapter->IsPresent());
|
| - EXPECT_EQ(adapter_address, adapter->address());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterBecomesPresentWithAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback; make out it failed.
|
| - adapter_callback.Run(dbus::ObjectPath(""), false);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(adapter_path);
|
| -
|
| - // Adapter should be present with the new address.
|
| - EXPECT_TRUE(adapter->IsPresent());
|
| - EXPECT_EQ(adapter_address, adapter->address());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterReplacedWithAddress) {
|
| - const dbus::ObjectPath initial_adapter_path("/fake/hci0");
|
| - const dbus::ObjectPath new_adapter_path("/fake/hci1");
|
| - const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE";
|
| - const std::string new_adapter_address = "BA:C0:11:CO:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties initial_adapter_properties;
|
| - initial_adapter_properties.address.ReplaceValue(initial_adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path))
|
| - .WillRepeatedly(Return(&initial_adapter_properties));
|
| -
|
| - adapter_callback.Run(initial_adapter_path, true);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties new_adapter_properties;
|
| - new_adapter_properties.address.ReplaceValue(new_adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path))
|
| - .WillRepeatedly(Return(&new_adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must be called once
|
| - // with false to indicate the old adapter being removed and once with true
|
| - // to announce the new adapter.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(new_adapter_path);
|
| -
|
| - // Adapter should be present with the new address.
|
| - EXPECT_TRUE(adapter->IsPresent());
|
| - EXPECT_EQ(new_adapter_address, adapter->address());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterBecomesPresentWithoutAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback; make out it failed.
|
| - adapter_callback.Run(dbus::ObjectPath(""), false);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must not be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(adapter_path);
|
| -
|
| - // Adapter should not be present yet.
|
| - EXPECT_FALSE(adapter->IsPresent());
|
| -
|
| - // Tell the adapter the address now;
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged now must be called.
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.address.name());
|
| -
|
| - // Adapter should be present with the new address.
|
| - EXPECT_TRUE(adapter->IsPresent());
|
| - EXPECT_EQ(adapter_address, adapter->address());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterReplacedWithoutAddress) {
|
| - const dbus::ObjectPath initial_adapter_path("/fake/hci0");
|
| - const dbus::ObjectPath new_adapter_path("/fake/hci1");
|
| - const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE";
|
| - const std::string new_adapter_address = "BA:C0:11:CO:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties initial_adapter_properties;
|
| - initial_adapter_properties.address.ReplaceValue(initial_adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path))
|
| - .WillRepeatedly(Return(&initial_adapter_properties));
|
| -
|
| - adapter_callback.Run(initial_adapter_path, true);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties new_adapter_properties;
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path))
|
| - .WillRepeatedly(Return(&new_adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must be called to
|
| - // indicate the adapter has gone away.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(new_adapter_path);
|
| -
|
| - // Adapter should be now marked not present.
|
| - EXPECT_FALSE(adapter->IsPresent());
|
| -
|
| - // Tell the adapter the address now;
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged now must be called.
|
| - new_adapter_properties.address.ReplaceValue(new_adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(new_adapter_path,
|
| - new_adapter_properties.address.name());
|
| -
|
| - // Adapter should be present with the new address.
|
| - EXPECT_TRUE(adapter->IsPresent());
|
| - EXPECT_EQ(new_adapter_address, adapter->address());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterRemoved) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Report that the adapter has been removed;
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged will be called to
|
| - // indicate the adapter is no longer present.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->AdapterRemoved(adapter_path);
|
| -
|
| - // Adapter should be no longer present.
|
| - EXPECT_FALSE(adapter->IsPresent());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterWithoutAddressRemoved) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Report that the adapter has been removed;
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged must not be called
|
| - // since we never should have announced it in the first place.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->AdapterRemoved(adapter_path);
|
| -
|
| - // Adapter should be still no longer present.
|
| - EXPECT_FALSE(adapter->IsPresent());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyInitiallyFalse) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.powered.ReplaceValue(false);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_FALSE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyInitiallyTrue) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyInitiallyTrueWithoutAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set but BluetoothAdapter::Observer::AdapterPoweredChanged
|
| - // should not yet be called.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should not yet have the property value.
|
| - EXPECT_FALSE(adapter->IsPowered());
|
| -
|
| - // Tell the adapter the address now,
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged and
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged now must be called.
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.address.name());
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterPoweredPropertyChanged) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.powered.ReplaceValue(false);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_FALSE(adapter->IsPowered());
|
| -
|
| - // Report that the property has been changed;
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.powered.name());
|
| -
|
| - // Adapter should have the new property values.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterPoweredPropertyUnchanged) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -
|
| - // Report that the property has been changed, but don't change the value;
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged should not be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.powered.name());
|
| -
|
| - // Adapter should still have the same property values.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyChangedWithoutAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set but BluetoothAdapter::Observer::AdapterPoweredChanged
|
| - // should not yet be called.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Tell the adapter that its powered property changed, the observer
|
| - // method should still not be called because there is no address for
|
| - // the adapter so it is not present.
|
| - adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.powered.name());
|
| -
|
| - // Adapter should not yet have the property value.
|
| - EXPECT_FALSE(adapter->IsPowered());
|
| -
|
| - // Tell the adapter the address now,
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged and
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged now must be called.
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.address.name());
|
| -
|
| - // Adapter should now have the correct property value.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyResetOnReplace) {
|
| - const dbus::ObjectPath initial_adapter_path("/fake/hci0");
|
| - const dbus::ObjectPath new_adapter_path("/fake/hci1");
|
| - const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE";
|
| - const std::string new_adapter_address = "00:C0:11:CO:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties initial_adapter_properties;
|
| - initial_adapter_properties.address.ReplaceValue(initial_adapter_address);
|
| - initial_adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path))
|
| - .WillRepeatedly(Return(&initial_adapter_properties));
|
| -
|
| - adapter_callback.Run(initial_adapter_path, true);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties new_adapter_properties;
|
| - new_adapter_properties.address.ReplaceValue(new_adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path))
|
| - .WillRepeatedly(Return(&new_adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - {
|
| - InSequence s;
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| - }
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(new_adapter_path);
|
| -
|
| - // Adapter should have the new property value.
|
| - EXPECT_FALSE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyResetOnReplaceWhenTrue) {
|
| - const dbus::ObjectPath initial_adapter_path("/fake/hci0");
|
| - const dbus::ObjectPath new_adapter_path("/fake/hci1");
|
| - const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE";
|
| - const std::string new_adapter_address = "BA:C0:11:CO:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties initial_adapter_properties;
|
| - initial_adapter_properties.address.ReplaceValue(initial_adapter_address);
|
| - initial_adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path))
|
| - .WillRepeatedly(Return(&initial_adapter_properties));
|
| -
|
| - adapter_callback.Run(initial_adapter_path, true);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties new_adapter_properties;
|
| - new_adapter_properties.address.ReplaceValue(new_adapter_address);
|
| - new_adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path))
|
| - .WillRepeatedly(Return(&new_adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged will be called once
|
| - // to set the value to false for the previous adapter and once to set the
|
| - // value to true for the new adapter.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - {
|
| - InSequence s;
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| - }
|
| -
|
| - {
|
| - InSequence s;
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true))
|
| - .Times(1);
|
| - }
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(new_adapter_path);
|
| -
|
| - // Adapter should have the new property value.
|
| - EXPECT_TRUE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterPoweredPropertyResetOnRemove) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.powered.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Report that the adapter has been removed;
|
| - // BluetoothAdapter::Observer::AdapterPoweredChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->AdapterRemoved(adapter_path);
|
| -
|
| - // Adapter should have the new property value.
|
| - EXPECT_FALSE(adapter->IsPowered());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterSetPowered) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Request that the powered property be changed;
|
| - // MockBluetoothAdapterClient::Set should be called, passing the address
|
| - // of the powered property and a callback to receive the response.
|
| - dbus::PropertySet::SetCallback set_callback;
|
| - EXPECT_CALL(adapter_properties, Set(&adapter_properties.powered, _))
|
| - .WillOnce(SaveArg<1>(&set_callback));
|
| -
|
| - adapter->SetPowered(true,
|
| - base::Bind(&BluetoothAdapterChromeOsTest::SetCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothAdapterChromeOsTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| -
|
| - // Reply to the callback to indicate success, the set callback we provided
|
| - // should be called but the properties should not be refetched.
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .Times(0);
|
| -
|
| - set_callback.Run(true);
|
| -
|
| - EXPECT_TRUE(set_callback_called_);
|
| - EXPECT_FALSE(error_callback_called_);
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterSetPoweredError) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Request that the powered property be changed;
|
| - // MockBluetoothAdapterClient::Set should be called, passing the address
|
| - // of the powered property and a callback to receive the response.
|
| - dbus::PropertySet::SetCallback set_callback;
|
| - EXPECT_CALL(adapter_properties, Set(&adapter_properties.powered, _))
|
| - .WillOnce(SaveArg<1>(&set_callback));
|
| -
|
| - adapter->SetPowered(true,
|
| - base::Bind(&BluetoothAdapterChromeOsTest::SetCallback,
|
| - base::Unretained(this)),
|
| - base::Bind(&BluetoothAdapterChromeOsTest::ErrorCallback,
|
| - base::Unretained(this)));
|
| -
|
| - // Reply to the callback to indicate failure, the error callback we provided
|
| - // should be called but the properties should not be refetched.
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .Times(0);
|
| -
|
| - set_callback.Run(false);
|
| -
|
| - EXPECT_FALSE(set_callback_called_);
|
| - EXPECT_TRUE(error_callback_called_);
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyInitiallyFalse) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.discovering.ReplaceValue(false);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_FALSE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyInitiallyTrue) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyInitiallyTrueWithoutAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set but BluetoothAdapter::Observer::AdapterDiscoveringChanged
|
| - // should not yet be called.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should not yet have the property value.
|
| - EXPECT_FALSE(adapter->IsDiscovering());
|
| -
|
| - // Tell the adapter the address now,
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged and
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged now must be called.
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.address.name());
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterDiscoveringPropertyChanged) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.discovering.ReplaceValue(false);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_FALSE(adapter->IsDiscovering());
|
| -
|
| - // Report that the property has been changed;
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.discovering.name());
|
| -
|
| - // Adapter should have the new property values.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyUnchanged) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Adapter should have the correct property value.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -
|
| - // Report that the property has been changed, but don't change the value;
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged should not be
|
| - // called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.discovering.name());
|
| -
|
| - // Adapter should still have the same property values.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyChangedWithoutAddress) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set but BluetoothAdapter::Observer::AdapterDiscoveringChanged
|
| - // should not yet be called.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| -
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Tell the adapter that its discovering property changed, the observer
|
| - // method should still not be called because there is no address for
|
| - // the adapter so it is not present.
|
| - adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _))
|
| - .Times(0);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.discovering.name());
|
| -
|
| - // Adapter should not yet have the property value.
|
| - EXPECT_FALSE(adapter->IsDiscovering());
|
| -
|
| - // Tell the adapter the address now,
|
| - // BluetoothAdapter::Observer::AdapterPresentChanged and
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged now must be called.
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true))
|
| - .Times(1);
|
| -
|
| - static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos)
|
| - ->AdapterPropertyChanged(adapter_path,
|
| - adapter_properties.address.name());
|
| -
|
| - // Adapter should now have the correct property value.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyResetOnReplace) {
|
| - const dbus::ObjectPath initial_adapter_path("/fake/hci0");
|
| - const dbus::ObjectPath new_adapter_path("/fake/hci1");
|
| - const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE";
|
| - const std::string new_adapter_address = "BA:C0:11:CO:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties initial_adapter_properties;
|
| - initial_adapter_properties.address.ReplaceValue(initial_adapter_address);
|
| - initial_adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path))
|
| - .WillRepeatedly(Return(&initial_adapter_properties));
|
| -
|
| - adapter_callback.Run(initial_adapter_path, true);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties new_adapter_properties;
|
| - new_adapter_properties.address.ReplaceValue(new_adapter_address);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path))
|
| - .WillRepeatedly(Return(&new_adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - {
|
| - InSequence s;
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| - }
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), false))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(new_adapter_path);
|
| -
|
| - // Adapter should have the new property value.
|
| - EXPECT_FALSE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyResetOnReplaceWhenTrue) {
|
| - const dbus::ObjectPath initial_adapter_path("/fake/hci0");
|
| - const dbus::ObjectPath new_adapter_path("/fake/hci1");
|
| - const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE";
|
| - const std::string new_adapter_address = "BA:C0:11:CO:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties initial_adapter_properties;
|
| - initial_adapter_properties.address.ReplaceValue(initial_adapter_address);
|
| - initial_adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path))
|
| - .WillRepeatedly(Return(&initial_adapter_properties));
|
| -
|
| - adapter_callback.Run(initial_adapter_path, true);
|
| -
|
| - // Tell the adapter the default adapter changed;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties new_adapter_properties;
|
| - new_adapter_properties.address.ReplaceValue(new_adapter_address);
|
| - new_adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path))
|
| - .WillRepeatedly(Return(&new_adapter_properties));
|
| -
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called once
|
| - // to set the value to false for the previous adapter and once to set the
|
| - // value to true for the new adapter.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - {
|
| - InSequence s;
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true))
|
| - .Times(1);
|
| - }
|
| -
|
| - {
|
| - InSequence s;
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(),
|
| - false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(),
|
| - true))
|
| - .Times(1);
|
| - }
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->DefaultAdapterChanged(new_adapter_path);
|
| -
|
| - // Adapter should have the new property value.
|
| - EXPECT_TRUE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -TEST_F(BluetoothAdapterChromeOsTest,
|
| - DefaultAdapterDiscoveringPropertyResetOnRemove) {
|
| - const dbus::ObjectPath adapter_path("/fake/hci0");
|
| - const std::string adapter_address = "CA:FE:4A:C0:FE:FE";
|
| -
|
| - // Create the default adapter instance;
|
| - // BluetoothManagerClient::DefaultAdapter will be called once, passing
|
| - // a callback to obtain the adapter path.
|
| - BluetoothManagerClient::AdapterCallback adapter_callback;
|
| - EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_))
|
| - .WillOnce(SaveArg<0>(&adapter_callback));
|
| -
|
| - scoped_refptr<BluetoothAdapter> adapter =
|
| - BluetoothAdapterFactory::DefaultAdapter();
|
| -
|
| - // Call the adapter callback;
|
| - // BluetoothAdapterClient::GetProperties will be called once to obtain
|
| - // the property set.
|
| - MockBluetoothAdapterClient::Properties adapter_properties;
|
| - adapter_properties.address.ReplaceValue(adapter_address);
|
| - adapter_properties.discovering.ReplaceValue(true);
|
| -
|
| - EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path))
|
| - .WillRepeatedly(Return(&adapter_properties));
|
| -
|
| - adapter_callback.Run(adapter_path, true);
|
| -
|
| - // Report that the adapter has been removed;
|
| - // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called.
|
| - MockBluetoothAdapter::Observer adapter_observer;
|
| - adapter->AddObserver(&adapter_observer);
|
| -
|
| - EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false))
|
| - .Times(1);
|
| - EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), false))
|
| - .Times(1);
|
| -
|
| - BluetoothAdapterChromeOs* adapter_chromeos =
|
| - static_cast<BluetoothAdapterChromeOs*>(adapter.get());
|
| -
|
| - static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos)
|
| - ->AdapterRemoved(adapter_path);
|
| -
|
| - // Adapter should have the new property value.
|
| - EXPECT_FALSE(adapter->IsDiscovering());
|
| -}
|
| -
|
| -} // namespace chromeos
|
|
|