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

Unified Diff: media/cast/net/cast_transport_sender_impl_unittest.cc

Issue 1515023002: Simplify interface for media/cast: CastTransportSenderImpl (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « media/cast/net/cast_transport_sender_impl.cc ('k') | media/cast/net/mock_cast_transport_sender.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/net/cast_transport_sender_impl_unittest.cc
diff --git a/media/cast/net/cast_transport_sender_impl_unittest.cc b/media/cast/net/cast_transport_sender_impl_unittest.cc
index db6c5df65d46b91d6548873081b7331ca544f827..f2e9d5cd8469c90d5cf6058af34ebd53e21da02f 100644
--- a/media/cast/net/cast_transport_sender_impl_unittest.cc
+++ b/media/cast/net/cast_transport_sender_impl_unittest.cc
@@ -23,9 +23,11 @@ namespace media {
namespace cast {
namespace {
+
const int64_t kStartMillisecond = INT64_C(12345678900000);
const uint32_t kVideoSsrc = 1;
const uint32_t kAudioSsrc = 2;
+
} // namespace
class FakePacketSender : public PacketSender {
@@ -46,6 +48,11 @@ class FakePacketSender : public PacketSender {
int64_t GetBytesSent() final { return bytes_sent_; }
+ void StartReceiving(
+ const PacketReceiverCallbackWithStatus& packet_receiver) final {}
+
+ void StopReceiving() final {}
+
void SetPaused(bool paused) {
paused_ = paused;
if (!paused && stored_packet_.get()) {
@@ -67,6 +74,9 @@ class FakePacketSender : public PacketSender {
};
class CastTransportSenderImplTest : public ::testing::Test {
+ public:
+ void ReceivedLoggingEvents() { num_times_logging_callback_called_++; }
+
protected:
CastTransportSenderImplTest() : num_times_logging_callback_called_(0) {
testing_clock_.Advance(
@@ -76,62 +86,16 @@ class CastTransportSenderImplTest : public ::testing::Test {
~CastTransportSenderImplTest() override {}
- void InitWithoutLogging() {
- transport_sender_.reset(
- new CastTransportSenderImpl(NULL,
- &testing_clock_,
- net::IPEndPoint(),
- net::IPEndPoint(),
- make_scoped_ptr(new base::DictionaryValue),
- base::Bind(&UpdateCastTransportStatus),
- BulkRawEventsCallback(),
- base::TimeDelta(),
- task_runner_,
- PacketReceiverCallback(),
- &transport_));
- task_runner_->RunTasks();
- }
-
- void InitWithOptions() {
- scoped_ptr<base::DictionaryValue> options(
- new base::DictionaryValue);
- options->SetBoolean("DHCP", true);
- options->SetBoolean("disable_wifi_scan", true);
- options->SetBoolean("media_streaming_mode", true);
- options->SetInteger("pacer_target_burst_size", 20);
- options->SetInteger("pacer_max_burst_size", 100);
- transport_sender_.reset(new CastTransportSenderImpl(
- NULL, &testing_clock_, net::IPEndPoint(), net::IPEndPoint(),
- std::move(options), base::Bind(&UpdateCastTransportStatus),
- BulkRawEventsCallback(), base::TimeDelta(), task_runner_,
- PacketReceiverCallback(), &transport_));
- task_runner_->RunTasks();
- }
-
- void InitWithLogging() {
- transport_sender_.reset(new CastTransportSenderImpl(
- NULL,
- &testing_clock_,
- net::IPEndPoint(),
- net::IPEndPoint(),
- make_scoped_ptr(new base::DictionaryValue),
- base::Bind(&UpdateCastTransportStatus),
- base::Bind(&CastTransportSenderImplTest::LogRawEvents,
- base::Unretained(this)),
- base::TimeDelta::FromMilliseconds(10),
- task_runner_,
- PacketReceiverCallback(),
- &transport_));
- task_runner_->RunTasks();
- }
+ void InitWithoutLogging();
+ void InitWithOptions();
+ void InitWithLogging();
void InitializeVideo() {
CastTransportRtpConfig rtp_config;
rtp_config.ssrc = kVideoSsrc;
rtp_config.feedback_ssrc = 2;
rtp_config.rtp_payload_type = 3;
- transport_sender_->InitializeVideo(rtp_config,
- RtcpCastMessageCallback(),
+ transport_sender_->InitializeVideo(rtp_config, RtcpCastMessageCallback(),
RtcpRttCallback());
}
@@ -140,26 +104,75 @@ class CastTransportSenderImplTest : public ::testing::Test {
rtp_config.ssrc = kAudioSsrc;
rtp_config.feedback_ssrc = 3;
rtp_config.rtp_payload_type = 4;
- transport_sender_->InitializeAudio(rtp_config,
- RtcpCastMessageCallback(),
+ transport_sender_->InitializeAudio(rtp_config, RtcpCastMessageCallback(),
RtcpRttCallback());
}
- void LogRawEvents(scoped_ptr<std::vector<FrameEvent>> frame_events,
- scoped_ptr<std::vector<PacketEvent>> packet_events) {
- num_times_logging_callback_called_++;
- }
-
- static void UpdateCastTransportStatus(CastTransportStatus status) {
- }
-
base::SimpleTestTickClock testing_clock_;
scoped_refptr<test::FakeSingleThreadTaskRunner> task_runner_;
scoped_ptr<CastTransportSenderImpl> transport_sender_;
- FakePacketSender transport_;
+ FakePacketSender* transport_; // Owned by CastTransportSender.
int num_times_logging_callback_called_;
};
+namespace {
+
+class TransportClient : public CastTransportSender::Client {
+ public:
+ explicit TransportClient(
+ CastTransportSenderImplTest* cast_transport_sender_impl_test)
+ : cast_transport_sender_impl_test_(cast_transport_sender_impl_test) {}
+
+ void OnStatusChanged(CastTransportStatus status) final{};
+ void OnLoggingEventsReceived(
+ scoped_ptr<std::vector<FrameEvent>> frame_events,
+ scoped_ptr<std::vector<PacketEvent>> packet_events) final {
+ CHECK(cast_transport_sender_impl_test_);
+ cast_transport_sender_impl_test_->ReceivedLoggingEvents();
+ };
+ void ProcessRtpPacket(scoped_ptr<Packet> packet) final{};
+
+ private:
+ CastTransportSenderImplTest* const cast_transport_sender_impl_test_;
+
+ DISALLOW_COPY_AND_ASSIGN(TransportClient);
+};
+
+} // namespace
+
+void CastTransportSenderImplTest::InitWithoutLogging() {
+ transport_ = new FakePacketSender();
+ transport_sender_.reset(
+ new CastTransportSenderImpl(&testing_clock_, base::TimeDelta(),
+ make_scoped_ptr(new TransportClient(nullptr)),
+ make_scoped_ptr(transport_), task_runner_));
+ task_runner_->RunTasks();
+}
+
+void CastTransportSenderImplTest::InitWithOptions() {
+ scoped_ptr<base::DictionaryValue> options(new base::DictionaryValue);
+ options->SetBoolean("disable_wifi_scan", true);
+ options->SetBoolean("media_streaming_mode", true);
+ options->SetInteger("pacer_target_burst_size", 20);
+ options->SetInteger("pacer_max_burst_size", 100);
+ transport_ = new FakePacketSender();
+ transport_sender_.reset(
+ new CastTransportSenderImpl(&testing_clock_, base::TimeDelta(),
+ make_scoped_ptr(new TransportClient(nullptr)),
+ make_scoped_ptr(transport_), task_runner_));
+ transport_sender_->SetOptions(*options);
+ task_runner_->RunTasks();
+}
+
+void CastTransportSenderImplTest::InitWithLogging() {
+ transport_ = new FakePacketSender();
+ transport_sender_.reset(new CastTransportSenderImpl(
+ &testing_clock_, base::TimeDelta::FromMilliseconds(10),
+ make_scoped_ptr(new TransportClient(this)), make_scoped_ptr(transport_),
+ task_runner_));
+ task_runner_->RunTasks();
+}
+
TEST_F(CastTransportSenderImplTest, InitWithoutLogging) {
InitWithoutLogging();
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(50));
@@ -187,7 +200,7 @@ TEST_F(CastTransportSenderImplTest, NacksCancelRetransmits) {
transport_sender_->InsertFrame(kVideoSsrc, fake_frame);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
- EXPECT_EQ(4, transport_.packets_sent());
+ EXPECT_EQ(4, transport_->packets_sent());
EXPECT_EQ(1, num_times_logging_callback_called_);
// Resend packet 0.
@@ -196,7 +209,7 @@ TEST_F(CastTransportSenderImplTest, NacksCancelRetransmits) {
missing_packets[1].insert(1);
missing_packets[1].insert(2);
- transport_.SetPaused(true);
+ transport_->SetPaused(true);
DedupInfo dedup_info;
dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(10);
transport_sender_->ResendPackets(
@@ -212,13 +225,13 @@ TEST_F(CastTransportSenderImplTest, NacksCancelRetransmits) {
transport_sender_->OnReceivedCastMessage(kVideoSsrc,
RtcpCastMessageCallback(),
cast_message);
- transport_.SetPaused(false);
+ transport_->SetPaused(false);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
EXPECT_EQ(3, num_times_logging_callback_called_);
// Resend one packet in the socket when unpaused.
// Resend one more packet from NACK.
- EXPECT_EQ(6, transport_.packets_sent());
+ EXPECT_EQ(6, transport_->packets_sent());
}
TEST_F(CastTransportSenderImplTest, CancelRetransmits) {
@@ -236,14 +249,14 @@ TEST_F(CastTransportSenderImplTest, CancelRetransmits) {
transport_sender_->InsertFrame(kVideoSsrc, fake_frame);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
- EXPECT_EQ(4, transport_.packets_sent());
+ EXPECT_EQ(4, transport_->packets_sent());
EXPECT_EQ(1, num_times_logging_callback_called_);
// Resend all packets for frame 1.
MissingFramesAndPacketsMap missing_packets;
missing_packets[1].insert(kRtcpCastAllPacketsLost);
- transport_.SetPaused(true);
+ transport_->SetPaused(true);
DedupInfo dedup_info;
dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(10);
transport_sender_->ResendPackets(
@@ -256,12 +269,12 @@ TEST_F(CastTransportSenderImplTest, CancelRetransmits) {
cancel_sending_frames.push_back(1);
transport_sender_->CancelSendingFrames(kVideoSsrc,
cancel_sending_frames);
- transport_.SetPaused(false);
+ transport_->SetPaused(false);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
EXPECT_EQ(2, num_times_logging_callback_called_);
// Resend one packet in the socket when unpaused.
- EXPECT_EQ(5, transport_.packets_sent());
+ EXPECT_EQ(5, transport_->packets_sent());
}
TEST_F(CastTransportSenderImplTest, Kickstart) {
@@ -277,12 +290,12 @@ TEST_F(CastTransportSenderImplTest, Kickstart) {
fake_frame.dependency = EncodedFrame::KEY;
fake_frame.data.resize(5000, ' ');
- transport_.SetPaused(true);
+ transport_->SetPaused(true);
transport_sender_->InsertFrame(kVideoSsrc, fake_frame);
transport_sender_->ResendFrameForKickstart(kVideoSsrc, 1);
- transport_.SetPaused(false);
+ transport_->SetPaused(false);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
- EXPECT_EQ(4, transport_.packets_sent());
+ EXPECT_EQ(4, transport_->packets_sent());
EXPECT_EQ(1, num_times_logging_callback_called_);
// Resend 2 packets for frame 1.
@@ -290,19 +303,19 @@ TEST_F(CastTransportSenderImplTest, Kickstart) {
missing_packets[1].insert(0);
missing_packets[1].insert(1);
- transport_.SetPaused(true);
+ transport_->SetPaused(true);
DedupInfo dedup_info;
dedup_info.resend_interval = base::TimeDelta::FromMilliseconds(10);
transport_sender_->ResendPackets(
kVideoSsrc, missing_packets, true, dedup_info);
transport_sender_->ResendFrameForKickstart(kVideoSsrc, 1);
- transport_.SetPaused(false);
+ transport_->SetPaused(false);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(10));
EXPECT_EQ(2, num_times_logging_callback_called_);
// Resend one packet in the socket when unpaused.
// Two more retransmission packets sent.
- EXPECT_EQ(7, transport_.packets_sent());
+ EXPECT_EQ(7, transport_->packets_sent());
}
TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
@@ -324,7 +337,7 @@ TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
fake_audio.reference_time = testing_clock_.NowTicks();
transport_sender_->InsertFrame(kAudioSsrc, fake_audio);
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
- EXPECT_EQ(2, transport_.packets_sent());
+ EXPECT_EQ(2, transport_->packets_sent());
// Ack the first audio frame.
RtcpCastMessage cast_message;
@@ -334,7 +347,7 @@ TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
RtcpCastMessageCallback(),
cast_message);
task_runner_->RunTasks();
- EXPECT_EQ(2, transport_.packets_sent());
+ EXPECT_EQ(2, transport_->packets_sent());
EXPECT_EQ(0, num_times_logging_callback_called_); // Only 4 ms since last.
// Send a fake video frame that will be decomposed into 4 packets.
@@ -344,7 +357,7 @@ TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
fake_video.data.resize(5000, ' ');
transport_sender_->InsertFrame(kVideoSsrc, fake_video);
task_runner_->RunTasks();
- EXPECT_EQ(6, transport_.packets_sent());
+ EXPECT_EQ(6, transport_->packets_sent());
EXPECT_EQ(0, num_times_logging_callback_called_); // Only 4 ms since last.
// Retransmission is reject because audio is not acked yet.
@@ -356,7 +369,7 @@ TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
RtcpCastMessageCallback(),
cast_message);
task_runner_->RunTasks();
- EXPECT_EQ(6, transport_.packets_sent());
+ EXPECT_EQ(6, transport_->packets_sent());
EXPECT_EQ(1, num_times_logging_callback_called_);
// Ack the second audio frame.
@@ -368,7 +381,7 @@ TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
RtcpCastMessageCallback(),
cast_message);
task_runner_->RunTasks();
- EXPECT_EQ(6, transport_.packets_sent());
+ EXPECT_EQ(6, transport_->packets_sent());
EXPECT_EQ(1, num_times_logging_callback_called_); // Only 6 ms since last.
// Retransmission of video packet now accepted.
@@ -380,7 +393,7 @@ TEST_F(CastTransportSenderImplTest, DedupRetransmissionWithAudio) {
RtcpCastMessageCallback(),
cast_message);
task_runner_->RunTasks();
- EXPECT_EQ(7, transport_.packets_sent());
+ EXPECT_EQ(7, transport_->packets_sent());
EXPECT_EQ(1, num_times_logging_callback_called_); // Only 8 ms since last.
task_runner_->Sleep(base::TimeDelta::FromMilliseconds(2));
« no previous file with comments | « media/cast/net/cast_transport_sender_impl.cc ('k') | media/cast/net/mock_cast_transport_sender.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698