blob: fe79f6df3c2c9c1ed104c04e090ff61f5cecef99 [file] [log] [blame]
Chen Xingd2a66862019-06-03 14:53:42 +02001/*
2 * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved.
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10
11#include "api/rtp_packet_infos.h"
Chen Xingd2a66862019-06-03 14:53:42 +020012#include "test/gmock.h"
13#include "test/gtest.h"
14
15namespace webrtc {
16
17TEST(RtpPacketInfoTest, Ssrc) {
18 const uint32_t value = 4038189233;
19
20 RtpPacketInfo lhs;
21 RtpPacketInfo rhs;
22
23 EXPECT_TRUE(lhs == rhs);
24 EXPECT_FALSE(lhs != rhs);
25
26 rhs.set_ssrc(value);
27 EXPECT_EQ(rhs.ssrc(), value);
28
29 EXPECT_FALSE(lhs == rhs);
30 EXPECT_TRUE(lhs != rhs);
31
32 lhs = rhs;
33
34 EXPECT_TRUE(lhs == rhs);
35 EXPECT_FALSE(lhs != rhs);
36
37 rhs = RtpPacketInfo();
38 EXPECT_NE(rhs.ssrc(), value);
39
Chen Xinge08648d2019-08-05 16:29:13 +020040 rhs = RtpPacketInfo(value, {}, {}, {}, {}, {});
Chen Xingd2a66862019-06-03 14:53:42 +020041 EXPECT_EQ(rhs.ssrc(), value);
42}
43
44TEST(RtpPacketInfoTest, Csrcs) {
45 const std::vector<uint32_t> value = {4038189233, 3016333617, 1207992985};
46
47 RtpPacketInfo lhs;
48 RtpPacketInfo rhs;
49
50 EXPECT_TRUE(lhs == rhs);
51 EXPECT_FALSE(lhs != rhs);
52
53 rhs.set_csrcs(value);
54 EXPECT_EQ(rhs.csrcs(), value);
55
56 EXPECT_FALSE(lhs == rhs);
57 EXPECT_TRUE(lhs != rhs);
58
59 lhs = rhs;
60
61 EXPECT_TRUE(lhs == rhs);
62 EXPECT_FALSE(lhs != rhs);
63
64 rhs = RtpPacketInfo();
65 EXPECT_NE(rhs.csrcs(), value);
66
Chen Xinge08648d2019-08-05 16:29:13 +020067 rhs = RtpPacketInfo({}, value, {}, {}, {}, {});
Chen Xingd2a66862019-06-03 14:53:42 +020068 EXPECT_EQ(rhs.csrcs(), value);
69}
70
Chen Xingd2a66862019-06-03 14:53:42 +020071TEST(RtpPacketInfoTest, RtpTimestamp) {
72 const uint32_t value = 4038189233;
73
74 RtpPacketInfo lhs;
75 RtpPacketInfo rhs;
76
77 EXPECT_TRUE(lhs == rhs);
78 EXPECT_FALSE(lhs != rhs);
79
80 rhs.set_rtp_timestamp(value);
81 EXPECT_EQ(rhs.rtp_timestamp(), value);
82
83 EXPECT_FALSE(lhs == rhs);
84 EXPECT_TRUE(lhs != rhs);
85
86 lhs = rhs;
87
88 EXPECT_TRUE(lhs == rhs);
89 EXPECT_FALSE(lhs != rhs);
90
91 rhs = RtpPacketInfo();
92 EXPECT_NE(rhs.rtp_timestamp(), value);
93
Chen Xinge08648d2019-08-05 16:29:13 +020094 rhs = RtpPacketInfo({}, {}, value, {}, {}, {});
Chen Xingd2a66862019-06-03 14:53:42 +020095 EXPECT_EQ(rhs.rtp_timestamp(), value);
96}
97
98TEST(RtpPacketInfoTest, AudioLevel) {
99 const absl::optional<uint8_t> value = 31;
100
101 RtpPacketInfo lhs;
102 RtpPacketInfo rhs;
103
104 EXPECT_TRUE(lhs == rhs);
105 EXPECT_FALSE(lhs != rhs);
106
107 rhs.set_audio_level(value);
108 EXPECT_EQ(rhs.audio_level(), value);
109
110 EXPECT_FALSE(lhs == rhs);
111 EXPECT_TRUE(lhs != rhs);
112
113 lhs = rhs;
114
115 EXPECT_TRUE(lhs == rhs);
116 EXPECT_FALSE(lhs != rhs);
117
118 rhs = RtpPacketInfo();
119 EXPECT_NE(rhs.audio_level(), value);
120
Chen Xinge08648d2019-08-05 16:29:13 +0200121 rhs = RtpPacketInfo({}, {}, {}, value, {}, {});
Chen Xingd2a66862019-06-03 14:53:42 +0200122 EXPECT_EQ(rhs.audio_level(), value);
123}
124
Chen Xinge08648d2019-08-05 16:29:13 +0200125TEST(RtpPacketInfoTest, AbsoluteCaptureTime) {
126 const absl::optional<AbsoluteCaptureTime> value = AbsoluteCaptureTime{12, 34};
127
128 RtpPacketInfo lhs;
129 RtpPacketInfo rhs;
130
131 EXPECT_TRUE(lhs == rhs);
132 EXPECT_FALSE(lhs != rhs);
133
134 rhs.set_absolute_capture_time(value);
135 EXPECT_EQ(rhs.absolute_capture_time(), value);
136
137 EXPECT_FALSE(lhs == rhs);
138 EXPECT_TRUE(lhs != rhs);
139
140 lhs = rhs;
141
142 EXPECT_TRUE(lhs == rhs);
143 EXPECT_FALSE(lhs != rhs);
144
145 rhs = RtpPacketInfo();
146 EXPECT_NE(rhs.absolute_capture_time(), value);
147
148 rhs = RtpPacketInfo({}, {}, {}, {}, value, {});
149 EXPECT_EQ(rhs.absolute_capture_time(), value);
150}
151
Chen Xingd2a66862019-06-03 14:53:42 +0200152TEST(RtpPacketInfoTest, ReceiveTimeMs) {
153 const int64_t value = 8868963877546349045LL;
154
155 RtpPacketInfo lhs;
156 RtpPacketInfo rhs;
157
158 EXPECT_TRUE(lhs == rhs);
159 EXPECT_FALSE(lhs != rhs);
160
161 rhs.set_receive_time_ms(value);
162 EXPECT_EQ(rhs.receive_time_ms(), value);
163
164 EXPECT_FALSE(lhs == rhs);
165 EXPECT_TRUE(lhs != rhs);
166
167 lhs = rhs;
168
169 EXPECT_TRUE(lhs == rhs);
170 EXPECT_FALSE(lhs != rhs);
171
172 rhs = RtpPacketInfo();
173 EXPECT_NE(rhs.receive_time_ms(), value);
174
Chen Xinge08648d2019-08-05 16:29:13 +0200175 rhs = RtpPacketInfo({}, {}, {}, {}, {}, value);
Chen Xingd2a66862019-06-03 14:53:42 +0200176 EXPECT_EQ(rhs.receive_time_ms(), value);
177}
178
179} // namespace webrtc