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

Unified Diff: chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos_unittest.cc

Issue 11075006: Moved bluetooth adapter files to device/bluetooth/. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: renamed 'bluetooth' target to 'device_bluetooth'. Created 8 years, 2 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 side-by-side diff with in-line comments
Download patch
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

Powered by Google App Engine
This is Rietveld 408576698