| OLD | NEW |
| 1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "chromeos/components/tether/ble_connection_manager.h" | 5 #include "chromeos/components/tether/ble_connection_manager.h" |
| 6 | 6 |
| 7 #include "base/logging.h" | 7 #include "base/logging.h" |
| 8 #include "base/timer/mock_timer.h" | 8 #include "base/timer/mock_timer.h" |
| 9 #include "chromeos/components/tether/ble_constants.h" | 9 #include "chromeos/components/tether/ble_constants.h" |
| 10 #include "chromeos/components/tether/proto/tether.pb.h" | 10 #include "chromeos/components/tether/proto/tether.pb.h" |
| (...skipping 667 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 678 std::vector<ReceivedMessage>{{test_devices_[0], "response2"}}); | 678 std::vector<ReceivedMessage>{{test_devices_[0], "response2"}}); |
| 679 | 679 |
| 680 manager_->UnregisterRemoteDevice(test_devices_[0], | 680 manager_->UnregisterRemoteDevice(test_devices_[0], |
| 681 MessageType::TETHER_AVAILABILITY_REQUEST); | 681 MessageType::TETHER_AVAILABILITY_REQUEST); |
| 682 VerifyConnectionStateChanges(std::vector<SecureChannelStatusChange>{ | 682 VerifyConnectionStateChanges(std::vector<SecureChannelStatusChange>{ |
| 683 {test_devices_[0], cryptauth::SecureChannel::Status::AUTHENTICATED, | 683 {test_devices_[0], cryptauth::SecureChannel::Status::AUTHENTICATED, |
| 684 cryptauth::SecureChannel::Status::DISCONNECTED}}); | 684 cryptauth::SecureChannel::Status::DISCONNECTED}}); |
| 685 VerifyDeviceNotRegistered(test_devices_[0]); | 685 VerifyDeviceNotRegistered(test_devices_[0]); |
| 686 } | 686 } |
| 687 | 687 |
| 688 // Test for fix to crbug.com/706640. This test will crash without the fix. |
| 689 TEST_F(BleConnectionManagerTest, |
| 690 TestSuccessfulConnection_MultipleAdvertisementsReceived) { |
| 691 EXPECT_CALL(*mock_ble_scanner_, |
| 692 RegisterScanFilterForDevice(test_devices_[0])); |
| 693 EXPECT_CALL(*mock_ble_advertiser_, |
| 694 StartAdvertisingToDevice(test_devices_[0])); |
| 695 EXPECT_CALL(*mock_ble_scanner_, |
| 696 UnregisterScanFilterForDevice(test_devices_[0])); |
| 697 EXPECT_CALL(*mock_ble_advertiser_, StopAdvertisingToDevice(test_devices_[0])); |
| 698 |
| 699 manager_->RegisterRemoteDevice(test_devices_[0], |
| 700 MessageType::TETHER_AVAILABILITY_REQUEST); |
| 701 VerifyAdvertisingTimeoutSet(test_devices_[0]); |
| 702 VerifyConnectionStateChanges(std::vector<SecureChannelStatusChange>{ |
| 703 {test_devices_[0], cryptauth::SecureChannel::Status::DISCONNECTED, |
| 704 cryptauth::SecureChannel::Status::CONNECTING}}); |
| 705 |
| 706 fake_secure_channel_factory_->SetExpectedDeviceAddress( |
| 707 std::string(kBluetoothAddress1)); |
| 708 |
| 709 // Simulate multiple advertisements being received: |
| 710 mock_ble_scanner_->SimulateScanResults(std::string(kBluetoothAddress1), |
| 711 test_devices_[0]); |
| 712 FakeSecureChannel* channel = GetChannelForDevice(test_devices_[0]); |
| 713 |
| 714 mock_ble_scanner_->SimulateScanResults(std::string(kBluetoothAddress1), |
| 715 test_devices_[0]); |
| 716 // Verify that a new channel has not been created: |
| 717 EXPECT_EQ(channel, GetChannelForDevice(test_devices_[0])); |
| 718 |
| 719 mock_ble_scanner_->SimulateScanResults(std::string(kBluetoothAddress1), |
| 720 test_devices_[0]); |
| 721 // Verify that a new channel has not been created: |
| 722 EXPECT_EQ(channel, GetChannelForDevice(test_devices_[0])); |
| 723 } |
| 724 |
| 688 TEST_F(BleConnectionManagerTest, | 725 TEST_F(BleConnectionManagerTest, |
| 689 TestSuccessfulConnection_MultipleConnectionReasons) { | 726 TestSuccessfulConnection_MultipleConnectionReasons) { |
| 690 EXPECT_CALL(*mock_ble_scanner_, | 727 EXPECT_CALL(*mock_ble_scanner_, |
| 691 RegisterScanFilterForDevice(test_devices_[0])); | 728 RegisterScanFilterForDevice(test_devices_[0])); |
| 692 EXPECT_CALL(*mock_ble_advertiser_, | 729 EXPECT_CALL(*mock_ble_advertiser_, |
| 693 StartAdvertisingToDevice(test_devices_[0])); | 730 StartAdvertisingToDevice(test_devices_[0])); |
| 694 EXPECT_CALL(*mock_ble_scanner_, | 731 EXPECT_CALL(*mock_ble_scanner_, |
| 695 UnregisterScanFilterForDevice(test_devices_[0])); | 732 UnregisterScanFilterForDevice(test_devices_[0])); |
| 696 EXPECT_CALL(*mock_ble_advertiser_, StopAdvertisingToDevice(test_devices_[0])); | 733 EXPECT_CALL(*mock_ble_advertiser_, StopAdvertisingToDevice(test_devices_[0])); |
| 697 | 734 |
| (...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1194 cryptauth::SecureChannel::Status::DISCONNECTED}, | 1231 cryptauth::SecureChannel::Status::DISCONNECTED}, |
| 1195 {test_devices_[1], cryptauth::SecureChannel::Status::CONNECTING, | 1232 {test_devices_[1], cryptauth::SecureChannel::Status::CONNECTING, |
| 1196 cryptauth::SecureChannel::Status::DISCONNECTED}, | 1233 cryptauth::SecureChannel::Status::DISCONNECTED}, |
| 1197 {test_devices_[2], cryptauth::SecureChannel::Status::CONNECTING, | 1234 {test_devices_[2], cryptauth::SecureChannel::Status::CONNECTING, |
| 1198 cryptauth::SecureChannel::Status::DISCONNECTED}}); | 1235 cryptauth::SecureChannel::Status::DISCONNECTED}}); |
| 1199 } | 1236 } |
| 1200 | 1237 |
| 1201 } // namespace tether | 1238 } // namespace tether |
| 1202 | 1239 |
| 1203 } // namespace cryptauth | 1240 } // namespace cryptauth |
| OLD | NEW |