| OLD | NEW |
| 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "base/message_loop.h" | 5 #include "base/message_loop.h" |
| 6 #include "chromeos/dbus/fake_bluetooth_device_client.h" | 6 #include "chromeos/dbus/fake_bluetooth_device_client.h" |
| 7 #include "chromeos/dbus/fake_bluetooth_profile_manager_client.h" | 7 #include "chromeos/dbus/fake_bluetooth_profile_manager_client.h" |
| 8 #include "chromeos/dbus/fake_bluetooth_profile_service_provider.h" | 8 #include "chromeos/dbus/fake_bluetooth_profile_service_provider.h" |
| 9 #include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h" | 9 #include "chromeos/dbus/mock_dbus_thread_manager_without_gmock.h" |
| 10 #include "device/bluetooth/bluetooth_adapter.h" | 10 #include "device/bluetooth/bluetooth_adapter.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 mock_dbus_thread_manager_ = | 41 mock_dbus_thread_manager_ = |
| 42 new MockDBusThreadManagerWithoutGMock(); | 42 new MockDBusThreadManagerWithoutGMock(); |
| 43 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager_); | 43 DBusThreadManager::InitializeForTesting(mock_dbus_thread_manager_); |
| 44 | 44 |
| 45 fake_bluetooth_profile_manager_client_ = | 45 fake_bluetooth_profile_manager_client_ = |
| 46 mock_dbus_thread_manager_->fake_bluetooth_profile_manager_client(); | 46 mock_dbus_thread_manager_->fake_bluetooth_profile_manager_client(); |
| 47 | 47 |
| 48 device::BluetoothAdapterFactory::GetAdapter( | 48 device::BluetoothAdapterFactory::GetAdapter( |
| 49 base::Bind(&BluetoothProfileChromeOSTest::AdapterCallback, | 49 base::Bind(&BluetoothProfileChromeOSTest::AdapterCallback, |
| 50 base::Unretained(this))); | 50 base::Unretained(this))); |
| 51 ASSERT_TRUE(adapter_ != NULL); | 51 ASSERT_TRUE(adapter_.get() != NULL); |
| 52 ASSERT_TRUE(adapter_->IsInitialized()); | 52 ASSERT_TRUE(adapter_->IsInitialized()); |
| 53 ASSERT_TRUE(adapter_->IsPresent()); | 53 ASSERT_TRUE(adapter_->IsPresent()); |
| 54 | 54 |
| 55 adapter_->SetPowered( | 55 adapter_->SetPowered( |
| 56 true, | 56 true, |
| 57 base::Bind(&base::DoNothing), | 57 base::Bind(&base::DoNothing), |
| 58 base::Bind(&base::DoNothing)); | 58 base::Bind(&base::DoNothing)); |
| 59 ASSERT_TRUE(adapter_->IsPowered()); | 59 ASSERT_TRUE(adapter_->IsPowered()); |
| 60 } | 60 } |
| 61 | 61 |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 164 bool success; | 164 bool success; |
| 165 scoped_refptr<net::GrowableIOBuffer> read_buffer; | 165 scoped_refptr<net::GrowableIOBuffer> read_buffer; |
| 166 | 166 |
| 167 scoped_refptr<net::StringIOBuffer> base_buffer( | 167 scoped_refptr<net::StringIOBuffer> base_buffer( |
| 168 new net::StringIOBuffer("test")); | 168 new net::StringIOBuffer("test")); |
| 169 scoped_refptr<net::DrainableIOBuffer> write_buffer; | 169 scoped_refptr<net::DrainableIOBuffer> write_buffer; |
| 170 | 170 |
| 171 // Read data from the socket; since no data should be waiting, this should | 171 // Read data from the socket; since no data should be waiting, this should |
| 172 // return success but no data. | 172 // return success but no data. |
| 173 read_buffer = new net::GrowableIOBuffer; | 173 read_buffer = new net::GrowableIOBuffer; |
| 174 success = socket->Receive(read_buffer); | 174 success = socket->Receive(read_buffer.get()); |
| 175 EXPECT_TRUE(success); | 175 EXPECT_TRUE(success); |
| 176 EXPECT_EQ(0, read_buffer->capacity()); | 176 EXPECT_EQ(0, read_buffer->capacity()); |
| 177 EXPECT_EQ(0, read_buffer->offset()); | 177 EXPECT_EQ(0, read_buffer->offset()); |
| 178 EXPECT_EQ("", socket->GetLastErrorMessage()); | 178 EXPECT_EQ("", socket->GetLastErrorMessage()); |
| 179 | 179 |
| 180 // Write data to the socket; the data should be consumed and no bytes should | 180 // Write data to the socket; the data should be consumed and no bytes should |
| 181 // be remaining. | 181 // be remaining. |
| 182 write_buffer = new net::DrainableIOBuffer(base_buffer, base_buffer->size()); | 182 write_buffer = |
| 183 success = socket->Send(write_buffer); | 183 new net::DrainableIOBuffer(base_buffer.get(), base_buffer->size()); |
| 184 success = socket->Send(write_buffer.get()); |
| 184 EXPECT_TRUE(success); | 185 EXPECT_TRUE(success); |
| 185 EXPECT_EQ(base_buffer->size(), write_buffer->BytesConsumed()); | 186 EXPECT_EQ(base_buffer->size(), write_buffer->BytesConsumed()); |
| 186 EXPECT_EQ(0, write_buffer->BytesRemaining()); | 187 EXPECT_EQ(0, write_buffer->BytesRemaining()); |
| 187 EXPECT_EQ("", socket->GetLastErrorMessage()); | 188 EXPECT_EQ("", socket->GetLastErrorMessage()); |
| 188 | 189 |
| 189 // Read data from the socket; this should match the data we sent since the | 190 // Read data from the socket; this should match the data we sent since the |
| 190 // server just echoes us. We have to spin here until there is actually data | 191 // server just echoes us. We have to spin here until there is actually data |
| 191 // to read. | 192 // to read. |
| 192 read_buffer = new net::GrowableIOBuffer; | 193 read_buffer = new net::GrowableIOBuffer; |
| 193 do { | 194 do { |
| 194 success = socket->Receive(read_buffer); | 195 success = socket->Receive(read_buffer.get()); |
| 195 } while (success && read_buffer->offset() == 0); | 196 } while (success && read_buffer->offset() == 0); |
| 196 EXPECT_TRUE(success); | 197 EXPECT_TRUE(success); |
| 197 EXPECT_NE(0, read_buffer->capacity()); | 198 EXPECT_NE(0, read_buffer->capacity()); |
| 198 EXPECT_EQ(base_buffer->size(), read_buffer->offset()); | 199 EXPECT_EQ(base_buffer->size(), read_buffer->offset()); |
| 199 EXPECT_EQ("", socket->GetLastErrorMessage()); | 200 EXPECT_EQ("", socket->GetLastErrorMessage()); |
| 200 | 201 |
| 201 std::string data = std::string(read_buffer->StartOfBuffer(), | 202 std::string data = std::string(read_buffer->StartOfBuffer(), |
| 202 read_buffer->offset()); | 203 read_buffer->offset()); |
| 203 EXPECT_EQ("test", data); | 204 EXPECT_EQ("test", data); |
| 204 | 205 |
| 205 // Write data to the socket; since the socket is closed, this should return | 206 // Write data to the socket; since the socket is closed, this should return |
| 206 // an error without writing the data and "Disconnected" as the message. | 207 // an error without writing the data and "Disconnected" as the message. |
| 207 write_buffer = new net::DrainableIOBuffer(base_buffer, base_buffer->size()); | 208 write_buffer = |
| 208 success = socket->Send(write_buffer); | 209 new net::DrainableIOBuffer(base_buffer.get(), base_buffer->size()); |
| 210 success = socket->Send(write_buffer.get()); |
| 209 EXPECT_FALSE(success); | 211 EXPECT_FALSE(success); |
| 210 EXPECT_EQ(0, write_buffer->BytesConsumed()); | 212 EXPECT_EQ(0, write_buffer->BytesConsumed()); |
| 211 EXPECT_EQ(base_buffer->size(), write_buffer->BytesRemaining()); | 213 EXPECT_EQ(base_buffer->size(), write_buffer->BytesRemaining()); |
| 212 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); | 214 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); |
| 213 | 215 |
| 214 // Read data from the socket; since the socket is closed, this should return | 216 // Read data from the socket; since the socket is closed, this should return |
| 215 // an error with "Disconnected" as the last message. | 217 // an error with "Disconnected" as the last message. |
| 216 read_buffer = new net::GrowableIOBuffer; | 218 read_buffer = new net::GrowableIOBuffer; |
| 217 success = socket->Receive(read_buffer); | 219 success = socket->Receive(read_buffer.get()); |
| 218 EXPECT_FALSE(success); | 220 EXPECT_FALSE(success); |
| 219 EXPECT_EQ(0, read_buffer->capacity()); | 221 EXPECT_EQ(0, read_buffer->capacity()); |
| 220 EXPECT_EQ(0, read_buffer->offset()); | 222 EXPECT_EQ(0, read_buffer->offset()); |
| 221 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); | 223 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); |
| 222 | 224 |
| 223 // Close our end of the socket. | 225 // Close our end of the socket. |
| 224 socket = NULL; | 226 socket = NULL; |
| 225 | 227 |
| 226 // Unregister the profile, make sure it's no longer registered. | 228 // Unregister the profile, make sure it's no longer registered. |
| 227 last_profile_->Unregister(); | 229 last_profile_->Unregister(); |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 288 bool success; | 290 bool success; |
| 289 scoped_refptr<net::GrowableIOBuffer> read_buffer; | 291 scoped_refptr<net::GrowableIOBuffer> read_buffer; |
| 290 | 292 |
| 291 scoped_refptr<net::StringIOBuffer> base_buffer( | 293 scoped_refptr<net::StringIOBuffer> base_buffer( |
| 292 new net::StringIOBuffer("test")); | 294 new net::StringIOBuffer("test")); |
| 293 scoped_refptr<net::DrainableIOBuffer> write_buffer; | 295 scoped_refptr<net::DrainableIOBuffer> write_buffer; |
| 294 | 296 |
| 295 // Read data from the socket; since no data should be waiting, this should | 297 // Read data from the socket; since no data should be waiting, this should |
| 296 // return success but no data. | 298 // return success but no data. |
| 297 read_buffer = new net::GrowableIOBuffer; | 299 read_buffer = new net::GrowableIOBuffer; |
| 298 success = socket->Receive(read_buffer); | 300 success = socket->Receive(read_buffer.get()); |
| 299 EXPECT_TRUE(success); | 301 EXPECT_TRUE(success); |
| 300 EXPECT_EQ(0, read_buffer->offset()); | 302 EXPECT_EQ(0, read_buffer->offset()); |
| 301 EXPECT_EQ("", socket->GetLastErrorMessage()); | 303 EXPECT_EQ("", socket->GetLastErrorMessage()); |
| 302 | 304 |
| 303 // Write data to the socket; the data should be consumed and no bytes should | 305 // Write data to the socket; the data should be consumed and no bytes should |
| 304 // be remaining. | 306 // be remaining. |
| 305 write_buffer = new net::DrainableIOBuffer(base_buffer, base_buffer->size()); | 307 write_buffer = |
| 306 success = socket->Send(write_buffer); | 308 new net::DrainableIOBuffer(base_buffer.get(), base_buffer->size()); |
| 309 success = socket->Send(write_buffer.get()); |
| 307 EXPECT_TRUE(success); | 310 EXPECT_TRUE(success); |
| 308 EXPECT_EQ(base_buffer->size(), write_buffer->BytesConsumed()); | 311 EXPECT_EQ(base_buffer->size(), write_buffer->BytesConsumed()); |
| 309 EXPECT_EQ(0, write_buffer->BytesRemaining()); | 312 EXPECT_EQ(0, write_buffer->BytesRemaining()); |
| 310 EXPECT_EQ("", socket->GetLastErrorMessage()); | 313 EXPECT_EQ("", socket->GetLastErrorMessage()); |
| 311 | 314 |
| 312 // Read data from the socket; this should match the data we sent since the | 315 // Read data from the socket; this should match the data we sent since the |
| 313 // server just echoes us. We have to spin here until there is actually data | 316 // server just echoes us. We have to spin here until there is actually data |
| 314 // to read. | 317 // to read. |
| 315 read_buffer = new net::GrowableIOBuffer; | 318 read_buffer = new net::GrowableIOBuffer; |
| 316 do { | 319 do { |
| 317 success = socket->Receive(read_buffer); | 320 success = socket->Receive(read_buffer.get()); |
| 318 } while (success && read_buffer->offset() == 0); | 321 } while (success && read_buffer->offset() == 0); |
| 319 EXPECT_TRUE(success); | 322 EXPECT_TRUE(success); |
| 320 EXPECT_NE(0, read_buffer->capacity()); | 323 EXPECT_NE(0, read_buffer->capacity()); |
| 321 EXPECT_EQ(base_buffer->size(), read_buffer->offset()); | 324 EXPECT_EQ(base_buffer->size(), read_buffer->offset()); |
| 322 EXPECT_EQ("", socket->GetLastErrorMessage()); | 325 EXPECT_EQ("", socket->GetLastErrorMessage()); |
| 323 | 326 |
| 324 std::string data = std::string(read_buffer->StartOfBuffer(), | 327 std::string data = std::string(read_buffer->StartOfBuffer(), |
| 325 read_buffer->offset()); | 328 read_buffer->offset()); |
| 326 EXPECT_EQ("test", data); | 329 EXPECT_EQ("test", data); |
| 327 | 330 |
| 328 // Write data to the socket; since the socket is closed, this should return | 331 // Write data to the socket; since the socket is closed, this should return |
| 329 // an error without writing the data and "Disconnected" as the message. | 332 // an error without writing the data and "Disconnected" as the message. |
| 330 write_buffer = new net::DrainableIOBuffer(base_buffer, base_buffer->size()); | 333 write_buffer = |
| 331 success = socket->Send(write_buffer); | 334 new net::DrainableIOBuffer(base_buffer.get(), base_buffer->size()); |
| 335 success = socket->Send(write_buffer.get()); |
| 332 EXPECT_FALSE(success); | 336 EXPECT_FALSE(success); |
| 333 EXPECT_EQ(0, write_buffer->BytesConsumed()); | 337 EXPECT_EQ(0, write_buffer->BytesConsumed()); |
| 334 EXPECT_EQ(base_buffer->size(), write_buffer->BytesRemaining()); | 338 EXPECT_EQ(base_buffer->size(), write_buffer->BytesRemaining()); |
| 335 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); | 339 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); |
| 336 | 340 |
| 337 // Read data from the socket; since the socket is closed, this should return | 341 // Read data from the socket; since the socket is closed, this should return |
| 338 // an error with "Disconnected" as the last message. | 342 // an error with "Disconnected" as the last message. |
| 339 read_buffer = new net::GrowableIOBuffer; | 343 read_buffer = new net::GrowableIOBuffer; |
| 340 success = socket->Receive(read_buffer); | 344 success = socket->Receive(read_buffer.get()); |
| 341 EXPECT_FALSE(success); | 345 EXPECT_FALSE(success); |
| 342 EXPECT_EQ(0, read_buffer->offset()); | 346 EXPECT_EQ(0, read_buffer->offset()); |
| 343 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); | 347 EXPECT_EQ("Disconnected", socket->GetLastErrorMessage()); |
| 344 | 348 |
| 345 // Close our end of the socket. | 349 // Close our end of the socket. |
| 346 socket = NULL; | 350 socket = NULL; |
| 347 | 351 |
| 348 // Unregister the profile, make sure it's no longer registered. | 352 // Unregister the profile, make sure it's no longer registered. |
| 349 last_profile_->Unregister(); | 353 last_profile_->Unregister(); |
| 350 | 354 |
| 351 profile_service_provider = | 355 profile_service_provider = |
| 352 fake_bluetooth_profile_manager_client_->GetProfileServiceProvider( | 356 fake_bluetooth_profile_manager_client_->GetProfileServiceProvider( |
| 353 FakeBluetoothProfileManagerClient::kRfcommUuid); | 357 FakeBluetoothProfileManagerClient::kRfcommUuid); |
| 354 EXPECT_TRUE(profile_service_provider == NULL); | 358 EXPECT_TRUE(profile_service_provider == NULL); |
| 355 } | 359 } |
| 356 | 360 |
| 357 } // namespace chromeos | 361 } // namespace chromeos |
| OLD | NEW |