Chromium Code Reviews| Index: device/bluetooth/test/bluetooth_test.h |
| diff --git a/device/bluetooth/test/bluetooth_test.h b/device/bluetooth/test/bluetooth_test.h |
| index e6ccc6c5b9ab58ca1d9866943cdd836f823557bb..a0066e92364282c9c78869f15941f7503f963701 100644 |
| --- a/device/bluetooth/test/bluetooth_test.h |
| +++ b/device/bluetooth/test/bluetooth_test.h |
| @@ -29,6 +29,8 @@ class BluetoothDevice; |
| // BluetoothTest. |
| class BluetoothTestBase : public testing::Test { |
| public: |
| + enum class Call { EXPECTED, NOT_EXPECTED }; |
| + |
| static const std::string kTestAdapterName; |
| static const std::string kTestAdapterAddress; |
| @@ -46,10 +48,20 @@ class BluetoothTestBase : public testing::Test { |
| BluetoothTestBase(); |
| ~BluetoothTestBase() override; |
| + // Checks that no unexpected calls have been made to callbacks. |
| + // Overrides of this method should always call the parent's class method. |
| + void TearDown() override; |
| + |
| // Calls adapter_->StartDiscoverySessionWithFilter with Low Energy transport, |
| - // and this fixture's callbacks. Then RunLoop().RunUntilIdle(). |
| + // and this fixture's callbacks expecting success. |
| + // Then RunLoop().RunUntilIdle(). |
| void StartLowEnergyDiscoverySession(); |
| + // Calls adapter_->StartDiscoverySessionWithFilter with Low Energy transport, |
| + // and this fixture's callbacks expecting error. |
| + // Then RunLoop().RunUntilIdle(). |
| + void StartLowEnergyDiscoverySessionExpectedToFail(); |
| + |
| // Check if Low Energy is available. On Mac, we require OS X >= 10.10. |
| virtual bool PlatformSupportsLowEnergy() = 0; |
| @@ -148,31 +160,38 @@ class BluetoothTestBase : public testing::Test { |
| virtual void DeleteDevice(BluetoothDevice* device); |
| // Callbacks that increment |callback_count_|, |error_callback_count_|: |
| - void Callback(); |
| - void DiscoverySessionCallback(scoped_ptr<BluetoothDiscoverySession>); |
| - void GattConnectionCallback(scoped_ptr<BluetoothGattConnection>); |
| - void NotifyCallback(scoped_ptr<BluetoothGattNotifySession>); |
| - void ReadValueCallback(const std::vector<uint8>& value); |
| - void ErrorCallback(); |
| - void ConnectErrorCallback(enum BluetoothDevice::ConnectErrorCode); |
| - void GattErrorCallback(BluetoothGattService::GattErrorCode); |
| + void Callback(Call expected); |
| + void DiscoverySessionCallback(Call expected, |
| + scoped_ptr<BluetoothDiscoverySession>); |
| + void GattConnectionCallback(Call expected, |
| + scoped_ptr<BluetoothGattConnection>); |
| + void NotifyCallback(Call expected, scoped_ptr<BluetoothGattNotifySession>); |
| + void ReadValueCallback(Call expected, const std::vector<uint8>& value); |
| + void ErrorCallback(Call expected); |
| + void ConnectErrorCallback(Call expected, |
| + enum BluetoothDevice::ConnectErrorCode); |
| + void GattErrorCallback(Call expected, BluetoothGattService::GattErrorCode); |
| // Accessors to get callbacks bound to this fixture: |
| - base::Closure GetCallback(); |
| - BluetoothAdapter::DiscoverySessionCallback GetDiscoverySessionCallback(); |
| - BluetoothDevice::GattConnectionCallback GetGattConnectionCallback(); |
| - BluetoothGattCharacteristic::NotifySessionCallback GetNotifyCallback(); |
| - BluetoothGattCharacteristic::ValueCallback GetReadValueCallback(); |
| - BluetoothAdapter::ErrorCallback GetErrorCallback(); |
| - BluetoothDevice::ConnectErrorCallback GetConnectErrorCallback(); |
| + base::Closure GetCallback(Call expected); |
| + BluetoothAdapter::DiscoverySessionCallback GetDiscoverySessionCallback( |
| + Call expected); |
| + BluetoothDevice::GattConnectionCallback GetGattConnectionCallback( |
| + Call expected); |
| + BluetoothGattCharacteristic::NotifySessionCallback GetNotifyCallback( |
| + Call expected); |
| + BluetoothGattCharacteristic::ValueCallback GetReadValueCallback( |
| + Call expected); |
| + BluetoothAdapter::ErrorCallback GetErrorCallback(Call expected); |
| + BluetoothDevice::ConnectErrorCallback GetConnectErrorCallback(Call expected); |
| base::Callback<void(BluetoothGattService::GattErrorCode)> |
| - GetGattErrorCallback(); |
| + GetGattErrorCallback(Call expected); |
| // Reset all event count members to 0. |
| void ResetEventCounts(); |
| // A Message loop is required by some implementations that will PostTasks and |
| - // by base::RunLoop().RunUntilIdle() use in this fixuture. |
| + // by base::RunLoop().RunUntilIdle() use in this fixture. |
| base::MessageLoop message_loop_; |
| scoped_refptr<BluetoothAdapter> adapter_; |
| @@ -184,6 +203,7 @@ class BluetoothTestBase : public testing::Test { |
| std::vector<uint8> last_read_value_; |
| std::vector<uint8> last_write_value_; |
| BluetoothGattService::GattErrorCode last_gatt_error_code_; |
| + |
| int callback_count_ = 0; |
| int error_callback_count_ = 0; |
| int gatt_connection_attempts_ = 0; |
| @@ -192,6 +212,16 @@ class BluetoothTestBase : public testing::Test { |
| int gatt_notify_characteristic_attempts_ = 0; |
| int gatt_read_characteristic_attempts_ = 0; |
| int gatt_write_characteristic_attempts_ = 0; |
| + |
| + // The following values are used to make sure the correct callbacks |
| + // have been called. They are not reset when calling ResetEventCounts(). |
| + int expected_success_callback_calls_ = 0; |
| + int expected_error_callback_calls_ = 0; |
| + int actual_success_callback_calls_ = 0; |
| + int actual_error_callback_calls_ = 0; |
|
ortuno
2015/11/21 01:12:49
Not sure about the name here. Maybe expected_expec
scheib
2015/11/21 05:40:22
These names seem fine to me.
expected_expected is
|
| + bool unexpected_success_callback_ = false; |
| + bool unexpected_error_callback_ = false; |
| + |
| base::WeakPtrFactory<BluetoothTestBase> weak_factory_; |
| }; |