Chromium Code Reviews| Index: device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc |
| diff --git a/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc b/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc |
| index 52fabd3edfc592e64380f751c093ddcfd6b3cd42..332669bc3c6ce858024a61767636a05e0ad6fb84 100644 |
| --- a/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc |
| +++ b/device/bluetooth/bluetooth_remote_gatt_characteristic_unittest.cc |
| @@ -64,7 +64,7 @@ class BluetoothRemoteGattCharacteristicTest : public BluetoothTest { |
| // setup stage to test. |
| void StartNotifyBoilerplate( |
| int properties, |
| - uint16_t expected_config_descriptor_value, |
| + NotifyValueState notify_value_state, |
| StartNotifySetupError error = StartNotifySetupError::NONE) { |
| if (error == StartNotifySetupError::CHARACTERISTIC_PROPERTIES) { |
| properties = 0; |
| @@ -112,7 +112,7 @@ class BluetoothRemoteGattCharacteristicTest : public BluetoothTest { |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| EXPECT_EQ(1, callback_count_); |
| EXPECT_EQ(0, error_callback_count_); |
| ASSERT_EQ(1u, notify_sessions_.size()); |
| @@ -122,20 +122,7 @@ class BluetoothRemoteGattCharacteristicTest : public BluetoothTest { |
| EXPECT_TRUE(notify_sessions_[0]->IsActive()); |
| // Verify the Client Characteristic Configuration descriptor was written to. |
| -#if !defined(OS_MACOSX) |
| - // macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| - // setNotifyValue:forCharacteristic:] which handles all interactions with |
| - // the CCC descriptor. |
| - EXPECT_EQ(1, gatt_write_descriptor_attempts_); |
| - EXPECT_EQ(2u, last_write_value_.size()); |
| - uint8_t expected_byte0 = expected_config_descriptor_value & 0xFF; |
| - uint8_t expected_byte1 = (expected_config_descriptor_value >> 8) & 0xFF; |
| - EXPECT_EQ(expected_byte0, last_write_value_[0]); |
| - EXPECT_EQ(expected_byte1, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedNotifyValue(notify_value_state); |
| } |
| BluetoothDevice* device_ = nullptr; |
| @@ -998,11 +985,10 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1, |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY, |
| StartNotifySetupError::CHARACTERISTIC_PROPERTIES)); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| // The expected error callback is asynchronous: |
| EXPECT_EQ(0, error_callback_count_); |
| @@ -1023,11 +1009,10 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1, |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY, |
| StartNotifySetupError::CONFIG_DESCRIPTOR_MISSING)); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| // The expected error callback is asynchronous: |
| EXPECT_EQ(0, error_callback_count_); |
| @@ -1048,11 +1033,10 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1, |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY, |
| StartNotifySetupError::CONFIG_DESCRIPTOR_DUPLICATE)); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| // The expected error callback is asynchronous: |
| EXPECT_EQ(0, error_callback_count_); |
| @@ -1073,8 +1057,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| TEST_F(BluetoothRemoteGattCharacteristicTest, |
| StartNotifySession_FailToSetCharacteristicNotification) { |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1, |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY, |
| StartNotifySetupError::SET_NOTIFY)); |
| // The expected error callback is asynchronous: |
| @@ -1082,7 +1065,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(1, error_callback_count_); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| ASSERT_EQ(0u, notify_sessions_.size()); |
| } |
| #endif // defined(OS_ANDROID) |
| @@ -1096,8 +1079,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| TEST_F(BluetoothRemoteGattCharacteristicTest, |
| StartNotifySession_WriteDescriptorSynchronousError) { |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1, |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY, |
| StartNotifySetupError::WRITE_DESCRIPTOR)); |
| // The expected error callback is asynchronous: |
| @@ -1105,7 +1087,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| base::RunLoop().RunUntilIdle(); |
| EXPECT_EQ(1, error_callback_count_); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
|
ortuno
2017/02/23 05:56:00
This is failing because we were unable to write to
jlebel
2017/02/23 18:40:32
Ah yes, that was obvious...
jlebel
2017/02/23 21:58:52
Well it was not that obvious:
EXPECT_EQ(1, gatt_no
|
| ASSERT_EQ(0u, notify_sessions_.size()); |
| } |
| #endif // defined(OS_ANDROID) |
| @@ -1118,8 +1101,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StartNotifySession) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| } |
| #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) |
| @@ -1131,8 +1113,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StartNotifySession_OnIndicate) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: INDICATE */ 0x20, |
| - /* expected_config_descriptor_value: INDICATE */ 2)); |
| + /* properties: INDICATE */ 0x20, NotifyValueState::INDICATE)); |
| } |
| #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) |
| @@ -1147,7 +1128,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| /* properties: NOTIFY and INDICATE bits set */ 0x30, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + NotifyValueState::NOTIFY)); |
| } |
| #endif // defined(OS_ANDROID) || defined(OS_MACOSX) || defined(OS_WIN) |
| @@ -1175,7 +1156,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StartNotifySession_Multiple) { |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(2, callback_count_); |
| EXPECT_EQ(0, error_callback_count_); |
| ASSERT_EQ(2u, notify_sessions_.size()); |
| @@ -1210,7 +1192,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| GetGattErrorCallback(Call::EXPECTED)); |
| characteristic1_->StartNotifySession(GetNotifyCallback(Call::NOT_EXPECTED), |
| GetGattErrorCallback(Call::EXPECTED)); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStartError( |
| characteristic1_, BluetoothRemoteGattService::GATT_ERROR_FAILED); |
| @@ -1238,7 +1221,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StartNotifySession_AfterDeleted) { |
| characteristic1_->StartNotifySession(GetNotifyCallback(Call::NOT_EXPECTED), |
| GetGattErrorCallback(Call::EXPECTED)); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(0, callback_count_); |
| RememberCharacteristicForSubsequentAction(characteristic1_); |
| @@ -1273,7 +1257,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| characteristic1_->StartNotifySession( |
| GetNotifyCallback(Call::EXPECTED), |
| GetGattErrorCallback(Call::NOT_EXPECTED)); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| @@ -1321,12 +1306,13 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| false /* error_in_reentrant */)); |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| // Simulate reentrant StartNotifySession request from |
| // BluetoothTestBase::ReentrantStartNotifySessionSuccessCallback. |
| base::RunLoop().RunUntilIdle(); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| EXPECT_EQ(2, callback_count_); |
| EXPECT_EQ(0, error_callback_count_); |
| ASSERT_EQ(2u, notify_sessions_.size()); |
| @@ -1361,13 +1347,14 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| Call::EXPECTED, characteristic1_, false /* error_in_reentrant */)); |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| EXPECT_EQ(1, error_callback_count_); |
| // Simulate reentrant StartNotifySession request from |
| // BluetoothTestBase::ReentrantStartNotifySessionErrorCallback. |
| SimulateGattNotifySessionStarted(characteristic1_); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(1, callback_count_); |
| EXPECT_EQ(1, error_callback_count_); |
| ASSERT_EQ(1u, notify_sessions_.size()); |
| @@ -1400,12 +1387,12 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| Call::EXPECTED, characteristic1_, true /* error_in_reentrant */)); |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| // Simulate reentrant StartNotifySession request from |
| // BluetoothTestBase::ReentrantStartNotifySessionErrorCallback. |
| SimulateGattNotifySessionStarted(characteristic1_); |
| - EXPECT_EQ(0, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(0); |
| EXPECT_EQ(0, callback_count_); |
| EXPECT_EQ(2, error_callback_count_); |
| ASSERT_EQ(0u, notify_sessions_.size()); |
| @@ -1420,35 +1407,16 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - EXPECT_EQ(1, gatt_write_descriptor_attempts_); |
| -#else |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| notify_sessions_[0]->Stop(GetStopNotifyCallback(Call::EXPECTED)); |
| SimulateGattNotifySessionStopped(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that the right values were written to the descriptor. |
| - EXPECT_EQ(2, gatt_write_descriptor_attempts_); |
| - ASSERT_EQ(2u, last_write_value_.size()); |
| - EXPECT_EQ(0, last_write_value_[0]); |
| - EXPECT_EQ(0, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(2, gatt_notify_characteristic_attempts_); |
| - EXPECT_FALSE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(2); |
| + ExpectedNotifyValue(NotifyValueState::NONE); |
| // Check that the notify session is inactive. |
| EXPECT_FALSE(notify_sessions_[0]->IsActive()); |
| @@ -1465,35 +1433,16 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - EXPECT_EQ(1, gatt_write_descriptor_attempts_); |
| -#else |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| notify_sessions_.clear(); |
| SimulateGattNotifySessionStopped(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that the right values were written to the descriptor. |
| - EXPECT_EQ(2, gatt_write_descriptor_attempts_); |
| - ASSERT_EQ(2u, last_write_value_.size()); |
| - EXPECT_EQ(0, last_write_value_[0]); |
| - EXPECT_EQ(0, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(2, gatt_notify_characteristic_attempts_); |
| - EXPECT_FALSE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(2); |
| + ExpectedNotifyValue(NotifyValueState::NONE); |
| // Check that the notify session is inactive. |
| EXPECT_FALSE(characteristic1_->IsNotifying()); |
| @@ -1528,7 +1477,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(2, callback_count_); |
| EXPECT_EQ(0, error_callback_count_); |
| ASSERT_EQ(2u, notify_sessions_.size()); |
| @@ -1568,8 +1518,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_Cancelled) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| // Check that the session is correctly setup. |
| std::string characteristic_identifier = characteristic1_->GetIdentifier(); |
| @@ -1594,8 +1543,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_AfterDeleted) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| // Check that the session is correctly setup |
| std::string characteristic_identifier = characteristic1_->GetIdentifier(); |
| @@ -1632,35 +1580,16 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_OnIndicate) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: INDICATE */ 0x20, |
| - /* expected_config_descriptor_value: INDICATE */ 2)); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - EXPECT_EQ(1, gatt_write_descriptor_attempts_); |
| -#else |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + /* properties: INDICATE */ 0x20, NotifyValueState::INDICATE)); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::INDICATE); |
| notify_sessions_[0]->Stop(GetStopNotifyCallback(Call::EXPECTED)); |
| SimulateGattNotifySessionStopped(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that the right values were written to the descriptor. |
| - EXPECT_EQ(2, gatt_write_descriptor_attempts_); |
| - ASSERT_EQ(2u, last_write_value_.size()); |
| - EXPECT_EQ(0, last_write_value_[0]); |
| - EXPECT_EQ(0, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(2, gatt_notify_characteristic_attempts_); |
| - EXPECT_FALSE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(2); |
| + ExpectedNotifyValue(NotifyValueState::NONE); |
| // Check that the notify session is inactive. |
| EXPECT_FALSE(notify_sessions_[0]->IsActive()); |
| @@ -1679,34 +1608,16 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| /* properties: NOTIFY and INDICATE bits set */ 0x30, |
| - /* expected_config_descriptor_value: INDICATE */ 1)); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - EXPECT_EQ(1, gatt_write_descriptor_attempts_); |
| -#else |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + NotifyValueState::NOTIFY)); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| notify_sessions_[0]->Stop(GetStopNotifyCallback(Call::EXPECTED)); |
| SimulateGattNotifySessionStopped(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that the right values were written to the descriptor. |
| - EXPECT_EQ(2, gatt_write_descriptor_attempts_); |
| - ASSERT_EQ(2u, last_write_value_.size()); |
| - EXPECT_EQ(0, last_write_value_[0]); |
| - EXPECT_EQ(0, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(2, gatt_notify_characteristic_attempts_); |
| - EXPECT_FALSE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(2); |
| + ExpectedNotifyValue(NotifyValueState::NONE); |
| // Check that the notify session is inactive. |
| EXPECT_FALSE(notify_sessions_[0]->IsActive()); |
| @@ -1722,8 +1633,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_Error) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| // Check that the notify session is active. |
| EXPECT_TRUE(notify_sessions_[0]->IsActive()); |
| @@ -1766,7 +1676,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_Multiple1) { |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(1, callback_count_); |
| EXPECT_EQ(0, error_callback_count_); |
| ASSERT_EQ(1u, notify_sessions_.size()); |
| @@ -1814,7 +1725,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_Multiple2) { |
| EXPECT_EQ(0, callback_count_); |
| SimulateGattNotifySessionStarted(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| EXPECT_EQ(2, callback_count_); |
| EXPECT_EQ(0, error_callback_count_); |
| ASSERT_EQ(2u, notify_sessions_.size()); |
| @@ -1902,8 +1814,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| // Check that the initial notify session is active. |
| EXPECT_TRUE(notify_sessions_[0]->IsActive()); |
| @@ -1976,48 +1887,23 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_StopStopStart) { |
| ASSERT_EQ(1u, notify_sessions_.size()); |
| ASSERT_TRUE(notify_sessions_[0]); |
| EXPECT_TRUE(notify_sessions_[0]->IsActive()); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - EXPECT_EQ(1, gatt_write_descriptor_attempts_); |
| -#else |
| - EXPECT_EQ(1, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(1); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| // Stop the notify session twice |
| notify_sessions_[0]->Stop(GetStopNotifyCheckForPrecedingCalls(1)); |
| notify_sessions_[0]->Stop(GetStopNotifyCheckForPrecedingCalls(2)); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that the right values were written to the descriptor. |
| - EXPECT_EQ(2, gatt_write_descriptor_attempts_); |
| - ASSERT_EQ(2u, last_write_value_.size()); |
| - EXPECT_EQ(0, last_write_value_[0]); |
| - EXPECT_EQ(0, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(2, gatt_notify_characteristic_attempts_); |
| - EXPECT_FALSE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(2); |
| + ExpectedNotifyValue(NotifyValueState::NONE); |
| // Start another notify session |
| characteristic1_->StartNotifySession( |
| GetNotifyCheckForPrecedingCalls(3), |
| GetGattErrorCallback(Call::NOT_EXPECTED)); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that nothing was written by the StartNotifySession call above |
| - EXPECT_EQ(2, gatt_write_descriptor_attempts_); |
| -#else |
| - EXPECT_EQ(2, gatt_notify_characteristic_attempts_); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(2); |
| + ExpectedNotifyValue(NotifyValueState::NONE); |
| SimulateGattNotifySessionStopped(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| @@ -2026,19 +1912,8 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, StopNotifySession_StopStopStart) { |
| SimulateGattNotifySessionStarted(characteristic1_); |
| base::RunLoop().RunUntilIdle(); |
| -// macOS: Not applicable. CoreBluetooth exposes -[CBPeripheral |
| -// setNotifyValue:forCharacteristic:] which handles all interactions with |
| -// the CCC descriptor. |
| -#if !defined(OS_MACOSX) |
| - // Check that the right values were written to the descriptor. |
| - EXPECT_EQ(3, gatt_write_descriptor_attempts_); |
| - ASSERT_EQ(2u, last_write_value_.size()); |
| - EXPECT_EQ(1, last_write_value_[0]); |
| - EXPECT_EQ(0, last_write_value_[1]); |
| -#else |
| - EXPECT_EQ(3, gatt_notify_characteristic_attempts_); |
| - EXPECT_TRUE(last_notify_value); |
| -#endif // !defined(OS_MACOSX) |
| + ExpectedChangeNotifyValueAttempts(3); |
| + ExpectedNotifyValue(NotifyValueState::NOTIFY); |
| // Check the notify state |
| ASSERT_EQ(2u, notify_sessions_.size()); |
| @@ -2102,8 +1977,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| // Check that the notify session is active. |
| EXPECT_TRUE(notify_sessions_[0]->IsActive()); |
| @@ -2148,8 +2022,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| // Check that the notify session is active. |
| EXPECT_TRUE(notify_sessions_[0]->IsActive()); |
| @@ -2192,8 +2065,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, GattCharacteristicValueChanged) { |
| return; |
| } |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| TestBluetoothAdapterObserver observer(adapter_); |
| @@ -2219,8 +2091,7 @@ TEST_F(BluetoothRemoteGattCharacteristicTest, GattCharacteristicValueChanged) { |
| TEST_F(BluetoothRemoteGattCharacteristicTest, |
| GattCharacteristicValueChanged_AfterDeleted) { |
| ASSERT_NO_FATAL_FAILURE(StartNotifyBoilerplate( |
| - /* properties: NOTIFY */ 0x10, |
| - /* expected_config_descriptor_value: NOTIFY */ 1)); |
| + /* properties: NOTIFY */ 0x10, NotifyValueState::NOTIFY)); |
| TestBluetoothAdapterObserver observer(adapter_); |
| RememberCharacteristicForSubsequentAction(characteristic1_); |