| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "device/bluetooth/test/bluetooth_test_android.h" | 5 #include "device/bluetooth/test/bluetooth_test_android.h" |
| 6 | 6 |
| 7 #include <iterator> | 7 #include <iterator> |
| 8 #include <sstream> | 8 #include <sstream> |
| 9 | 9 |
| 10 #include "base/android/jni_array.h" | 10 #include "base/android/jni_array.h" |
| (...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 169 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = | 169 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = |
| 170 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); | 170 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); |
| 171 | 171 |
| 172 Java_FakeBluetoothGattCharacteristic_rememberCharacteristicForSubsequentAction
( | 172 Java_FakeBluetoothGattCharacteristic_rememberCharacteristicForSubsequentAction
( |
| 173 base::android::AttachCurrentThread(), | 173 base::android::AttachCurrentThread(), |
| 174 characteristic_android->GetJavaObject().obj()); | 174 characteristic_android->GetJavaObject().obj()); |
| 175 } | 175 } |
| 176 | 176 |
| 177 void BluetoothTestAndroid::SimulateGattNotifySessionStarted( | 177 void BluetoothTestAndroid::SimulateGattNotifySessionStarted( |
| 178 BluetoothGattCharacteristic* characteristic) { | 178 BluetoothGattCharacteristic* characteristic) { |
| 179 // Android doesn't provide any sort of callback for when notifications have | 179 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = |
| 180 // been enabled. So, just run the message loop to process the success | 180 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); |
| 181 // callback. | 181 |
| 182 base::RunLoop().RunUntilIdle(); | 182 Java_FakeBluetoothGattCharacteristic_notifySessionStarted( |
| 183 base::android::AttachCurrentThread(), |
| 184 characteristic_android ? characteristic_android->GetJavaObject().obj() |
| 185 : nullptr, |
| 186 0); // android.bluetooth.BluetoothGatt.GATT_SUCCESS |
| 183 } | 187 } |
| 184 | 188 |
| 185 void BluetoothTestAndroid:: | 189 void BluetoothTestAndroid:: |
| 186 SimulateGattCharacteristicSetNotifyWillFailSynchronouslyOnce( | 190 SimulateGattCharacteristicSetNotifyWillFailSynchronouslyOnce( |
| 187 BluetoothGattCharacteristic* characteristic) { | 191 BluetoothGattCharacteristic* characteristic) { |
| 188 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = | 192 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = |
| 189 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); | 193 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); |
| 190 JNIEnv* env = base::android::AttachCurrentThread(); | 194 JNIEnv* env = base::android::AttachCurrentThread(); |
| 191 | 195 |
| 192 Java_FakeBluetoothGattCharacteristic_setCharacteristicNotificationWillFailSync
hronouslyOnce( | 196 Java_FakeBluetoothGattCharacteristic_setCharacteristicNotificationWillFailSync
hronouslyOnce( |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 284 const std::string& uuid) { | 288 const std::string& uuid) { |
| 285 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = | 289 BluetoothRemoteGattCharacteristicAndroid* characteristic_android = |
| 286 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); | 290 static_cast<BluetoothRemoteGattCharacteristicAndroid*>(characteristic); |
| 287 JNIEnv* env = base::android::AttachCurrentThread(); | 291 JNIEnv* env = base::android::AttachCurrentThread(); |
| 288 | 292 |
| 289 Java_FakeBluetoothGattCharacteristic_addDescriptor( | 293 Java_FakeBluetoothGattCharacteristic_addDescriptor( |
| 290 env, characteristic_android->GetJavaObject().obj(), | 294 env, characteristic_android->GetJavaObject().obj(), |
| 291 base::android::ConvertUTF8ToJavaString(env, uuid).obj()); | 295 base::android::ConvertUTF8ToJavaString(env, uuid).obj()); |
| 292 } | 296 } |
| 293 | 297 |
| 298 void BluetoothTestAndroid::RememberDescriptorForSubsequentAction( |
| 299 BluetoothGattDescriptor* descriptor) { |
| 300 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 301 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 302 |
| 303 Java_FakeBluetoothGattDescriptor_rememberDescriptorForSubsequentAction( |
| 304 base::android::AttachCurrentThread(), |
| 305 descriptor_android->GetJavaObject().obj()); |
| 306 } |
| 307 |
| 308 void BluetoothTestAndroid::SimulateGattDescriptorRead( |
| 309 BluetoothGattDescriptor* descriptor, |
| 310 const std::vector<uint8_t>& value) { |
| 311 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 312 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 313 JNIEnv* env = base::android::AttachCurrentThread(); |
| 314 |
| 315 Java_FakeBluetoothGattDescriptor_valueRead( |
| 316 env, |
| 317 descriptor_android ? descriptor_android->GetJavaObject().obj() : nullptr, |
| 318 0, // android.bluetooth.BluetoothGatt.GATT_SUCCESS |
| 319 base::android::ToJavaByteArray(env, value).obj()); |
| 320 } |
| 321 |
| 322 void BluetoothTestAndroid::SimulateGattDescriptorReadError( |
| 323 BluetoothGattDescriptor* descriptor, |
| 324 BluetoothGattService::GattErrorCode error_code) { |
| 325 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 326 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 327 JNIEnv* env = base::android::AttachCurrentThread(); |
| 328 std::vector<uint8_t> empty_value; |
| 329 |
| 330 Java_FakeBluetoothGattDescriptor_valueRead( |
| 331 env, descriptor_android->GetJavaObject().obj(), |
| 332 BluetoothRemoteGattServiceAndroid::GetAndroidErrorCode(error_code), |
| 333 base::android::ToJavaByteArray(env, empty_value).obj()); |
| 334 } |
| 335 |
| 336 void BluetoothTestAndroid::SimulateGattDescriptorReadWillFailSynchronouslyOnce( |
| 337 BluetoothGattDescriptor* descriptor) { |
| 338 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 339 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 340 JNIEnv* env = base::android::AttachCurrentThread(); |
| 341 |
| 342 Java_FakeBluetoothGattDescriptor_setReadDescriptorWillFailSynchronouslyOnce( |
| 343 env, descriptor_android->GetJavaObject().obj()); |
| 344 } |
| 345 |
| 346 void BluetoothTestAndroid::SimulateGattDescriptorWrite( |
| 347 BluetoothGattDescriptor* descriptor) { |
| 348 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 349 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 350 Java_FakeBluetoothGattDescriptor_valueWrite( |
| 351 base::android::AttachCurrentThread(), |
| 352 descriptor_android ? descriptor_android->GetJavaObject().obj() : nullptr, |
| 353 0); // android.bluetooth.BluetoothGatt.GATT_SUCCESS |
| 354 } |
| 355 |
| 356 void BluetoothTestAndroid::SimulateGattDescriptorWriteError( |
| 357 BluetoothGattDescriptor* descriptor, |
| 358 BluetoothGattService::GattErrorCode error_code) { |
| 359 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 360 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 361 Java_FakeBluetoothGattDescriptor_valueWrite( |
| 362 base::android::AttachCurrentThread(), |
| 363 descriptor_android->GetJavaObject().obj(), |
| 364 BluetoothRemoteGattServiceAndroid::GetAndroidErrorCode(error_code)); |
| 365 } |
| 366 |
| 294 void BluetoothTestAndroid::SimulateGattDescriptorWriteWillFailSynchronouslyOnce( | 367 void BluetoothTestAndroid::SimulateGattDescriptorWriteWillFailSynchronouslyOnce( |
| 295 BluetoothGattDescriptor* descriptor) { | 368 BluetoothGattDescriptor* descriptor) { |
| 296 BluetoothRemoteGattDescriptorAndroid* descriptor_android = | 369 BluetoothRemoteGattDescriptorAndroid* descriptor_android = |
| 297 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); | 370 static_cast<BluetoothRemoteGattDescriptorAndroid*>(descriptor); |
| 298 Java_FakeBluetoothGattDescriptor_setWriteDescriptorWillFailSynchronouslyOnce( | 371 Java_FakeBluetoothGattDescriptor_setWriteDescriptorWillFailSynchronouslyOnce( |
| 299 base::android::AttachCurrentThread(), | 372 base::android::AttachCurrentThread(), |
| 300 descriptor_android->GetJavaObject().obj()); | 373 descriptor_android->GetJavaObject().obj()); |
| 301 } | 374 } |
| 302 | 375 |
| 303 void BluetoothTestAndroid::OnFakeBluetoothDeviceConnectGattCalled( | 376 void BluetoothTestAndroid::OnFakeBluetoothDeviceConnectGattCalled( |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 } | 414 } |
| 342 | 415 |
| 343 void BluetoothTestAndroid::OnFakeBluetoothGattWriteCharacteristic( | 416 void BluetoothTestAndroid::OnFakeBluetoothGattWriteCharacteristic( |
| 344 JNIEnv* env, | 417 JNIEnv* env, |
| 345 const JavaParamRef<jobject>& caller, | 418 const JavaParamRef<jobject>& caller, |
| 346 const JavaParamRef<jbyteArray>& value) { | 419 const JavaParamRef<jbyteArray>& value) { |
| 347 gatt_write_characteristic_attempts_++; | 420 gatt_write_characteristic_attempts_++; |
| 348 base::android::JavaByteArrayToByteVector(env, value, &last_write_value_); | 421 base::android::JavaByteArrayToByteVector(env, value, &last_write_value_); |
| 349 } | 422 } |
| 350 | 423 |
| 424 void BluetoothTestAndroid::OnFakeBluetoothGattReadDescriptor( |
| 425 JNIEnv* env, |
| 426 const JavaParamRef<jobject>& caller) { |
| 427 gatt_read_descriptor_attempts_++; |
| 428 } |
| 429 |
| 351 void BluetoothTestAndroid::OnFakeBluetoothGattWriteDescriptor( | 430 void BluetoothTestAndroid::OnFakeBluetoothGattWriteDescriptor( |
| 352 JNIEnv* env, | 431 JNIEnv* env, |
| 353 const JavaParamRef<jobject>& caller, | 432 const JavaParamRef<jobject>& caller, |
| 354 const JavaParamRef<jbyteArray>& value) { | 433 const JavaParamRef<jbyteArray>& value) { |
| 355 gatt_write_descriptor_attempts_++; | 434 gatt_write_descriptor_attempts_++; |
| 356 base::android::JavaByteArrayToByteVector(env, value, &last_write_value_); | 435 base::android::JavaByteArrayToByteVector(env, value, &last_write_value_); |
| 357 } | 436 } |
| 358 | 437 |
| 359 } // namespace device | 438 } // namespace device |
| OLD | NEW |