Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(150)

Side by Side Diff: chromeos/components/tether/ble_connection_manager_unittest.cc

Issue 2804123002: BleConnectionManager: Check when receiving BLE advertisements if a SecureChannel already exists. No… (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
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.
Kyle Horimoto 2017/04/06 21:17:30 In addition to just testing that it doesn't crash,
Ryan Hansberry 2017/04/06 22:14:59 Good call, done.
689 TEST_F(BleConnectionManagerTest,
690 TestSuccessfulConnection_SendAndReceive_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 mock_ble_scanner_->SimulateScanResults(std::string(kBluetoothAddress1),
713 test_devices_[0]);
714 mock_ble_scanner_->SimulateScanResults(std::string(kBluetoothAddress1),
715 test_devices_[0]);
716
717 FakeSecureChannel* channel = GetChannelForDevice(test_devices_[0]);
718 AuthenticateChannel(test_devices_[0]);
719
720 manager_->SendMessage(test_devices_[0], "request1");
Kyle Horimoto 2017/04/06 21:17:30 Do we need the stuff from here onwards? Seems unre
Ryan Hansberry 2017/04/06 22:14:59 Nope, no need for it. Removed.
721 VerifyLastMessageSent(channel, "request1", 1);
722
723 channel->ReceiveMessage(std::string(kTetherFeature), "response1");
724 VerifyReceivedMessages(
725 std::vector<ReceivedMessage>{{test_devices_[0], "response1"}});
726
727 manager_->SendMessage(test_devices_[0], "request2");
728 VerifyLastMessageSent(channel, "request2", 2);
729
730 channel->ReceiveMessage(std::string(kTetherFeature), "response2");
731 VerifyReceivedMessages(
732 std::vector<ReceivedMessage>{{test_devices_[0], "response2"}});
733
734 manager_->UnregisterRemoteDevice(test_devices_[0],
735 MessageType::TETHER_AVAILABILITY_REQUEST);
736 VerifyConnectionStateChanges(std::vector<SecureChannelStatusChange>{
737 {test_devices_[0], cryptauth::SecureChannel::Status::AUTHENTICATED,
738 cryptauth::SecureChannel::Status::DISCONNECTED}});
739 VerifyDeviceNotRegistered(test_devices_[0]);
740 }
741
688 TEST_F(BleConnectionManagerTest, 742 TEST_F(BleConnectionManagerTest,
689 TestSuccessfulConnection_MultipleConnectionReasons) { 743 TestSuccessfulConnection_MultipleConnectionReasons) {
690 EXPECT_CALL(*mock_ble_scanner_, 744 EXPECT_CALL(*mock_ble_scanner_,
691 RegisterScanFilterForDevice(test_devices_[0])); 745 RegisterScanFilterForDevice(test_devices_[0]));
692 EXPECT_CALL(*mock_ble_advertiser_, 746 EXPECT_CALL(*mock_ble_advertiser_,
693 StartAdvertisingToDevice(test_devices_[0])); 747 StartAdvertisingToDevice(test_devices_[0]));
694 EXPECT_CALL(*mock_ble_scanner_, 748 EXPECT_CALL(*mock_ble_scanner_,
695 UnregisterScanFilterForDevice(test_devices_[0])); 749 UnregisterScanFilterForDevice(test_devices_[0]));
696 EXPECT_CALL(*mock_ble_advertiser_, StopAdvertisingToDevice(test_devices_[0])); 750 EXPECT_CALL(*mock_ble_advertiser_, StopAdvertisingToDevice(test_devices_[0]));
697 751
(...skipping 496 matching lines...) Expand 10 before | Expand all | Expand 10 after
1194 cryptauth::SecureChannel::Status::DISCONNECTED}, 1248 cryptauth::SecureChannel::Status::DISCONNECTED},
1195 {test_devices_[1], cryptauth::SecureChannel::Status::CONNECTING, 1249 {test_devices_[1], cryptauth::SecureChannel::Status::CONNECTING,
1196 cryptauth::SecureChannel::Status::DISCONNECTED}, 1250 cryptauth::SecureChannel::Status::DISCONNECTED},
1197 {test_devices_[2], cryptauth::SecureChannel::Status::CONNECTING, 1251 {test_devices_[2], cryptauth::SecureChannel::Status::CONNECTING,
1198 cryptauth::SecureChannel::Status::DISCONNECTED}}); 1252 cryptauth::SecureChannel::Status::DISCONNECTED}});
1199 } 1253 }
1200 1254
1201 } // namespace tether 1255 } // namespace tether
1202 1256
1203 } // namespace cryptauth 1257 } // namespace cryptauth
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698