mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 13:50:40 +01:00

This is a replacement for `connections()`, which is const-qualified but returns a `rtc::ArrayView<const cricket::Connection*>`. Unfortunately, this is a view of mutable pointers to `const cricket::Connection` objects: this means that the pointers in `IceControllerInterface`'s backing store can be reassigned. Returning `rtc::ArrayView<const cricket::Connection* const>` is more consistent with how a view returned from a const-qualified method should behave. Unfortunately, there are downstream overrides of this method, so instead of just fixing this outright, add a new method with the correct return type. Once downstream is updated, the old method can then be removed. Bug: chromium:1409870, webrtc:15702 Change-Id: I3d8f0c2f0bcf4c393ee63959cb61761ac00a28ab Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/329962 Reviewed-by: Jonas Oreland <jonaso@google.com> Reviewed-by: Harald Alvestrand <hta@webrtc.org> Commit-Queue: Daniel Cheng <dcheng@chromium.org> Cr-Commit-Position: refs/heads/main@{#41318}
94 lines
3.2 KiB
C++
94 lines
3.2 KiB
C++
/*
|
|
* Copyright 2018 The WebRTC Project Authors. All rights reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
#ifndef P2P_BASE_MOCK_ICE_CONTROLLER_H_
|
|
#define P2P_BASE_MOCK_ICE_CONTROLLER_H_
|
|
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
#include "p2p/base/ice_controller_factory_interface.h"
|
|
#include "p2p/base/ice_controller_interface.h"
|
|
#include "test/gmock.h"
|
|
|
|
namespace cricket {
|
|
|
|
class MockIceController : public cricket::IceControllerInterface {
|
|
public:
|
|
explicit MockIceController(const cricket::IceControllerFactoryArgs& args) {}
|
|
~MockIceController() override = default;
|
|
|
|
MOCK_METHOD(void, SetIceConfig, (const cricket::IceConfig&), (override));
|
|
MOCK_METHOD(void,
|
|
SetSelectedConnection,
|
|
(const cricket::Connection*),
|
|
(override));
|
|
MOCK_METHOD(void, AddConnection, (const cricket::Connection*), (override));
|
|
MOCK_METHOD(void,
|
|
OnConnectionDestroyed,
|
|
(const cricket::Connection*),
|
|
(override));
|
|
MOCK_METHOD(rtc::ArrayView<const cricket::Connection* const>,
|
|
GetConnections,
|
|
(),
|
|
(const, override));
|
|
MOCK_METHOD(rtc::ArrayView<const cricket::Connection*>,
|
|
connections,
|
|
(),
|
|
(const, override));
|
|
MOCK_METHOD(bool, HasPingableConnection, (), (const, override));
|
|
MOCK_METHOD(cricket::IceControllerInterface::PingResult,
|
|
SelectConnectionToPing,
|
|
(int64_t),
|
|
(override));
|
|
MOCK_METHOD(bool,
|
|
GetUseCandidateAttr,
|
|
(const cricket::Connection*,
|
|
cricket::NominationMode,
|
|
cricket::IceMode),
|
|
(const, override));
|
|
MOCK_METHOD(const cricket::Connection*,
|
|
FindNextPingableConnection,
|
|
(),
|
|
(override));
|
|
MOCK_METHOD(void,
|
|
MarkConnectionPinged,
|
|
(const cricket::Connection*),
|
|
(override));
|
|
MOCK_METHOD(cricket::IceControllerInterface::SwitchResult,
|
|
ShouldSwitchConnection,
|
|
(cricket::IceSwitchReason, const cricket::Connection*),
|
|
(override));
|
|
MOCK_METHOD(cricket::IceControllerInterface::SwitchResult,
|
|
SortAndSwitchConnection,
|
|
(cricket::IceSwitchReason),
|
|
(override));
|
|
MOCK_METHOD(std::vector<const cricket::Connection*>,
|
|
PruneConnections,
|
|
(),
|
|
(override));
|
|
};
|
|
|
|
class MockIceControllerFactory : public cricket::IceControllerFactoryInterface {
|
|
public:
|
|
~MockIceControllerFactory() override = default;
|
|
|
|
std::unique_ptr<cricket::IceControllerInterface> Create(
|
|
const cricket::IceControllerFactoryArgs& args) override {
|
|
RecordIceControllerCreated();
|
|
return std::make_unique<MockIceController>(args);
|
|
}
|
|
|
|
MOCK_METHOD(void, RecordIceControllerCreated, ());
|
|
};
|
|
|
|
} // namespace cricket
|
|
|
|
#endif // P2P_BASE_MOCK_ICE_CONTROLLER_H_
|