| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h" | 5 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter.h" |
| 6 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter_chromeos.h" |
| 7 #include "chrome/browser/chromeos/bluetooth/bluetooth_adapter_factory.h" |
| 6 #include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_adapter.h" | 8 #include "chrome/browser/chromeos/bluetooth/test/mock_bluetooth_adapter.h" |
| 7 #include "chromeos/dbus/mock_bluetooth_adapter_client.h" | 9 #include "chromeos/dbus/mock_bluetooth_adapter_client.h" |
| 8 #include "chromeos/dbus/mock_bluetooth_manager_client.h" | 10 #include "chromeos/dbus/mock_bluetooth_manager_client.h" |
| 9 #include "chromeos/dbus/mock_dbus_thread_manager.h" | 11 #include "chromeos/dbus/mock_dbus_thread_manager.h" |
| 10 #include "dbus/object_path.h" | 12 #include "dbus/object_path.h" |
| 11 #include "testing/gtest/include/gtest/gtest.h" | 13 #include "testing/gtest/include/gtest/gtest.h" |
| 12 | 14 |
| 13 using ::testing::_; | 15 using ::testing::_; |
| 14 using ::testing::InSequence; | 16 using ::testing::InSequence; |
| 15 using ::testing::Return; | 17 using ::testing::Return; |
| 16 using ::testing::SaveArg; | 18 using ::testing::SaveArg; |
| 17 | 19 |
| 18 namespace chromeos { | 20 namespace chromeos { |
| 19 | 21 |
| 20 class BluetoothAdapterTest : public testing::Test { | 22 class BluetoothAdapterChromeOsTest : public testing::Test { |
| 21 public: | 23 public: |
| 22 virtual void SetUp() { | 24 virtual void SetUp() { |
| 23 MockDBusThreadManager* mock_dbus_thread_manager = new MockDBusThreadManager; | 25 MockDBusThreadManager* mock_dbus_thread_manager = new MockDBusThreadManager; |
| 24 | 26 |
| 25 EXPECT_CALL(*mock_dbus_thread_manager, GetSystemBus()) | 27 EXPECT_CALL(*mock_dbus_thread_manager, GetSystemBus()) |
| 26 .WillRepeatedly(Return(reinterpret_cast<dbus::Bus*>(NULL))); | 28 .WillRepeatedly(Return(reinterpret_cast<dbus::Bus*>(NULL))); |
| 27 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); | 29 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager); |
| 28 | 30 |
| 29 mock_manager_client_ = | 31 mock_manager_client_ = |
| 30 mock_dbus_thread_manager->mock_bluetooth_manager_client(); | 32 mock_dbus_thread_manager->mock_bluetooth_manager_client(); |
| (...skipping 17 matching lines...) Expand all Loading... |
| 48 } | 50 } |
| 49 | 51 |
| 50 protected: | 52 protected: |
| 51 MockBluetoothManagerClient* mock_manager_client_; | 53 MockBluetoothManagerClient* mock_manager_client_; |
| 52 MockBluetoothAdapterClient* mock_adapter_client_; | 54 MockBluetoothAdapterClient* mock_adapter_client_; |
| 53 | 55 |
| 54 bool set_callback_called_; | 56 bool set_callback_called_; |
| 55 bool error_callback_called_; | 57 bool error_callback_called_; |
| 56 }; | 58 }; |
| 57 | 59 |
| 58 TEST_F(BluetoothAdapterTest, DefaultAdapterNotPresent) { | 60 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterNotPresent) { |
| 59 // Create the default adapter instance; | 61 // Create the default adapter instance; |
| 60 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 62 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 61 // a callback to obtain the adapter path. | 63 // a callback to obtain the adapter path. |
| 62 BluetoothManagerClient::AdapterCallback adapter_callback; | 64 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 63 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 65 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 64 .WillOnce(SaveArg<0>(&adapter_callback)); | 66 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 65 | 67 |
| 66 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 68 scoped_refptr<BluetoothAdapter> adapter = |
| 69 BluetoothAdapterFactory::DefaultAdapter(); |
| 67 | 70 |
| 68 // Call the adapter callback; make out it failed. | 71 // Call the adapter callback; make out it failed. |
| 69 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called. | 72 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called. |
| 70 MockBluetoothAdapter::Observer adapter_observer; | 73 MockBluetoothAdapter::Observer adapter_observer; |
| 71 adapter->AddObserver(&adapter_observer); | 74 adapter->AddObserver(&adapter_observer); |
| 72 | 75 |
| 73 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) | 76 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) |
| 74 .Times(0); | 77 .Times(0); |
| 75 | 78 |
| 76 adapter_callback.Run(dbus::ObjectPath(""), false); | 79 adapter_callback.Run(dbus::ObjectPath(""), false); |
| 77 | 80 |
| 78 // Adapter should not be present. | 81 // Adapter should not be present. |
| 79 EXPECT_FALSE(adapter->IsPresent()); | 82 EXPECT_FALSE(adapter->IsPresent()); |
| 80 } | 83 } |
| 81 | 84 |
| 82 TEST_F(BluetoothAdapterTest, DefaultAdapterWithAddress) { | 85 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterWithAddress) { |
| 83 const dbus::ObjectPath adapter_path("/fake/hci0"); | 86 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 84 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 87 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 85 | 88 |
| 86 // Create the default adapter instance; | 89 // Create the default adapter instance; |
| 87 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 90 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 88 // a callback to obtain the adapter path. | 91 // a callback to obtain the adapter path. |
| 89 BluetoothManagerClient::AdapterCallback adapter_callback; | 92 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 90 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 93 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 91 .WillOnce(SaveArg<0>(&adapter_callback)); | 94 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 92 | 95 |
| 93 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 96 scoped_refptr<BluetoothAdapter> adapter = |
| 97 BluetoothAdapterFactory::DefaultAdapter(); |
| 94 | 98 |
| 95 // Call the adapter callback; | 99 // Call the adapter callback; |
| 96 // BluetoothAdapterClient::GetProperties will be called once to obtain | 100 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 97 // the property set. | 101 // the property set. |
| 98 MockBluetoothAdapterClient::Properties adapter_properties; | 102 MockBluetoothAdapterClient::Properties adapter_properties; |
| 99 adapter_properties.address.ReplaceValue(adapter_address); | 103 adapter_properties.address.ReplaceValue(adapter_address); |
| 100 | 104 |
| 101 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 105 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 102 .WillRepeatedly(Return(&adapter_properties)); | 106 .WillRepeatedly(Return(&adapter_properties)); |
| 103 | 107 |
| 104 // BluetoothAdapter::Observer::AdapterPresentChanged will be called to | 108 // BluetoothAdapter::Observer::AdapterPresentChanged will be called to |
| 105 // indicate the adapter is now present. | 109 // indicate the adapter is now present. |
| 106 MockBluetoothAdapter::Observer adapter_observer; | 110 MockBluetoothAdapter::Observer adapter_observer; |
| 107 adapter->AddObserver(&adapter_observer); | 111 adapter->AddObserver(&adapter_observer); |
| 108 | 112 |
| 109 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 113 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 110 .Times(1); | 114 .Times(1); |
| 111 | 115 |
| 112 adapter_callback.Run(adapter_path, true); | 116 adapter_callback.Run(adapter_path, true); |
| 113 | 117 |
| 114 // Adapter should be present with the given address. | 118 // Adapter should be present with the given address. |
| 115 EXPECT_TRUE(adapter->IsPresent()); | 119 EXPECT_TRUE(adapter->IsPresent()); |
| 116 EXPECT_EQ(adapter_address, adapter->address()); | 120 EXPECT_EQ(adapter_address, adapter->address()); |
| 117 } | 121 } |
| 118 | 122 |
| 119 TEST_F(BluetoothAdapterTest, DefaultAdapterWithoutAddress) { | 123 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterWithoutAddress) { |
| 120 const dbus::ObjectPath adapter_path("/fake/hci0"); | 124 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 121 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 125 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 122 | 126 |
| 123 // Create the default adapter instance; | 127 // Create the default adapter instance; |
| 124 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 128 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 125 // a callback to obtain the adapter path. | 129 // a callback to obtain the adapter path. |
| 126 BluetoothManagerClient::AdapterCallback adapter_callback; | 130 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 127 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 131 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 128 .WillOnce(SaveArg<0>(&adapter_callback)); | 132 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 129 | 133 |
| 130 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 134 scoped_refptr<BluetoothAdapter> adapter = |
| 135 BluetoothAdapterFactory::DefaultAdapter(); |
| 131 | 136 |
| 132 // Call the adapter callback; | 137 // Call the adapter callback; |
| 133 // BluetoothAdapterClient::GetProperties will be called once to obtain | 138 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 134 // the property set. | 139 // the property set. |
| 135 MockBluetoothAdapterClient::Properties adapter_properties; | 140 MockBluetoothAdapterClient::Properties adapter_properties; |
| 136 | 141 |
| 137 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 142 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 138 .WillRepeatedly(Return(&adapter_properties)); | 143 .WillRepeatedly(Return(&adapter_properties)); |
| 139 | 144 |
| 140 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called | 145 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called |
| 141 // yet. | 146 // yet. |
| 142 MockBluetoothAdapter::Observer adapter_observer; | 147 MockBluetoothAdapter::Observer adapter_observer; |
| 143 adapter->AddObserver(&adapter_observer); | 148 adapter->AddObserver(&adapter_observer); |
| 144 | 149 |
| 145 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) | 150 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) |
| 146 .Times(0); | 151 .Times(0); |
| 147 | 152 |
| 148 adapter_callback.Run(adapter_path, true); | 153 adapter_callback.Run(adapter_path, true); |
| 149 | 154 |
| 150 // Adapter should not be present yet. | 155 // Adapter should not be present yet. |
| 151 EXPECT_FALSE(adapter->IsPresent()); | 156 EXPECT_FALSE(adapter->IsPresent()); |
| 152 | 157 |
| 153 // Tell the adapter the address now; | 158 // Tell the adapter the address now; |
| 154 // BluetoothAdapter::Observer::AdapterPresentChanged now must be called. | 159 // BluetoothAdapter::Observer::AdapterPresentChanged now must be called. |
| 155 adapter_properties.address.ReplaceValue(adapter_address); | 160 adapter_properties.address.ReplaceValue(adapter_address); |
| 156 | 161 |
| 157 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 162 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 158 .Times(1); | 163 .Times(1); |
| 159 | 164 |
| 160 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 165 BluetoothAdapterChromeOs* adapter_chromeos = |
| 166 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 167 |
| 168 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 161 ->AdapterPropertyChanged(adapter_path, | 169 ->AdapterPropertyChanged(adapter_path, |
| 162 adapter_properties.address.name()); | 170 adapter_properties.address.name()); |
| 163 | 171 |
| 164 // Adapter should be present with the given address. | 172 // Adapter should be present with the given address. |
| 165 EXPECT_TRUE(adapter->IsPresent()); | 173 EXPECT_TRUE(adapter->IsPresent()); |
| 166 EXPECT_EQ(adapter_address, adapter->address()); | 174 EXPECT_EQ(adapter_address, adapter->address()); |
| 167 } | 175 } |
| 168 | 176 |
| 169 TEST_F(BluetoothAdapterTest, DefaultAdapterBecomesPresentWithAddress) { | 177 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterBecomesPresentWithAddress) { |
| 170 const dbus::ObjectPath adapter_path("/fake/hci0"); | 178 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 171 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 179 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 172 | 180 |
| 173 // Create the default adapter instance; | 181 // Create the default adapter instance; |
| 174 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 182 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 175 // a callback to obtain the adapter path. | 183 // a callback to obtain the adapter path. |
| 176 BluetoothManagerClient::AdapterCallback adapter_callback; | 184 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 177 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 185 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 178 .WillOnce(SaveArg<0>(&adapter_callback)); | 186 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 179 | 187 |
| 180 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 188 scoped_refptr<BluetoothAdapter> adapter = |
| 189 BluetoothAdapterFactory::DefaultAdapter(); |
| 181 | 190 |
| 182 // Call the adapter callback; make out it failed. | 191 // Call the adapter callback; make out it failed. |
| 183 adapter_callback.Run(dbus::ObjectPath(""), false); | 192 adapter_callback.Run(dbus::ObjectPath(""), false); |
| 184 | 193 |
| 185 // Tell the adapter the default adapter changed; | 194 // Tell the adapter the default adapter changed; |
| 186 // BluetoothAdapterClient::GetProperties will be called once to obtain | 195 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 187 // the property set. | 196 // the property set. |
| 188 MockBluetoothAdapterClient::Properties adapter_properties; | 197 MockBluetoothAdapterClient::Properties adapter_properties; |
| 189 adapter_properties.address.ReplaceValue(adapter_address); | 198 adapter_properties.address.ReplaceValue(adapter_address); |
| 190 | 199 |
| 191 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 200 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 192 .WillRepeatedly(Return(&adapter_properties)); | 201 .WillRepeatedly(Return(&adapter_properties)); |
| 193 | 202 |
| 194 // BluetoothAdapter::Observer::AdapterPresentChanged must be called. | 203 // BluetoothAdapter::Observer::AdapterPresentChanged must be called. |
| 195 MockBluetoothAdapter::Observer adapter_observer; | 204 MockBluetoothAdapter::Observer adapter_observer; |
| 196 adapter->AddObserver(&adapter_observer); | 205 adapter->AddObserver(&adapter_observer); |
| 197 | 206 |
| 198 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 207 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 199 .Times(1); | 208 .Times(1); |
| 200 | 209 |
| 201 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 210 BluetoothAdapterChromeOs* adapter_chromeos = |
| 211 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 212 |
| 213 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 202 ->DefaultAdapterChanged(adapter_path); | 214 ->DefaultAdapterChanged(adapter_path); |
| 203 | 215 |
| 204 // Adapter should be present with the new address. | 216 // Adapter should be present with the new address. |
| 205 EXPECT_TRUE(adapter->IsPresent()); | 217 EXPECT_TRUE(adapter->IsPresent()); |
| 206 EXPECT_EQ(adapter_address, adapter->address()); | 218 EXPECT_EQ(adapter_address, adapter->address()); |
| 207 } | 219 } |
| 208 | 220 |
| 209 TEST_F(BluetoothAdapterTest, DefaultAdapterReplacedWithAddress) { | 221 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterReplacedWithAddress) { |
| 210 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); | 222 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); |
| 211 const dbus::ObjectPath new_adapter_path("/fake/hci1"); | 223 const dbus::ObjectPath new_adapter_path("/fake/hci1"); |
| 212 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; | 224 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 213 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; | 225 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; |
| 214 | 226 |
| 215 // Create the default adapter instance; | 227 // Create the default adapter instance; |
| 216 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 228 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 217 // a callback to obtain the adapter path. | 229 // a callback to obtain the adapter path. |
| 218 BluetoothManagerClient::AdapterCallback adapter_callback; | 230 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 219 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 231 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 220 .WillOnce(SaveArg<0>(&adapter_callback)); | 232 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 221 | 233 |
| 222 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 234 scoped_refptr<BluetoothAdapter> adapter = |
| 235 BluetoothAdapterFactory::DefaultAdapter(); |
| 223 | 236 |
| 224 // Call the adapter callback; | 237 // Call the adapter callback; |
| 225 // BluetoothAdapterClient::GetProperties will be called once to obtain | 238 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 226 // the property set. | 239 // the property set. |
| 227 MockBluetoothAdapterClient::Properties initial_adapter_properties; | 240 MockBluetoothAdapterClient::Properties initial_adapter_properties; |
| 228 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); | 241 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); |
| 229 | 242 |
| 230 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) | 243 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) |
| 231 .WillRepeatedly(Return(&initial_adapter_properties)); | 244 .WillRepeatedly(Return(&initial_adapter_properties)); |
| 232 | 245 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 245 // with false to indicate the old adapter being removed and once with true | 258 // with false to indicate the old adapter being removed and once with true |
| 246 // to announce the new adapter. | 259 // to announce the new adapter. |
| 247 MockBluetoothAdapter::Observer adapter_observer; | 260 MockBluetoothAdapter::Observer adapter_observer; |
| 248 adapter->AddObserver(&adapter_observer); | 261 adapter->AddObserver(&adapter_observer); |
| 249 | 262 |
| 250 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 263 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 251 .Times(1); | 264 .Times(1); |
| 252 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 265 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 253 .Times(1); | 266 .Times(1); |
| 254 | 267 |
| 255 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 268 BluetoothAdapterChromeOs* adapter_chromeos = |
| 269 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 270 |
| 271 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 256 ->DefaultAdapterChanged(new_adapter_path); | 272 ->DefaultAdapterChanged(new_adapter_path); |
| 257 | 273 |
| 258 // Adapter should be present with the new address. | 274 // Adapter should be present with the new address. |
| 259 EXPECT_TRUE(adapter->IsPresent()); | 275 EXPECT_TRUE(adapter->IsPresent()); |
| 260 EXPECT_EQ(new_adapter_address, adapter->address()); | 276 EXPECT_EQ(new_adapter_address, adapter->address()); |
| 261 } | 277 } |
| 262 | 278 |
| 263 TEST_F(BluetoothAdapterTest, DefaultAdapterBecomesPresentWithoutAddress) { | 279 TEST_F(BluetoothAdapterChromeOsTest, |
| 280 DefaultAdapterBecomesPresentWithoutAddress) { |
| 264 const dbus::ObjectPath adapter_path("/fake/hci0"); | 281 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 265 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 282 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 266 | 283 |
| 267 // Create the default adapter instance; | 284 // Create the default adapter instance; |
| 268 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 285 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 269 // a callback to obtain the adapter path. | 286 // a callback to obtain the adapter path. |
| 270 BluetoothManagerClient::AdapterCallback adapter_callback; | 287 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 271 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 288 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 272 .WillOnce(SaveArg<0>(&adapter_callback)); | 289 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 273 | 290 |
| 274 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 291 scoped_refptr<BluetoothAdapter> adapter = |
| 292 BluetoothAdapterFactory::DefaultAdapter(); |
| 275 | 293 |
| 276 // Call the adapter callback; make out it failed. | 294 // Call the adapter callback; make out it failed. |
| 277 adapter_callback.Run(dbus::ObjectPath(""), false); | 295 adapter_callback.Run(dbus::ObjectPath(""), false); |
| 278 | 296 |
| 279 // Tell the adapter the default adapter changed; | 297 // Tell the adapter the default adapter changed; |
| 280 // BluetoothAdapterClient::GetProperties will be called once to obtain | 298 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 281 // the property set. | 299 // the property set. |
| 282 MockBluetoothAdapterClient::Properties adapter_properties; | 300 MockBluetoothAdapterClient::Properties adapter_properties; |
| 283 | 301 |
| 284 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 302 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 285 .WillRepeatedly(Return(&adapter_properties)); | 303 .WillRepeatedly(Return(&adapter_properties)); |
| 286 | 304 |
| 287 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called. | 305 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called. |
| 288 MockBluetoothAdapter::Observer adapter_observer; | 306 MockBluetoothAdapter::Observer adapter_observer; |
| 289 adapter->AddObserver(&adapter_observer); | 307 adapter->AddObserver(&adapter_observer); |
| 290 | 308 |
| 291 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) | 309 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) |
| 292 .Times(0); | 310 .Times(0); |
| 293 | 311 |
| 294 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 312 BluetoothAdapterChromeOs* adapter_chromeos = |
| 313 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 314 |
| 315 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 295 ->DefaultAdapterChanged(adapter_path); | 316 ->DefaultAdapterChanged(adapter_path); |
| 296 | 317 |
| 297 // Adapter should not be present yet. | 318 // Adapter should not be present yet. |
| 298 EXPECT_FALSE(adapter->IsPresent()); | 319 EXPECT_FALSE(adapter->IsPresent()); |
| 299 | 320 |
| 300 // Tell the adapter the address now; | 321 // Tell the adapter the address now; |
| 301 // BluetoothAdapter::Observer::AdapterPresentChanged now must be called. | 322 // BluetoothAdapter::Observer::AdapterPresentChanged now must be called. |
| 302 adapter_properties.address.ReplaceValue(adapter_address); | 323 adapter_properties.address.ReplaceValue(adapter_address); |
| 303 | 324 |
| 304 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 325 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 305 .Times(1); | 326 .Times(1); |
| 306 | 327 |
| 307 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 328 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 308 ->AdapterPropertyChanged(adapter_path, | 329 ->AdapterPropertyChanged(adapter_path, |
| 309 adapter_properties.address.name()); | 330 adapter_properties.address.name()); |
| 310 | 331 |
| 311 // Adapter should be present with the new address. | 332 // Adapter should be present with the new address. |
| 312 EXPECT_TRUE(adapter->IsPresent()); | 333 EXPECT_TRUE(adapter->IsPresent()); |
| 313 EXPECT_EQ(adapter_address, adapter->address()); | 334 EXPECT_EQ(adapter_address, adapter->address()); |
| 314 } | 335 } |
| 315 | 336 |
| 316 TEST_F(BluetoothAdapterTest, DefaultAdapterReplacedWithoutAddress) { | 337 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterReplacedWithoutAddress) { |
| 317 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); | 338 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); |
| 318 const dbus::ObjectPath new_adapter_path("/fake/hci1"); | 339 const dbus::ObjectPath new_adapter_path("/fake/hci1"); |
| 319 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; | 340 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 320 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; | 341 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; |
| 321 | 342 |
| 322 // Create the default adapter instance; | 343 // Create the default adapter instance; |
| 323 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 344 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 324 // a callback to obtain the adapter path. | 345 // a callback to obtain the adapter path. |
| 325 BluetoothManagerClient::AdapterCallback adapter_callback; | 346 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 326 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 347 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 327 .WillOnce(SaveArg<0>(&adapter_callback)); | 348 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 328 | 349 |
| 329 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 350 scoped_refptr<BluetoothAdapter> adapter = |
| 351 BluetoothAdapterFactory::DefaultAdapter(); |
| 330 | 352 |
| 331 // Call the adapter callback; | 353 // Call the adapter callback; |
| 332 // BluetoothAdapterClient::GetProperties will be called once to obtain | 354 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 333 // the property set. | 355 // the property set. |
| 334 MockBluetoothAdapterClient::Properties initial_adapter_properties; | 356 MockBluetoothAdapterClient::Properties initial_adapter_properties; |
| 335 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); | 357 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); |
| 336 | 358 |
| 337 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) | 359 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) |
| 338 .WillRepeatedly(Return(&initial_adapter_properties)); | 360 .WillRepeatedly(Return(&initial_adapter_properties)); |
| 339 | 361 |
| 340 adapter_callback.Run(initial_adapter_path, true); | 362 adapter_callback.Run(initial_adapter_path, true); |
| 341 | 363 |
| 342 // Tell the adapter the default adapter changed; | 364 // Tell the adapter the default adapter changed; |
| 343 // BluetoothAdapterClient::GetProperties will be called once to obtain | 365 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 344 // the property set. | 366 // the property set. |
| 345 MockBluetoothAdapterClient::Properties new_adapter_properties; | 367 MockBluetoothAdapterClient::Properties new_adapter_properties; |
| 346 | 368 |
| 347 EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path)) | 369 EXPECT_CALL(*mock_adapter_client_, GetProperties(new_adapter_path)) |
| 348 .WillRepeatedly(Return(&new_adapter_properties)); | 370 .WillRepeatedly(Return(&new_adapter_properties)); |
| 349 | 371 |
| 350 // BluetoothAdapter::Observer::AdapterPresentChanged must be called to | 372 // BluetoothAdapter::Observer::AdapterPresentChanged must be called to |
| 351 // indicate the adapter has gone away. | 373 // indicate the adapter has gone away. |
| 352 MockBluetoothAdapter::Observer adapter_observer; | 374 MockBluetoothAdapter::Observer adapter_observer; |
| 353 adapter->AddObserver(&adapter_observer); | 375 adapter->AddObserver(&adapter_observer); |
| 354 | 376 |
| 355 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 377 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 356 .Times(1); | 378 .Times(1); |
| 357 | 379 |
| 358 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 380 BluetoothAdapterChromeOs* adapter_chromeos = |
| 381 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 382 |
| 383 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 359 ->DefaultAdapterChanged(new_adapter_path); | 384 ->DefaultAdapterChanged(new_adapter_path); |
| 360 | 385 |
| 361 // Adapter should be now marked not present. | 386 // Adapter should be now marked not present. |
| 362 EXPECT_FALSE(adapter->IsPresent()); | 387 EXPECT_FALSE(adapter->IsPresent()); |
| 363 | 388 |
| 364 // Tell the adapter the address now; | 389 // Tell the adapter the address now; |
| 365 // BluetoothAdapter::Observer::AdapterPresentChanged now must be called. | 390 // BluetoothAdapter::Observer::AdapterPresentChanged now must be called. |
| 366 new_adapter_properties.address.ReplaceValue(new_adapter_address); | 391 new_adapter_properties.address.ReplaceValue(new_adapter_address); |
| 367 | 392 |
| 368 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 393 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 369 .Times(1); | 394 .Times(1); |
| 370 | 395 |
| 371 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 396 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 372 ->AdapterPropertyChanged(new_adapter_path, | 397 ->AdapterPropertyChanged(new_adapter_path, |
| 373 new_adapter_properties.address.name()); | 398 new_adapter_properties.address.name()); |
| 374 | 399 |
| 375 // Adapter should be present with the new address. | 400 // Adapter should be present with the new address. |
| 376 EXPECT_TRUE(adapter->IsPresent()); | 401 EXPECT_TRUE(adapter->IsPresent()); |
| 377 EXPECT_EQ(new_adapter_address, adapter->address()); | 402 EXPECT_EQ(new_adapter_address, adapter->address()); |
| 378 } | 403 } |
| 379 | 404 |
| 380 TEST_F(BluetoothAdapterTest, DefaultAdapterRemoved) { | 405 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterRemoved) { |
| 381 const dbus::ObjectPath adapter_path("/fake/hci0"); | 406 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 382 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 407 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 383 | 408 |
| 384 // Create the default adapter instance; | 409 // Create the default adapter instance; |
| 385 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 410 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 386 // a callback to obtain the adapter path. | 411 // a callback to obtain the adapter path. |
| 387 BluetoothManagerClient::AdapterCallback adapter_callback; | 412 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 388 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 413 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 389 .WillOnce(SaveArg<0>(&adapter_callback)); | 414 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 390 | 415 |
| 391 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 416 scoped_refptr<BluetoothAdapter> adapter = |
| 417 BluetoothAdapterFactory::DefaultAdapter(); |
| 392 | 418 |
| 393 // Call the adapter callback; | 419 // Call the adapter callback; |
| 394 // BluetoothAdapterClient::GetProperties will be called once to obtain | 420 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 395 // the property set. | 421 // the property set. |
| 396 MockBluetoothAdapterClient::Properties adapter_properties; | 422 MockBluetoothAdapterClient::Properties adapter_properties; |
| 397 adapter_properties.address.ReplaceValue(adapter_address); | 423 adapter_properties.address.ReplaceValue(adapter_address); |
| 398 | 424 |
| 399 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 425 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 400 .WillRepeatedly(Return(&adapter_properties)); | 426 .WillRepeatedly(Return(&adapter_properties)); |
| 401 | 427 |
| 402 adapter_callback.Run(adapter_path, true); | 428 adapter_callback.Run(adapter_path, true); |
| 403 | 429 |
| 404 // Report that the adapter has been removed; | 430 // Report that the adapter has been removed; |
| 405 // BluetoothAdapter::Observer::AdapterPresentChanged will be called to | 431 // BluetoothAdapter::Observer::AdapterPresentChanged will be called to |
| 406 // indicate the adapter is no longer present. | 432 // indicate the adapter is no longer present. |
| 407 MockBluetoothAdapter::Observer adapter_observer; | 433 MockBluetoothAdapter::Observer adapter_observer; |
| 408 adapter->AddObserver(&adapter_observer); | 434 adapter->AddObserver(&adapter_observer); |
| 409 | 435 |
| 410 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 436 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 411 .Times(1); | 437 .Times(1); |
| 412 | 438 |
| 413 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 439 BluetoothAdapterChromeOs* adapter_chromeos = |
| 440 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 441 |
| 442 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 414 ->AdapterRemoved(adapter_path); | 443 ->AdapterRemoved(adapter_path); |
| 415 | 444 |
| 416 // Adapter should be no longer present. | 445 // Adapter should be no longer present. |
| 417 EXPECT_FALSE(adapter->IsPresent()); | 446 EXPECT_FALSE(adapter->IsPresent()); |
| 418 } | 447 } |
| 419 | 448 |
| 420 TEST_F(BluetoothAdapterTest, DefaultAdapterWithoutAddressRemoved) { | 449 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterWithoutAddressRemoved) { |
| 421 const dbus::ObjectPath adapter_path("/fake/hci0"); | 450 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 422 | 451 |
| 423 // Create the default adapter instance; | 452 // Create the default adapter instance; |
| 424 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 453 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 425 // a callback to obtain the adapter path. | 454 // a callback to obtain the adapter path. |
| 426 BluetoothManagerClient::AdapterCallback adapter_callback; | 455 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 427 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 456 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 428 .WillOnce(SaveArg<0>(&adapter_callback)); | 457 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 429 | 458 |
| 430 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 459 scoped_refptr<BluetoothAdapter> adapter = |
| 460 BluetoothAdapterFactory::DefaultAdapter(); |
| 431 | 461 |
| 432 // Call the adapter callback; | 462 // Call the adapter callback; |
| 433 // BluetoothAdapterClient::GetProperties will be called once to obtain | 463 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 434 // the property set. | 464 // the property set. |
| 435 MockBluetoothAdapterClient::Properties adapter_properties; | 465 MockBluetoothAdapterClient::Properties adapter_properties; |
| 436 | 466 |
| 437 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 467 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 438 .WillRepeatedly(Return(&adapter_properties)); | 468 .WillRepeatedly(Return(&adapter_properties)); |
| 439 | 469 |
| 440 adapter_callback.Run(adapter_path, true); | 470 adapter_callback.Run(adapter_path, true); |
| 441 | 471 |
| 442 // Report that the adapter has been removed; | 472 // Report that the adapter has been removed; |
| 443 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called | 473 // BluetoothAdapter::Observer::AdapterPresentChanged must not be called |
| 444 // since we never should have announced it in the first place. | 474 // since we never should have announced it in the first place. |
| 445 MockBluetoothAdapter::Observer adapter_observer; | 475 MockBluetoothAdapter::Observer adapter_observer; |
| 446 adapter->AddObserver(&adapter_observer); | 476 adapter->AddObserver(&adapter_observer); |
| 447 | 477 |
| 448 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) | 478 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), _)) |
| 449 .Times(0); | 479 .Times(0); |
| 450 | 480 |
| 451 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 481 BluetoothAdapterChromeOs* adapter_chromeos = |
| 482 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 483 |
| 484 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 452 ->AdapterRemoved(adapter_path); | 485 ->AdapterRemoved(adapter_path); |
| 453 | 486 |
| 454 // Adapter should be still no longer present. | 487 // Adapter should be still no longer present. |
| 455 EXPECT_FALSE(adapter->IsPresent()); | 488 EXPECT_FALSE(adapter->IsPresent()); |
| 456 } | 489 } |
| 457 | 490 |
| 458 TEST_F(BluetoothAdapterTest, DefaultAdapterPoweredPropertyInitiallyFalse) { | 491 TEST_F(BluetoothAdapterChromeOsTest, |
| 492 DefaultAdapterPoweredPropertyInitiallyFalse) { |
| 459 const dbus::ObjectPath adapter_path("/fake/hci0"); | 493 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 460 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 494 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 461 | 495 |
| 462 // Create the default adapter instance; | 496 // Create the default adapter instance; |
| 463 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 497 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 464 // a callback to obtain the adapter path. | 498 // a callback to obtain the adapter path. |
| 465 BluetoothManagerClient::AdapterCallback adapter_callback; | 499 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 466 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 500 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 467 .WillOnce(SaveArg<0>(&adapter_callback)); | 501 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 468 | 502 |
| 469 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 503 scoped_refptr<BluetoothAdapter> adapter = |
| 504 BluetoothAdapterFactory::DefaultAdapter(); |
| 470 | 505 |
| 471 // Call the adapter callback; | 506 // Call the adapter callback; |
| 472 // BluetoothAdapterClient::GetProperties will be called once to obtain | 507 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 473 // the property set. | 508 // the property set. |
| 474 MockBluetoothAdapterClient::Properties adapter_properties; | 509 MockBluetoothAdapterClient::Properties adapter_properties; |
| 475 adapter_properties.address.ReplaceValue(adapter_address); | 510 adapter_properties.address.ReplaceValue(adapter_address); |
| 476 adapter_properties.powered.ReplaceValue(false); | 511 adapter_properties.powered.ReplaceValue(false); |
| 477 | 512 |
| 478 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 513 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 479 .WillRepeatedly(Return(&adapter_properties)); | 514 .WillRepeatedly(Return(&adapter_properties)); |
| 480 | 515 |
| 481 adapter_callback.Run(adapter_path, true); | 516 adapter_callback.Run(adapter_path, true); |
| 482 | 517 |
| 483 // Adapter should have the correct property value. | 518 // Adapter should have the correct property value. |
| 484 EXPECT_FALSE(adapter->IsPowered()); | 519 EXPECT_FALSE(adapter->IsPowered()); |
| 485 } | 520 } |
| 486 | 521 |
| 487 TEST_F(BluetoothAdapterTest, DefaultAdapterPoweredPropertyInitiallyTrue) { | 522 TEST_F(BluetoothAdapterChromeOsTest, |
| 523 DefaultAdapterPoweredPropertyInitiallyTrue) { |
| 488 const dbus::ObjectPath adapter_path("/fake/hci0"); | 524 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 489 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 525 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 490 | 526 |
| 491 // Create the default adapter instance; | 527 // Create the default adapter instance; |
| 492 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 528 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 493 // a callback to obtain the adapter path. | 529 // a callback to obtain the adapter path. |
| 494 BluetoothManagerClient::AdapterCallback adapter_callback; | 530 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 495 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 531 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 496 .WillOnce(SaveArg<0>(&adapter_callback)); | 532 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 497 | 533 |
| 498 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 534 scoped_refptr<BluetoothAdapter> adapter = |
| 535 BluetoothAdapterFactory::DefaultAdapter(); |
| 499 | 536 |
| 500 // Call the adapter callback; | 537 // Call the adapter callback; |
| 501 // BluetoothAdapterClient::GetProperties will be called once to obtain | 538 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 502 // the property set. | 539 // the property set. |
| 503 MockBluetoothAdapterClient::Properties adapter_properties; | 540 MockBluetoothAdapterClient::Properties adapter_properties; |
| 504 adapter_properties.address.ReplaceValue(adapter_address); | 541 adapter_properties.address.ReplaceValue(adapter_address); |
| 505 adapter_properties.powered.ReplaceValue(true); | 542 adapter_properties.powered.ReplaceValue(true); |
| 506 | 543 |
| 507 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 544 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 508 .WillRepeatedly(Return(&adapter_properties)); | 545 .WillRepeatedly(Return(&adapter_properties)); |
| 509 | 546 |
| 510 // BluetoothAdapter::Observer::AdapterPoweredChanged will be called. | 547 // BluetoothAdapter::Observer::AdapterPoweredChanged will be called. |
| 511 MockBluetoothAdapter::Observer adapter_observer; | 548 MockBluetoothAdapter::Observer adapter_observer; |
| 512 adapter->AddObserver(&adapter_observer); | 549 adapter->AddObserver(&adapter_observer); |
| 513 | 550 |
| 514 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 551 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 515 .Times(1); | 552 .Times(1); |
| 516 | 553 |
| 517 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) | 554 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) |
| 518 .Times(1); | 555 .Times(1); |
| 519 | 556 |
| 520 adapter_callback.Run(adapter_path, true); | 557 adapter_callback.Run(adapter_path, true); |
| 521 | 558 |
| 522 // Adapter should have the correct property value. | 559 // Adapter should have the correct property value. |
| 523 EXPECT_TRUE(adapter->IsPowered()); | 560 EXPECT_TRUE(adapter->IsPowered()); |
| 524 } | 561 } |
| 525 | 562 |
| 526 TEST_F(BluetoothAdapterTest, | 563 TEST_F(BluetoothAdapterChromeOsTest, |
| 527 DefaultAdapterPoweredPropertyInitiallyTrueWithoutAddress) { | 564 DefaultAdapterPoweredPropertyInitiallyTrueWithoutAddress) { |
| 528 const dbus::ObjectPath adapter_path("/fake/hci0"); | 565 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 529 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 566 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 530 | 567 |
| 531 // Create the default adapter instance; | 568 // Create the default adapter instance; |
| 532 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 569 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 533 // a callback to obtain the adapter path. | 570 // a callback to obtain the adapter path. |
| 534 BluetoothManagerClient::AdapterCallback adapter_callback; | 571 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 535 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 572 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 536 .WillOnce(SaveArg<0>(&adapter_callback)); | 573 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 537 | 574 |
| 538 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 575 scoped_refptr<BluetoothAdapter> adapter = |
| 576 BluetoothAdapterFactory::DefaultAdapter(); |
| 539 | 577 |
| 540 // Call the adapter callback; | 578 // Call the adapter callback; |
| 541 // BluetoothAdapterClient::GetProperties will be called once to obtain | 579 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 542 // the property set but BluetoothAdapter::Observer::AdapterPoweredChanged | 580 // the property set but BluetoothAdapter::Observer::AdapterPoweredChanged |
| 543 // should not yet be called. | 581 // should not yet be called. |
| 544 MockBluetoothAdapterClient::Properties adapter_properties; | 582 MockBluetoothAdapterClient::Properties adapter_properties; |
| 545 adapter_properties.powered.ReplaceValue(true); | 583 adapter_properties.powered.ReplaceValue(true); |
| 546 | 584 |
| 547 MockBluetoothAdapter::Observer adapter_observer; | 585 MockBluetoothAdapter::Observer adapter_observer; |
| 548 adapter->AddObserver(&adapter_observer); | 586 adapter->AddObserver(&adapter_observer); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 562 // BluetoothAdapter::Observer::AdapterPresentChanged and | 600 // BluetoothAdapter::Observer::AdapterPresentChanged and |
| 563 // BluetoothAdapter::Observer::AdapterPoweredChanged now must be called. | 601 // BluetoothAdapter::Observer::AdapterPoweredChanged now must be called. |
| 564 adapter_properties.address.ReplaceValue(adapter_address); | 602 adapter_properties.address.ReplaceValue(adapter_address); |
| 565 | 603 |
| 566 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 604 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 567 .Times(1); | 605 .Times(1); |
| 568 | 606 |
| 569 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) | 607 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) |
| 570 .Times(1); | 608 .Times(1); |
| 571 | 609 |
| 572 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 610 BluetoothAdapterChromeOs* adapter_chromeos = |
| 611 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 612 |
| 613 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 573 ->AdapterPropertyChanged(adapter_path, | 614 ->AdapterPropertyChanged(adapter_path, |
| 574 adapter_properties.address.name()); | 615 adapter_properties.address.name()); |
| 575 | 616 |
| 576 // Adapter should have the correct property value. | 617 // Adapter should have the correct property value. |
| 577 EXPECT_TRUE(adapter->IsPowered()); | 618 EXPECT_TRUE(adapter->IsPowered()); |
| 578 } | 619 } |
| 579 | 620 |
| 580 TEST_F(BluetoothAdapterTest, DefaultAdapterPoweredPropertyChanged) { | 621 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterPoweredPropertyChanged) { |
| 581 const dbus::ObjectPath adapter_path("/fake/hci0"); | 622 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 582 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 623 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 583 | 624 |
| 584 // Create the default adapter instance; | 625 // Create the default adapter instance; |
| 585 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 626 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 586 // a callback to obtain the adapter path. | 627 // a callback to obtain the adapter path. |
| 587 BluetoothManagerClient::AdapterCallback adapter_callback; | 628 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 588 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 629 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 589 .WillOnce(SaveArg<0>(&adapter_callback)); | 630 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 590 | 631 |
| 591 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 632 scoped_refptr<BluetoothAdapter> adapter = |
| 633 BluetoothAdapterFactory::DefaultAdapter(); |
| 592 | 634 |
| 593 // Call the adapter callback; | 635 // Call the adapter callback; |
| 594 // BluetoothAdapterClient::GetProperties will be called once to obtain | 636 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 595 // the property set. | 637 // the property set. |
| 596 MockBluetoothAdapterClient::Properties adapter_properties; | 638 MockBluetoothAdapterClient::Properties adapter_properties; |
| 597 adapter_properties.address.ReplaceValue(adapter_address); | 639 adapter_properties.address.ReplaceValue(adapter_address); |
| 598 adapter_properties.powered.ReplaceValue(false); | 640 adapter_properties.powered.ReplaceValue(false); |
| 599 | 641 |
| 600 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 642 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 601 .WillRepeatedly(Return(&adapter_properties)); | 643 .WillRepeatedly(Return(&adapter_properties)); |
| 602 | 644 |
| 603 adapter_callback.Run(adapter_path, true); | 645 adapter_callback.Run(adapter_path, true); |
| 604 | 646 |
| 605 // Adapter should have the correct property value. | 647 // Adapter should have the correct property value. |
| 606 EXPECT_FALSE(adapter->IsPowered()); | 648 EXPECT_FALSE(adapter->IsPowered()); |
| 607 | 649 |
| 608 // Report that the property has been changed; | 650 // Report that the property has been changed; |
| 609 // BluetoothAdapter::Observer::AdapterPoweredChanged will be called. | 651 // BluetoothAdapter::Observer::AdapterPoweredChanged will be called. |
| 610 MockBluetoothAdapter::Observer adapter_observer; | 652 MockBluetoothAdapter::Observer adapter_observer; |
| 611 adapter->AddObserver(&adapter_observer); | 653 adapter->AddObserver(&adapter_observer); |
| 612 | 654 |
| 613 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) | 655 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) |
| 614 .Times(1); | 656 .Times(1); |
| 615 | 657 |
| 616 adapter_properties.powered.ReplaceValue(true); | 658 adapter_properties.powered.ReplaceValue(true); |
| 617 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 659 |
| 660 BluetoothAdapterChromeOs* adapter_chromeos = |
| 661 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 662 |
| 663 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 618 ->AdapterPropertyChanged(adapter_path, | 664 ->AdapterPropertyChanged(adapter_path, |
| 619 adapter_properties.powered.name()); | 665 adapter_properties.powered.name()); |
| 620 | 666 |
| 621 // Adapter should have the new property values. | 667 // Adapter should have the new property values. |
| 622 EXPECT_TRUE(adapter->IsPowered()); | 668 EXPECT_TRUE(adapter->IsPowered()); |
| 623 } | 669 } |
| 624 | 670 |
| 625 TEST_F(BluetoothAdapterTest, DefaultAdapterPoweredPropertyUnchanged) { | 671 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterPoweredPropertyUnchanged) { |
| 626 const dbus::ObjectPath adapter_path("/fake/hci0"); | 672 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 627 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 673 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 628 | 674 |
| 629 // Create the default adapter instance; | 675 // Create the default adapter instance; |
| 630 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 676 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 631 // a callback to obtain the adapter path. | 677 // a callback to obtain the adapter path. |
| 632 BluetoothManagerClient::AdapterCallback adapter_callback; | 678 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 633 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 679 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 634 .WillOnce(SaveArg<0>(&adapter_callback)); | 680 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 635 | 681 |
| 636 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 682 scoped_refptr<BluetoothAdapter> adapter = |
| 683 BluetoothAdapterFactory::DefaultAdapter(); |
| 637 | 684 |
| 638 // Call the adapter callback; | 685 // Call the adapter callback; |
| 639 // BluetoothAdapterClient::GetProperties will be called once to obtain | 686 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 640 // the property set. | 687 // the property set. |
| 641 MockBluetoothAdapterClient::Properties adapter_properties; | 688 MockBluetoothAdapterClient::Properties adapter_properties; |
| 642 adapter_properties.address.ReplaceValue(adapter_address); | 689 adapter_properties.address.ReplaceValue(adapter_address); |
| 643 adapter_properties.powered.ReplaceValue(true); | 690 adapter_properties.powered.ReplaceValue(true); |
| 644 | 691 |
| 645 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 692 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 646 .WillRepeatedly(Return(&adapter_properties)); | 693 .WillRepeatedly(Return(&adapter_properties)); |
| 647 | 694 |
| 648 adapter_callback.Run(adapter_path, true); | 695 adapter_callback.Run(adapter_path, true); |
| 649 | 696 |
| 650 // Adapter should have the correct property value. | 697 // Adapter should have the correct property value. |
| 651 EXPECT_TRUE(adapter->IsPowered()); | 698 EXPECT_TRUE(adapter->IsPowered()); |
| 652 | 699 |
| 653 // Report that the property has been changed, but don't change the value; | 700 // Report that the property has been changed, but don't change the value; |
| 654 // BluetoothAdapter::Observer::AdapterPoweredChanged should not be called. | 701 // BluetoothAdapter::Observer::AdapterPoweredChanged should not be called. |
| 655 MockBluetoothAdapter::Observer adapter_observer; | 702 MockBluetoothAdapter::Observer adapter_observer; |
| 656 adapter->AddObserver(&adapter_observer); | 703 adapter->AddObserver(&adapter_observer); |
| 657 | 704 |
| 658 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _)) | 705 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _)) |
| 659 .Times(0); | 706 .Times(0); |
| 660 | 707 |
| 661 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 708 BluetoothAdapterChromeOs* adapter_chromeos = |
| 709 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 710 |
| 711 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 662 ->AdapterPropertyChanged(adapter_path, | 712 ->AdapterPropertyChanged(adapter_path, |
| 663 adapter_properties.powered.name()); | 713 adapter_properties.powered.name()); |
| 664 | 714 |
| 665 // Adapter should still have the same property values. | 715 // Adapter should still have the same property values. |
| 666 EXPECT_TRUE(adapter->IsPowered()); | 716 EXPECT_TRUE(adapter->IsPowered()); |
| 667 } | 717 } |
| 668 | 718 |
| 669 TEST_F(BluetoothAdapterTest, | 719 TEST_F(BluetoothAdapterChromeOsTest, |
| 670 DefaultAdapterPoweredPropertyChangedWithoutAddress) { | 720 DefaultAdapterPoweredPropertyChangedWithoutAddress) { |
| 671 const dbus::ObjectPath adapter_path("/fake/hci0"); | 721 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 672 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 722 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 673 | 723 |
| 674 // Create the default adapter instance; | 724 // Create the default adapter instance; |
| 675 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 725 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 676 // a callback to obtain the adapter path. | 726 // a callback to obtain the adapter path. |
| 677 BluetoothManagerClient::AdapterCallback adapter_callback; | 727 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 678 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 728 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 679 .WillOnce(SaveArg<0>(&adapter_callback)); | 729 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 680 | 730 |
| 681 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 731 scoped_refptr<BluetoothAdapter> adapter = |
| 732 BluetoothAdapterFactory::DefaultAdapter(); |
| 682 | 733 |
| 683 // Call the adapter callback; | 734 // Call the adapter callback; |
| 684 // BluetoothAdapterClient::GetProperties will be called once to obtain | 735 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 685 // the property set but BluetoothAdapter::Observer::AdapterPoweredChanged | 736 // the property set but BluetoothAdapter::Observer::AdapterPoweredChanged |
| 686 // should not yet be called. | 737 // should not yet be called. |
| 687 MockBluetoothAdapterClient::Properties adapter_properties; | 738 MockBluetoothAdapterClient::Properties adapter_properties; |
| 688 | 739 |
| 689 MockBluetoothAdapter::Observer adapter_observer; | 740 MockBluetoothAdapter::Observer adapter_observer; |
| 690 adapter->AddObserver(&adapter_observer); | 741 adapter->AddObserver(&adapter_observer); |
| 691 | 742 |
| 692 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 743 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 693 .WillRepeatedly(Return(&adapter_properties)); | 744 .WillRepeatedly(Return(&adapter_properties)); |
| 694 | 745 |
| 695 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _)) | 746 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _)) |
| 696 .Times(0); | 747 .Times(0); |
| 697 | 748 |
| 698 adapter_callback.Run(adapter_path, true); | 749 adapter_callback.Run(adapter_path, true); |
| 699 | 750 |
| 700 // Tell the adapter that its powered property changed, the observer | 751 // Tell the adapter that its powered property changed, the observer |
| 701 // method should still not be called because there is no address for | 752 // method should still not be called because there is no address for |
| 702 // the adapter so it is not present. | 753 // the adapter so it is not present. |
| 703 adapter_properties.powered.ReplaceValue(true); | 754 adapter_properties.powered.ReplaceValue(true); |
| 704 | 755 |
| 705 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _)) | 756 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), _)) |
| 706 .Times(0); | 757 .Times(0); |
| 707 | 758 |
| 708 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 759 BluetoothAdapterChromeOs* adapter_chromeos = |
| 760 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 761 |
| 762 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 709 ->AdapterPropertyChanged(adapter_path, | 763 ->AdapterPropertyChanged(adapter_path, |
| 710 adapter_properties.powered.name()); | 764 adapter_properties.powered.name()); |
| 711 | 765 |
| 712 // Adapter should not yet have the property value. | 766 // Adapter should not yet have the property value. |
| 713 EXPECT_FALSE(adapter->IsPowered()); | 767 EXPECT_FALSE(adapter->IsPowered()); |
| 714 | 768 |
| 715 // Tell the adapter the address now, | 769 // Tell the adapter the address now, |
| 716 // BluetoothAdapter::Observer::AdapterPresentChanged and | 770 // BluetoothAdapter::Observer::AdapterPresentChanged and |
| 717 // BluetoothAdapter::Observer::AdapterPoweredChanged now must be called. | 771 // BluetoothAdapter::Observer::AdapterPoweredChanged now must be called. |
| 718 adapter_properties.address.ReplaceValue(adapter_address); | 772 adapter_properties.address.ReplaceValue(adapter_address); |
| 719 | 773 |
| 720 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 774 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 721 .Times(1); | 775 .Times(1); |
| 722 | 776 |
| 723 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) | 777 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) |
| 724 .Times(1); | 778 .Times(1); |
| 725 | 779 |
| 726 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 780 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 727 ->AdapterPropertyChanged(adapter_path, | 781 ->AdapterPropertyChanged(adapter_path, |
| 728 adapter_properties.address.name()); | 782 adapter_properties.address.name()); |
| 729 | 783 |
| 730 // Adapter should now have the correct property value. | 784 // Adapter should now have the correct property value. |
| 731 EXPECT_TRUE(adapter->IsPowered()); | 785 EXPECT_TRUE(adapter->IsPowered()); |
| 732 } | 786 } |
| 733 | 787 |
| 734 TEST_F(BluetoothAdapterTest, DefaultAdapterPoweredPropertyResetOnReplace) { | 788 TEST_F(BluetoothAdapterChromeOsTest, |
| 789 DefaultAdapterPoweredPropertyResetOnReplace) { |
| 735 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); | 790 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); |
| 736 const dbus::ObjectPath new_adapter_path("/fake/hci1"); | 791 const dbus::ObjectPath new_adapter_path("/fake/hci1"); |
| 737 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; | 792 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 738 const std::string new_adapter_address = "00:C0:11:CO:FE:FE"; | 793 const std::string new_adapter_address = "00:C0:11:CO:FE:FE"; |
| 739 | 794 |
| 740 // Create the default adapter instance; | 795 // Create the default adapter instance; |
| 741 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 796 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 742 // a callback to obtain the adapter path. | 797 // a callback to obtain the adapter path. |
| 743 BluetoothManagerClient::AdapterCallback adapter_callback; | 798 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 744 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 799 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 745 .WillOnce(SaveArg<0>(&adapter_callback)); | 800 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 746 | 801 |
| 747 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 802 scoped_refptr<BluetoothAdapter> adapter = |
| 803 BluetoothAdapterFactory::DefaultAdapter(); |
| 748 | 804 |
| 749 // Call the adapter callback; | 805 // Call the adapter callback; |
| 750 // BluetoothAdapterClient::GetProperties will be called once to obtain | 806 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 751 // the property set. | 807 // the property set. |
| 752 MockBluetoothAdapterClient::Properties initial_adapter_properties; | 808 MockBluetoothAdapterClient::Properties initial_adapter_properties; |
| 753 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); | 809 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); |
| 754 initial_adapter_properties.powered.ReplaceValue(true); | 810 initial_adapter_properties.powered.ReplaceValue(true); |
| 755 | 811 |
| 756 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) | 812 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) |
| 757 .WillRepeatedly(Return(&initial_adapter_properties)); | 813 .WillRepeatedly(Return(&initial_adapter_properties)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 776 | 832 |
| 777 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 833 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 778 .Times(1); | 834 .Times(1); |
| 779 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 835 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 780 .Times(1); | 836 .Times(1); |
| 781 } | 837 } |
| 782 | 838 |
| 783 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false)) | 839 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false)) |
| 784 .Times(1); | 840 .Times(1); |
| 785 | 841 |
| 786 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 842 BluetoothAdapterChromeOs* adapter_chromeos = |
| 843 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 844 |
| 845 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 787 ->DefaultAdapterChanged(new_adapter_path); | 846 ->DefaultAdapterChanged(new_adapter_path); |
| 788 | 847 |
| 789 // Adapter should have the new property value. | 848 // Adapter should have the new property value. |
| 790 EXPECT_FALSE(adapter->IsPowered()); | 849 EXPECT_FALSE(adapter->IsPowered()); |
| 791 } | 850 } |
| 792 | 851 |
| 793 TEST_F(BluetoothAdapterTest, | 852 TEST_F(BluetoothAdapterChromeOsTest, |
| 794 DefaultAdapterPoweredPropertyResetOnReplaceWhenTrue) { | 853 DefaultAdapterPoweredPropertyResetOnReplaceWhenTrue) { |
| 795 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); | 854 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); |
| 796 const dbus::ObjectPath new_adapter_path("/fake/hci1"); | 855 const dbus::ObjectPath new_adapter_path("/fake/hci1"); |
| 797 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; | 856 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 798 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; | 857 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; |
| 799 | 858 |
| 800 // Create the default adapter instance; | 859 // Create the default adapter instance; |
| 801 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 860 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 802 // a callback to obtain the adapter path. | 861 // a callback to obtain the adapter path. |
| 803 BluetoothManagerClient::AdapterCallback adapter_callback; | 862 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 804 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 863 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 805 .WillOnce(SaveArg<0>(&adapter_callback)); | 864 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 806 | 865 |
| 807 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 866 scoped_refptr<BluetoothAdapter> adapter = |
| 867 BluetoothAdapterFactory::DefaultAdapter(); |
| 808 | 868 |
| 809 // Call the adapter callback; | 869 // Call the adapter callback; |
| 810 // BluetoothAdapterClient::GetProperties will be called once to obtain | 870 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 811 // the property set. | 871 // the property set. |
| 812 MockBluetoothAdapterClient::Properties initial_adapter_properties; | 872 MockBluetoothAdapterClient::Properties initial_adapter_properties; |
| 813 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); | 873 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); |
| 814 initial_adapter_properties.powered.ReplaceValue(true); | 874 initial_adapter_properties.powered.ReplaceValue(true); |
| 815 | 875 |
| 816 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) | 876 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) |
| 817 .WillRepeatedly(Return(&initial_adapter_properties)); | 877 .WillRepeatedly(Return(&initial_adapter_properties)); |
| (...skipping 27 matching lines...) Expand all Loading... |
| 845 | 905 |
| 846 { | 906 { |
| 847 InSequence s; | 907 InSequence s; |
| 848 | 908 |
| 849 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false)) | 909 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false)) |
| 850 .Times(1); | 910 .Times(1); |
| 851 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) | 911 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), true)) |
| 852 .Times(1); | 912 .Times(1); |
| 853 } | 913 } |
| 854 | 914 |
| 855 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 915 BluetoothAdapterChromeOs* adapter_chromeos = |
| 916 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 917 |
| 918 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 856 ->DefaultAdapterChanged(new_adapter_path); | 919 ->DefaultAdapterChanged(new_adapter_path); |
| 857 | 920 |
| 858 // Adapter should have the new property value. | 921 // Adapter should have the new property value. |
| 859 EXPECT_TRUE(adapter->IsPowered()); | 922 EXPECT_TRUE(adapter->IsPowered()); |
| 860 } | 923 } |
| 861 | 924 |
| 862 TEST_F(BluetoothAdapterTest, DefaultAdapterPoweredPropertyResetOnRemove) { | 925 TEST_F(BluetoothAdapterChromeOsTest, |
| 926 DefaultAdapterPoweredPropertyResetOnRemove) { |
| 863 const dbus::ObjectPath adapter_path("/fake/hci0"); | 927 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 864 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 928 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 865 | 929 |
| 866 // Create the default adapter instance; | 930 // Create the default adapter instance; |
| 867 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 931 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 868 // a callback to obtain the adapter path. | 932 // a callback to obtain the adapter path. |
| 869 BluetoothManagerClient::AdapterCallback adapter_callback; | 933 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 870 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 934 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 871 .WillOnce(SaveArg<0>(&adapter_callback)); | 935 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 872 | 936 |
| 873 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 937 scoped_refptr<BluetoothAdapter> adapter = |
| 938 BluetoothAdapterFactory::DefaultAdapter(); |
| 874 | 939 |
| 875 // Call the adapter callback; | 940 // Call the adapter callback; |
| 876 // BluetoothAdapterClient::GetProperties will be called once to obtain | 941 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 877 // the property set. | 942 // the property set. |
| 878 MockBluetoothAdapterClient::Properties adapter_properties; | 943 MockBluetoothAdapterClient::Properties adapter_properties; |
| 879 adapter_properties.address.ReplaceValue(adapter_address); | 944 adapter_properties.address.ReplaceValue(adapter_address); |
| 880 adapter_properties.powered.ReplaceValue(true); | 945 adapter_properties.powered.ReplaceValue(true); |
| 881 | 946 |
| 882 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 947 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 883 .WillRepeatedly(Return(&adapter_properties)); | 948 .WillRepeatedly(Return(&adapter_properties)); |
| 884 | 949 |
| 885 adapter_callback.Run(adapter_path, true); | 950 adapter_callback.Run(adapter_path, true); |
| 886 | 951 |
| 887 // Report that the adapter has been removed; | 952 // Report that the adapter has been removed; |
| 888 // BluetoothAdapter::Observer::AdapterPoweredChanged will be called. | 953 // BluetoothAdapter::Observer::AdapterPoweredChanged will be called. |
| 889 MockBluetoothAdapter::Observer adapter_observer; | 954 MockBluetoothAdapter::Observer adapter_observer; |
| 890 adapter->AddObserver(&adapter_observer); | 955 adapter->AddObserver(&adapter_observer); |
| 891 | 956 |
| 892 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 957 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 893 .Times(1); | 958 .Times(1); |
| 894 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false)) | 959 EXPECT_CALL(adapter_observer, AdapterPoweredChanged(adapter.get(), false)) |
| 895 .Times(1); | 960 .Times(1); |
| 896 | 961 |
| 897 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 962 BluetoothAdapterChromeOs* adapter_chromeos = |
| 963 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 964 |
| 965 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 898 ->AdapterRemoved(adapter_path); | 966 ->AdapterRemoved(adapter_path); |
| 899 | 967 |
| 900 // Adapter should have the new property value. | 968 // Adapter should have the new property value. |
| 901 EXPECT_FALSE(adapter->IsPowered()); | 969 EXPECT_FALSE(adapter->IsPowered()); |
| 902 } | 970 } |
| 903 | 971 |
| 904 TEST_F(BluetoothAdapterTest, DefaultAdapterSetPowered) { | 972 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterSetPowered) { |
| 905 const dbus::ObjectPath adapter_path("/fake/hci0"); | 973 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 906 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 974 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 907 | 975 |
| 908 // Create the default adapter instance; | 976 // Create the default adapter instance; |
| 909 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 977 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 910 // a callback to obtain the adapter path. | 978 // a callback to obtain the adapter path. |
| 911 BluetoothManagerClient::AdapterCallback adapter_callback; | 979 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 912 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 980 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 913 .WillOnce(SaveArg<0>(&adapter_callback)); | 981 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 914 | 982 |
| 915 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 983 scoped_refptr<BluetoothAdapter> adapter = |
| 984 BluetoothAdapterFactory::DefaultAdapter(); |
| 916 | 985 |
| 917 // Call the adapter callback; | 986 // Call the adapter callback; |
| 918 // BluetoothAdapterClient::GetProperties will be called once to obtain | 987 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 919 // the property set. | 988 // the property set. |
| 920 MockBluetoothAdapterClient::Properties adapter_properties; | 989 MockBluetoothAdapterClient::Properties adapter_properties; |
| 921 | 990 |
| 922 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 991 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 923 .WillRepeatedly(Return(&adapter_properties)); | 992 .WillRepeatedly(Return(&adapter_properties)); |
| 924 | 993 |
| 925 adapter_callback.Run(adapter_path, true); | 994 adapter_callback.Run(adapter_path, true); |
| 926 | 995 |
| 927 // Request that the powered property be changed; | 996 // Request that the powered property be changed; |
| 928 // MockBluetoothAdapterClient::Set should be called, passing the address | 997 // MockBluetoothAdapterClient::Set should be called, passing the address |
| 929 // of the powered property and a callback to receive the response. | 998 // of the powered property and a callback to receive the response. |
| 930 dbus::PropertySet::SetCallback set_callback; | 999 dbus::PropertySet::SetCallback set_callback; |
| 931 EXPECT_CALL(adapter_properties, Set(&adapter_properties.powered, _)) | 1000 EXPECT_CALL(adapter_properties, Set(&adapter_properties.powered, _)) |
| 932 .WillOnce(SaveArg<1>(&set_callback)); | 1001 .WillOnce(SaveArg<1>(&set_callback)); |
| 933 | 1002 |
| 934 adapter->SetPowered(true, | 1003 adapter->SetPowered(true, |
| 935 base::Bind(&BluetoothAdapterTest::SetCallback, | 1004 base::Bind(&BluetoothAdapterChromeOsTest::SetCallback, |
| 936 base::Unretained(this)), | 1005 base::Unretained(this)), |
| 937 base::Bind(&BluetoothAdapterTest::ErrorCallback, | 1006 base::Bind(&BluetoothAdapterChromeOsTest::ErrorCallback, |
| 938 base::Unretained(this))); | 1007 base::Unretained(this))); |
| 939 | 1008 |
| 940 // Reply to the callback to indicate success, the set callback we provided | 1009 // Reply to the callback to indicate success, the set callback we provided |
| 941 // should be called but the properties should not be refetched. | 1010 // should be called but the properties should not be refetched. |
| 942 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1011 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 943 .Times(0); | 1012 .Times(0); |
| 944 | 1013 |
| 945 set_callback.Run(true); | 1014 set_callback.Run(true); |
| 946 | 1015 |
| 947 EXPECT_TRUE(set_callback_called_); | 1016 EXPECT_TRUE(set_callback_called_); |
| 948 EXPECT_FALSE(error_callback_called_); | 1017 EXPECT_FALSE(error_callback_called_); |
| 949 } | 1018 } |
| 950 | 1019 |
| 951 TEST_F(BluetoothAdapterTest, DefaultAdapterSetPoweredError) { | 1020 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterSetPoweredError) { |
| 952 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1021 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 953 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1022 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 954 | 1023 |
| 955 // Create the default adapter instance; | 1024 // Create the default adapter instance; |
| 956 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1025 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 957 // a callback to obtain the adapter path. | 1026 // a callback to obtain the adapter path. |
| 958 BluetoothManagerClient::AdapterCallback adapter_callback; | 1027 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 959 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1028 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 960 .WillOnce(SaveArg<0>(&adapter_callback)); | 1029 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 961 | 1030 |
| 962 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1031 scoped_refptr<BluetoothAdapter> adapter = |
| 1032 BluetoothAdapterFactory::DefaultAdapter(); |
| 963 | 1033 |
| 964 // Call the adapter callback; | 1034 // Call the adapter callback; |
| 965 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1035 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 966 // the property set. | 1036 // the property set. |
| 967 MockBluetoothAdapterClient::Properties adapter_properties; | 1037 MockBluetoothAdapterClient::Properties adapter_properties; |
| 968 | 1038 |
| 969 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1039 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 970 .WillRepeatedly(Return(&adapter_properties)); | 1040 .WillRepeatedly(Return(&adapter_properties)); |
| 971 | 1041 |
| 972 adapter_callback.Run(adapter_path, true); | 1042 adapter_callback.Run(adapter_path, true); |
| 973 | 1043 |
| 974 // Request that the powered property be changed; | 1044 // Request that the powered property be changed; |
| 975 // MockBluetoothAdapterClient::Set should be called, passing the address | 1045 // MockBluetoothAdapterClient::Set should be called, passing the address |
| 976 // of the powered property and a callback to receive the response. | 1046 // of the powered property and a callback to receive the response. |
| 977 dbus::PropertySet::SetCallback set_callback; | 1047 dbus::PropertySet::SetCallback set_callback; |
| 978 EXPECT_CALL(adapter_properties, Set(&adapter_properties.powered, _)) | 1048 EXPECT_CALL(adapter_properties, Set(&adapter_properties.powered, _)) |
| 979 .WillOnce(SaveArg<1>(&set_callback)); | 1049 .WillOnce(SaveArg<1>(&set_callback)); |
| 980 | 1050 |
| 981 adapter->SetPowered(true, | 1051 adapter->SetPowered(true, |
| 982 base::Bind(&BluetoothAdapterTest::SetCallback, | 1052 base::Bind(&BluetoothAdapterChromeOsTest::SetCallback, |
| 983 base::Unretained(this)), | 1053 base::Unretained(this)), |
| 984 base::Bind(&BluetoothAdapterTest::ErrorCallback, | 1054 base::Bind(&BluetoothAdapterChromeOsTest::ErrorCallback, |
| 985 base::Unretained(this))); | 1055 base::Unretained(this))); |
| 986 | 1056 |
| 987 // Reply to the callback to indicate failure, the error callback we provided | 1057 // Reply to the callback to indicate failure, the error callback we provided |
| 988 // should be called but the properties should not be refetched. | 1058 // should be called but the properties should not be refetched. |
| 989 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1059 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 990 .Times(0); | 1060 .Times(0); |
| 991 | 1061 |
| 992 set_callback.Run(false); | 1062 set_callback.Run(false); |
| 993 | 1063 |
| 994 EXPECT_FALSE(set_callback_called_); | 1064 EXPECT_FALSE(set_callback_called_); |
| 995 EXPECT_TRUE(error_callback_called_); | 1065 EXPECT_TRUE(error_callback_called_); |
| 996 } | 1066 } |
| 997 | 1067 |
| 998 TEST_F(BluetoothAdapterTest, DefaultAdapterDiscoveringPropertyInitiallyFalse) { | 1068 TEST_F(BluetoothAdapterChromeOsTest, |
| 1069 DefaultAdapterDiscoveringPropertyInitiallyFalse) { |
| 999 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1070 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1000 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1071 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1001 | 1072 |
| 1002 // Create the default adapter instance; | 1073 // Create the default adapter instance; |
| 1003 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1074 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1004 // a callback to obtain the adapter path. | 1075 // a callback to obtain the adapter path. |
| 1005 BluetoothManagerClient::AdapterCallback adapter_callback; | 1076 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1006 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1077 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1007 .WillOnce(SaveArg<0>(&adapter_callback)); | 1078 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1008 | 1079 |
| 1009 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1080 scoped_refptr<BluetoothAdapter> adapter = |
| 1081 BluetoothAdapterFactory::DefaultAdapter(); |
| 1010 | 1082 |
| 1011 // Call the adapter callback; | 1083 // Call the adapter callback; |
| 1012 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1084 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1013 // the property set. | 1085 // the property set. |
| 1014 MockBluetoothAdapterClient::Properties adapter_properties; | 1086 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1015 adapter_properties.address.ReplaceValue(adapter_address); | 1087 adapter_properties.address.ReplaceValue(adapter_address); |
| 1016 adapter_properties.discovering.ReplaceValue(false); | 1088 adapter_properties.discovering.ReplaceValue(false); |
| 1017 | 1089 |
| 1018 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1090 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 1019 .WillRepeatedly(Return(&adapter_properties)); | 1091 .WillRepeatedly(Return(&adapter_properties)); |
| 1020 | 1092 |
| 1021 adapter_callback.Run(adapter_path, true); | 1093 adapter_callback.Run(adapter_path, true); |
| 1022 | 1094 |
| 1023 // Adapter should have the correct property value. | 1095 // Adapter should have the correct property value. |
| 1024 EXPECT_FALSE(adapter->IsDiscovering()); | 1096 EXPECT_FALSE(adapter->IsDiscovering()); |
| 1025 } | 1097 } |
| 1026 | 1098 |
| 1027 TEST_F(BluetoothAdapterTest, DefaultAdapterDiscoveringPropertyInitiallyTrue) { | 1099 TEST_F(BluetoothAdapterChromeOsTest, |
| 1100 DefaultAdapterDiscoveringPropertyInitiallyTrue) { |
| 1028 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1101 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1029 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1102 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1030 | 1103 |
| 1031 // Create the default adapter instance; | 1104 // Create the default adapter instance; |
| 1032 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1105 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1033 // a callback to obtain the adapter path. | 1106 // a callback to obtain the adapter path. |
| 1034 BluetoothManagerClient::AdapterCallback adapter_callback; | 1107 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1035 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1108 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1036 .WillOnce(SaveArg<0>(&adapter_callback)); | 1109 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1037 | 1110 |
| 1038 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1111 scoped_refptr<BluetoothAdapter> adapter = |
| 1112 BluetoothAdapterFactory::DefaultAdapter(); |
| 1039 | 1113 |
| 1040 // Call the adapter callback; | 1114 // Call the adapter callback; |
| 1041 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1115 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1042 // the property set. | 1116 // the property set. |
| 1043 MockBluetoothAdapterClient::Properties adapter_properties; | 1117 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1044 adapter_properties.address.ReplaceValue(adapter_address); | 1118 adapter_properties.address.ReplaceValue(adapter_address); |
| 1045 adapter_properties.discovering.ReplaceValue(true); | 1119 adapter_properties.discovering.ReplaceValue(true); |
| 1046 | 1120 |
| 1047 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1121 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 1048 .WillRepeatedly(Return(&adapter_properties)); | 1122 .WillRepeatedly(Return(&adapter_properties)); |
| 1049 | 1123 |
| 1050 // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called. | 1124 // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called. |
| 1051 MockBluetoothAdapter::Observer adapter_observer; | 1125 MockBluetoothAdapter::Observer adapter_observer; |
| 1052 adapter->AddObserver(&adapter_observer); | 1126 adapter->AddObserver(&adapter_observer); |
| 1053 | 1127 |
| 1054 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 1128 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 1055 .Times(1); | 1129 .Times(1); |
| 1056 | 1130 |
| 1057 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) | 1131 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) |
| 1058 .Times(1); | 1132 .Times(1); |
| 1059 | 1133 |
| 1060 adapter_callback.Run(adapter_path, true); | 1134 adapter_callback.Run(adapter_path, true); |
| 1061 | 1135 |
| 1062 // Adapter should have the correct property value. | 1136 // Adapter should have the correct property value. |
| 1063 EXPECT_TRUE(adapter->IsDiscovering()); | 1137 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1064 } | 1138 } |
| 1065 | 1139 |
| 1066 TEST_F(BluetoothAdapterTest, | 1140 TEST_F(BluetoothAdapterChromeOsTest, |
| 1067 DefaultAdapterDiscoveringPropertyInitiallyTrueWithoutAddress) { | 1141 DefaultAdapterDiscoveringPropertyInitiallyTrueWithoutAddress) { |
| 1068 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1142 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1069 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1143 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1070 | 1144 |
| 1071 // Create the default adapter instance; | 1145 // Create the default adapter instance; |
| 1072 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1146 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1073 // a callback to obtain the adapter path. | 1147 // a callback to obtain the adapter path. |
| 1074 BluetoothManagerClient::AdapterCallback adapter_callback; | 1148 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1075 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1149 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1076 .WillOnce(SaveArg<0>(&adapter_callback)); | 1150 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1077 | 1151 |
| 1078 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1152 scoped_refptr<BluetoothAdapter> adapter = |
| 1153 BluetoothAdapterFactory::DefaultAdapter(); |
| 1079 | 1154 |
| 1080 // Call the adapter callback; | 1155 // Call the adapter callback; |
| 1081 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1156 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1082 // the property set but BluetoothAdapter::Observer::AdapterDiscoveringChanged | 1157 // the property set but BluetoothAdapter::Observer::AdapterDiscoveringChanged |
| 1083 // should not yet be called. | 1158 // should not yet be called. |
| 1084 MockBluetoothAdapterClient::Properties adapter_properties; | 1159 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1085 adapter_properties.discovering.ReplaceValue(true); | 1160 adapter_properties.discovering.ReplaceValue(true); |
| 1086 | 1161 |
| 1087 MockBluetoothAdapter::Observer adapter_observer; | 1162 MockBluetoothAdapter::Observer adapter_observer; |
| 1088 adapter->AddObserver(&adapter_observer); | 1163 adapter->AddObserver(&adapter_observer); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 1102 // BluetoothAdapter::Observer::AdapterPresentChanged and | 1177 // BluetoothAdapter::Observer::AdapterPresentChanged and |
| 1103 // BluetoothAdapter::Observer::AdapterDiscoveringChanged now must be called. | 1178 // BluetoothAdapter::Observer::AdapterDiscoveringChanged now must be called. |
| 1104 adapter_properties.address.ReplaceValue(adapter_address); | 1179 adapter_properties.address.ReplaceValue(adapter_address); |
| 1105 | 1180 |
| 1106 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 1181 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 1107 .Times(1); | 1182 .Times(1); |
| 1108 | 1183 |
| 1109 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) | 1184 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) |
| 1110 .Times(1); | 1185 .Times(1); |
| 1111 | 1186 |
| 1112 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 1187 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1188 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1189 |
| 1190 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 1113 ->AdapterPropertyChanged(adapter_path, | 1191 ->AdapterPropertyChanged(adapter_path, |
| 1114 adapter_properties.address.name()); | 1192 adapter_properties.address.name()); |
| 1115 | 1193 |
| 1116 // Adapter should have the correct property value. | 1194 // Adapter should have the correct property value. |
| 1117 EXPECT_TRUE(adapter->IsDiscovering()); | 1195 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1118 } | 1196 } |
| 1119 | 1197 |
| 1120 TEST_F(BluetoothAdapterTest, DefaultAdapterDiscoveringPropertyChanged) { | 1198 TEST_F(BluetoothAdapterChromeOsTest, DefaultAdapterDiscoveringPropertyChanged) { |
| 1121 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1199 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1122 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1200 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1123 | 1201 |
| 1124 // Create the default adapter instance; | 1202 // Create the default adapter instance; |
| 1125 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1203 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1126 // a callback to obtain the adapter path. | 1204 // a callback to obtain the adapter path. |
| 1127 BluetoothManagerClient::AdapterCallback adapter_callback; | 1205 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1128 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1206 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1129 .WillOnce(SaveArg<0>(&adapter_callback)); | 1207 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1130 | 1208 |
| 1131 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1209 scoped_refptr<BluetoothAdapter> adapter = |
| 1210 BluetoothAdapterFactory::DefaultAdapter(); |
| 1132 | 1211 |
| 1133 // Call the adapter callback; | 1212 // Call the adapter callback; |
| 1134 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1213 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1135 // the property set. | 1214 // the property set. |
| 1136 MockBluetoothAdapterClient::Properties adapter_properties; | 1215 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1137 adapter_properties.address.ReplaceValue(adapter_address); | 1216 adapter_properties.address.ReplaceValue(adapter_address); |
| 1138 adapter_properties.discovering.ReplaceValue(false); | 1217 adapter_properties.discovering.ReplaceValue(false); |
| 1139 | 1218 |
| 1140 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1219 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 1141 .WillRepeatedly(Return(&adapter_properties)); | 1220 .WillRepeatedly(Return(&adapter_properties)); |
| 1142 | 1221 |
| 1143 adapter_callback.Run(adapter_path, true); | 1222 adapter_callback.Run(adapter_path, true); |
| 1144 | 1223 |
| 1145 // Adapter should have the correct property value. | 1224 // Adapter should have the correct property value. |
| 1146 EXPECT_FALSE(adapter->IsDiscovering()); | 1225 EXPECT_FALSE(adapter->IsDiscovering()); |
| 1147 | 1226 |
| 1148 // Report that the property has been changed; | 1227 // Report that the property has been changed; |
| 1149 // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called. | 1228 // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called. |
| 1150 MockBluetoothAdapter::Observer adapter_observer; | 1229 MockBluetoothAdapter::Observer adapter_observer; |
| 1151 adapter->AddObserver(&adapter_observer); | 1230 adapter->AddObserver(&adapter_observer); |
| 1152 | 1231 |
| 1153 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) | 1232 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) |
| 1154 .Times(1); | 1233 .Times(1); |
| 1155 | 1234 |
| 1156 adapter_properties.discovering.ReplaceValue(true); | 1235 adapter_properties.discovering.ReplaceValue(true); |
| 1157 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 1236 |
| 1237 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1238 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1239 |
| 1240 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 1158 ->AdapterPropertyChanged(adapter_path, | 1241 ->AdapterPropertyChanged(adapter_path, |
| 1159 adapter_properties.discovering.name()); | 1242 adapter_properties.discovering.name()); |
| 1160 | 1243 |
| 1161 // Adapter should have the new property values. | 1244 // Adapter should have the new property values. |
| 1162 EXPECT_TRUE(adapter->IsDiscovering()); | 1245 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1163 } | 1246 } |
| 1164 | 1247 |
| 1165 TEST_F(BluetoothAdapterTest, DefaultAdapterDiscoveringPropertyUnchanged) { | 1248 TEST_F(BluetoothAdapterChromeOsTest, |
| 1249 DefaultAdapterDiscoveringPropertyUnchanged) { |
| 1166 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1250 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1167 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1251 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1168 | 1252 |
| 1169 // Create the default adapter instance; | 1253 // Create the default adapter instance; |
| 1170 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1254 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1171 // a callback to obtain the adapter path. | 1255 // a callback to obtain the adapter path. |
| 1172 BluetoothManagerClient::AdapterCallback adapter_callback; | 1256 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1173 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1257 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1174 .WillOnce(SaveArg<0>(&adapter_callback)); | 1258 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1175 | 1259 |
| 1176 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1260 scoped_refptr<BluetoothAdapter> adapter = |
| 1261 BluetoothAdapterFactory::DefaultAdapter(); |
| 1177 | 1262 |
| 1178 // Call the adapter callback; | 1263 // Call the adapter callback; |
| 1179 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1264 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1180 // the property set. | 1265 // the property set. |
| 1181 MockBluetoothAdapterClient::Properties adapter_properties; | 1266 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1182 adapter_properties.address.ReplaceValue(adapter_address); | 1267 adapter_properties.address.ReplaceValue(adapter_address); |
| 1183 adapter_properties.discovering.ReplaceValue(true); | 1268 adapter_properties.discovering.ReplaceValue(true); |
| 1184 | 1269 |
| 1185 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1270 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 1186 .WillRepeatedly(Return(&adapter_properties)); | 1271 .WillRepeatedly(Return(&adapter_properties)); |
| 1187 | 1272 |
| 1188 adapter_callback.Run(adapter_path, true); | 1273 adapter_callback.Run(adapter_path, true); |
| 1189 | 1274 |
| 1190 // Adapter should have the correct property value. | 1275 // Adapter should have the correct property value. |
| 1191 EXPECT_TRUE(adapter->IsDiscovering()); | 1276 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1192 | 1277 |
| 1193 // Report that the property has been changed, but don't change the value; | 1278 // Report that the property has been changed, but don't change the value; |
| 1194 // BluetoothAdapter::Observer::AdapterDiscoveringChanged should not be | 1279 // BluetoothAdapter::Observer::AdapterDiscoveringChanged should not be |
| 1195 // called. | 1280 // called. |
| 1196 MockBluetoothAdapter::Observer adapter_observer; | 1281 MockBluetoothAdapter::Observer adapter_observer; |
| 1197 adapter->AddObserver(&adapter_observer); | 1282 adapter->AddObserver(&adapter_observer); |
| 1198 | 1283 |
| 1199 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _)) | 1284 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _)) |
| 1200 .Times(0); | 1285 .Times(0); |
| 1201 | 1286 |
| 1202 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 1287 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1288 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1289 |
| 1290 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 1203 ->AdapterPropertyChanged(adapter_path, | 1291 ->AdapterPropertyChanged(adapter_path, |
| 1204 adapter_properties.discovering.name()); | 1292 adapter_properties.discovering.name()); |
| 1205 | 1293 |
| 1206 // Adapter should still have the same property values. | 1294 // Adapter should still have the same property values. |
| 1207 EXPECT_TRUE(adapter->IsDiscovering()); | 1295 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1208 } | 1296 } |
| 1209 | 1297 |
| 1210 TEST_F(BluetoothAdapterTest, | 1298 TEST_F(BluetoothAdapterChromeOsTest, |
| 1211 DefaultAdapterDiscoveringPropertyChangedWithoutAddress) { | 1299 DefaultAdapterDiscoveringPropertyChangedWithoutAddress) { |
| 1212 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1300 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1213 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1301 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1214 | 1302 |
| 1215 // Create the default adapter instance; | 1303 // Create the default adapter instance; |
| 1216 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1304 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1217 // a callback to obtain the adapter path. | 1305 // a callback to obtain the adapter path. |
| 1218 BluetoothManagerClient::AdapterCallback adapter_callback; | 1306 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1219 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1307 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1220 .WillOnce(SaveArg<0>(&adapter_callback)); | 1308 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1221 | 1309 |
| 1222 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1310 scoped_refptr<BluetoothAdapter> adapter = |
| 1311 BluetoothAdapterFactory::DefaultAdapter(); |
| 1223 | 1312 |
| 1224 // Call the adapter callback; | 1313 // Call the adapter callback; |
| 1225 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1314 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1226 // the property set but BluetoothAdapter::Observer::AdapterDiscoveringChanged | 1315 // the property set but BluetoothAdapter::Observer::AdapterDiscoveringChanged |
| 1227 // should not yet be called. | 1316 // should not yet be called. |
| 1228 MockBluetoothAdapterClient::Properties adapter_properties; | 1317 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1229 | 1318 |
| 1230 MockBluetoothAdapter::Observer adapter_observer; | 1319 MockBluetoothAdapter::Observer adapter_observer; |
| 1231 adapter->AddObserver(&adapter_observer); | 1320 adapter->AddObserver(&adapter_observer); |
| 1232 | 1321 |
| 1233 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1322 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 1234 .WillRepeatedly(Return(&adapter_properties)); | 1323 .WillRepeatedly(Return(&adapter_properties)); |
| 1235 | 1324 |
| 1236 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _)) | 1325 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _)) |
| 1237 .Times(0); | 1326 .Times(0); |
| 1238 | 1327 |
| 1239 adapter_callback.Run(adapter_path, true); | 1328 adapter_callback.Run(adapter_path, true); |
| 1240 | 1329 |
| 1241 // Tell the adapter that its discovering property changed, the observer | 1330 // Tell the adapter that its discovering property changed, the observer |
| 1242 // method should still not be called because there is no address for | 1331 // method should still not be called because there is no address for |
| 1243 // the adapter so it is not present. | 1332 // the adapter so it is not present. |
| 1244 adapter_properties.discovering.ReplaceValue(true); | 1333 adapter_properties.discovering.ReplaceValue(true); |
| 1245 | 1334 |
| 1246 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _)) | 1335 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), _)) |
| 1247 .Times(0); | 1336 .Times(0); |
| 1248 | 1337 |
| 1249 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 1338 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1339 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1340 |
| 1341 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 1250 ->AdapterPropertyChanged(adapter_path, | 1342 ->AdapterPropertyChanged(adapter_path, |
| 1251 adapter_properties.discovering.name()); | 1343 adapter_properties.discovering.name()); |
| 1252 | 1344 |
| 1253 // Adapter should not yet have the property value. | 1345 // Adapter should not yet have the property value. |
| 1254 EXPECT_FALSE(adapter->IsDiscovering()); | 1346 EXPECT_FALSE(adapter->IsDiscovering()); |
| 1255 | 1347 |
| 1256 // Tell the adapter the address now, | 1348 // Tell the adapter the address now, |
| 1257 // BluetoothAdapter::Observer::AdapterPresentChanged and | 1349 // BluetoothAdapter::Observer::AdapterPresentChanged and |
| 1258 // BluetoothAdapter::Observer::AdapterDiscoveringChanged now must be called. | 1350 // BluetoothAdapter::Observer::AdapterDiscoveringChanged now must be called. |
| 1259 adapter_properties.address.ReplaceValue(adapter_address); | 1351 adapter_properties.address.ReplaceValue(adapter_address); |
| 1260 | 1352 |
| 1261 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 1353 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 1262 .Times(1); | 1354 .Times(1); |
| 1263 | 1355 |
| 1264 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) | 1356 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), true)) |
| 1265 .Times(1); | 1357 .Times(1); |
| 1266 | 1358 |
| 1267 static_cast<BluetoothAdapterClient::Observer*>(adapter.get()) | 1359 static_cast<BluetoothAdapterClient::Observer*>(adapter_chromeos) |
| 1268 ->AdapterPropertyChanged(adapter_path, | 1360 ->AdapterPropertyChanged(adapter_path, |
| 1269 adapter_properties.address.name()); | 1361 adapter_properties.address.name()); |
| 1270 | 1362 |
| 1271 // Adapter should now have the correct property value. | 1363 // Adapter should now have the correct property value. |
| 1272 EXPECT_TRUE(adapter->IsDiscovering()); | 1364 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1273 } | 1365 } |
| 1274 | 1366 |
| 1275 TEST_F(BluetoothAdapterTest, DefaultAdapterDiscoveringPropertyResetOnReplace) { | 1367 TEST_F(BluetoothAdapterChromeOsTest, |
| 1368 DefaultAdapterDiscoveringPropertyResetOnReplace) { |
| 1276 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); | 1369 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); |
| 1277 const dbus::ObjectPath new_adapter_path("/fake/hci1"); | 1370 const dbus::ObjectPath new_adapter_path("/fake/hci1"); |
| 1278 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; | 1371 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1279 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; | 1372 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; |
| 1280 | 1373 |
| 1281 // Create the default adapter instance; | 1374 // Create the default adapter instance; |
| 1282 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1375 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1283 // a callback to obtain the adapter path. | 1376 // a callback to obtain the adapter path. |
| 1284 BluetoothManagerClient::AdapterCallback adapter_callback; | 1377 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1285 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1378 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1286 .WillOnce(SaveArg<0>(&adapter_callback)); | 1379 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1287 | 1380 |
| 1288 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1381 scoped_refptr<BluetoothAdapter> adapter = |
| 1382 BluetoothAdapterFactory::DefaultAdapter(); |
| 1289 | 1383 |
| 1290 // Call the adapter callback; | 1384 // Call the adapter callback; |
| 1291 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1385 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1292 // the property set. | 1386 // the property set. |
| 1293 MockBluetoothAdapterClient::Properties initial_adapter_properties; | 1387 MockBluetoothAdapterClient::Properties initial_adapter_properties; |
| 1294 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); | 1388 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); |
| 1295 initial_adapter_properties.discovering.ReplaceValue(true); | 1389 initial_adapter_properties.discovering.ReplaceValue(true); |
| 1296 | 1390 |
| 1297 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) | 1391 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) |
| 1298 .WillRepeatedly(Return(&initial_adapter_properties)); | 1392 .WillRepeatedly(Return(&initial_adapter_properties)); |
| (...skipping 18 matching lines...) Expand all Loading... |
| 1317 | 1411 |
| 1318 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 1412 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 1319 .Times(1); | 1413 .Times(1); |
| 1320 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) | 1414 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), true)) |
| 1321 .Times(1); | 1415 .Times(1); |
| 1322 } | 1416 } |
| 1323 | 1417 |
| 1324 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), false)) | 1418 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), false)) |
| 1325 .Times(1); | 1419 .Times(1); |
| 1326 | 1420 |
| 1327 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 1421 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1422 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1423 |
| 1424 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 1328 ->DefaultAdapterChanged(new_adapter_path); | 1425 ->DefaultAdapterChanged(new_adapter_path); |
| 1329 | 1426 |
| 1330 // Adapter should have the new property value. | 1427 // Adapter should have the new property value. |
| 1331 EXPECT_FALSE(adapter->IsDiscovering()); | 1428 EXPECT_FALSE(adapter->IsDiscovering()); |
| 1332 } | 1429 } |
| 1333 | 1430 |
| 1334 TEST_F(BluetoothAdapterTest, | 1431 TEST_F(BluetoothAdapterChromeOsTest, |
| 1335 DefaultAdapterDiscoveringPropertyResetOnReplaceWhenTrue) { | 1432 DefaultAdapterDiscoveringPropertyResetOnReplaceWhenTrue) { |
| 1336 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); | 1433 const dbus::ObjectPath initial_adapter_path("/fake/hci0"); |
| 1337 const dbus::ObjectPath new_adapter_path("/fake/hci1"); | 1434 const dbus::ObjectPath new_adapter_path("/fake/hci1"); |
| 1338 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; | 1435 const std::string initial_adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1339 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; | 1436 const std::string new_adapter_address = "BA:C0:11:CO:FE:FE"; |
| 1340 | 1437 |
| 1341 // Create the default adapter instance; | 1438 // Create the default adapter instance; |
| 1342 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1439 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1343 // a callback to obtain the adapter path. | 1440 // a callback to obtain the adapter path. |
| 1344 BluetoothManagerClient::AdapterCallback adapter_callback; | 1441 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1345 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1442 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1346 .WillOnce(SaveArg<0>(&adapter_callback)); | 1443 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1347 | 1444 |
| 1348 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1445 scoped_refptr<BluetoothAdapter> adapter = |
| 1446 BluetoothAdapterFactory::DefaultAdapter(); |
| 1349 | 1447 |
| 1350 // Call the adapter callback; | 1448 // Call the adapter callback; |
| 1351 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1449 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1352 // the property set. | 1450 // the property set. |
| 1353 MockBluetoothAdapterClient::Properties initial_adapter_properties; | 1451 MockBluetoothAdapterClient::Properties initial_adapter_properties; |
| 1354 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); | 1452 initial_adapter_properties.address.ReplaceValue(initial_adapter_address); |
| 1355 initial_adapter_properties.discovering.ReplaceValue(true); | 1453 initial_adapter_properties.discovering.ReplaceValue(true); |
| 1356 | 1454 |
| 1357 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) | 1455 EXPECT_CALL(*mock_adapter_client_, GetProperties(initial_adapter_path)) |
| 1358 .WillRepeatedly(Return(&initial_adapter_properties)); | 1456 .WillRepeatedly(Return(&initial_adapter_properties)); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 1388 InSequence s; | 1486 InSequence s; |
| 1389 | 1487 |
| 1390 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), | 1488 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), |
| 1391 false)) | 1489 false)) |
| 1392 .Times(1); | 1490 .Times(1); |
| 1393 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), | 1491 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), |
| 1394 true)) | 1492 true)) |
| 1395 .Times(1); | 1493 .Times(1); |
| 1396 } | 1494 } |
| 1397 | 1495 |
| 1398 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 1496 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1497 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1498 |
| 1499 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 1399 ->DefaultAdapterChanged(new_adapter_path); | 1500 ->DefaultAdapterChanged(new_adapter_path); |
| 1400 | 1501 |
| 1401 // Adapter should have the new property value. | 1502 // Adapter should have the new property value. |
| 1402 EXPECT_TRUE(adapter->IsDiscovering()); | 1503 EXPECT_TRUE(adapter->IsDiscovering()); |
| 1403 } | 1504 } |
| 1404 | 1505 |
| 1405 TEST_F(BluetoothAdapterTest, DefaultAdapterDiscoveringPropertyResetOnRemove) { | 1506 TEST_F(BluetoothAdapterChromeOsTest, |
| 1507 DefaultAdapterDiscoveringPropertyResetOnRemove) { |
| 1406 const dbus::ObjectPath adapter_path("/fake/hci0"); | 1508 const dbus::ObjectPath adapter_path("/fake/hci0"); |
| 1407 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; | 1509 const std::string adapter_address = "CA:FE:4A:C0:FE:FE"; |
| 1408 | 1510 |
| 1409 // Create the default adapter instance; | 1511 // Create the default adapter instance; |
| 1410 // BluetoothManagerClient::DefaultAdapter will be called once, passing | 1512 // BluetoothManagerClient::DefaultAdapter will be called once, passing |
| 1411 // a callback to obtain the adapter path. | 1513 // a callback to obtain the adapter path. |
| 1412 BluetoothManagerClient::AdapterCallback adapter_callback; | 1514 BluetoothManagerClient::AdapterCallback adapter_callback; |
| 1413 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) | 1515 EXPECT_CALL(*mock_manager_client_, DefaultAdapter(_)) |
| 1414 .WillOnce(SaveArg<0>(&adapter_callback)); | 1516 .WillOnce(SaveArg<0>(&adapter_callback)); |
| 1415 | 1517 |
| 1416 scoped_refptr<BluetoothAdapter> adapter = BluetoothAdapter::DefaultAdapter(); | 1518 scoped_refptr<BluetoothAdapter> adapter = |
| 1519 BluetoothAdapterFactory::DefaultAdapter(); |
| 1417 | 1520 |
| 1418 // Call the adapter callback; | 1521 // Call the adapter callback; |
| 1419 // BluetoothAdapterClient::GetProperties will be called once to obtain | 1522 // BluetoothAdapterClient::GetProperties will be called once to obtain |
| 1420 // the property set. | 1523 // the property set. |
| 1421 MockBluetoothAdapterClient::Properties adapter_properties; | 1524 MockBluetoothAdapterClient::Properties adapter_properties; |
| 1422 adapter_properties.address.ReplaceValue(adapter_address); | 1525 adapter_properties.address.ReplaceValue(adapter_address); |
| 1423 adapter_properties.discovering.ReplaceValue(true); | 1526 adapter_properties.discovering.ReplaceValue(true); |
| 1424 | 1527 |
| 1425 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) | 1528 EXPECT_CALL(*mock_adapter_client_, GetProperties(adapter_path)) |
| 1426 .WillRepeatedly(Return(&adapter_properties)); | 1529 .WillRepeatedly(Return(&adapter_properties)); |
| 1427 | 1530 |
| 1428 adapter_callback.Run(adapter_path, true); | 1531 adapter_callback.Run(adapter_path, true); |
| 1429 | 1532 |
| 1430 // Report that the adapter has been removed; | 1533 // Report that the adapter has been removed; |
| 1431 // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called. | 1534 // BluetoothAdapter::Observer::AdapterDiscoveringChanged will be called. |
| 1432 MockBluetoothAdapter::Observer adapter_observer; | 1535 MockBluetoothAdapter::Observer adapter_observer; |
| 1433 adapter->AddObserver(&adapter_observer); | 1536 adapter->AddObserver(&adapter_observer); |
| 1434 | 1537 |
| 1435 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) | 1538 EXPECT_CALL(adapter_observer, AdapterPresentChanged(adapter.get(), false)) |
| 1436 .Times(1); | 1539 .Times(1); |
| 1437 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), false)) | 1540 EXPECT_CALL(adapter_observer, AdapterDiscoveringChanged(adapter.get(), false)) |
| 1438 .Times(1); | 1541 .Times(1); |
| 1439 | 1542 |
| 1440 static_cast<BluetoothManagerClient::Observer*>(adapter.get()) | 1543 BluetoothAdapterChromeOs* adapter_chromeos = |
| 1544 static_cast<BluetoothAdapterChromeOs*>(adapter.get()); |
| 1545 |
| 1546 static_cast<BluetoothManagerClient::Observer*>(adapter_chromeos) |
| 1441 ->AdapterRemoved(adapter_path); | 1547 ->AdapterRemoved(adapter_path); |
| 1442 | 1548 |
| 1443 // Adapter should have the new property value. | 1549 // Adapter should have the new property value. |
| 1444 EXPECT_FALSE(adapter->IsDiscovering()); | 1550 EXPECT_FALSE(adapter->IsDiscovering()); |
| 1445 } | 1551 } |
| 1446 | 1552 |
| 1447 } // namespace chromeos | 1553 } // namespace chromeos |
| OLD | NEW |