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

Side by Side Diff: webrtc/modules/rtp_rtcp/source/rtp_header_extension_unittest.cc

Issue 2492443002: Reland of Simplify and extend RtpHeaderExtensionMap (Closed)
Patch Set: Created 4 years, 1 month 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 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h" 11 #include "webrtc/modules/rtp_rtcp/include/rtp_rtcp_defines.h"
12 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h" 12 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extension.h"
13 #include "webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h"
13 #include "webrtc/test/gtest.h" 14 #include "webrtc/test/gtest.h"
14 #include "webrtc/typedefs.h" 15 #include "webrtc/typedefs.h"
15 16
16 namespace webrtc { 17 namespace webrtc {
17 18
18 class RtpHeaderExtensionTest : public ::testing::Test { 19 TEST(RtpHeaderExtensionTest, RegisterByType) {
19 protected: 20 RtpHeaderExtensionMap map;
20 RtpHeaderExtensionTest() {} 21 EXPECT_FALSE(map.IsRegistered(TransmissionOffset::kId));
21 ~RtpHeaderExtensionTest() {}
22 22
23 RtpHeaderExtensionMap map_; 23 EXPECT_TRUE(map.RegisterByType(3, TransmissionOffset::kId));
24 static const uint8_t kId;
25 };
26 24
27 const uint8_t RtpHeaderExtensionTest::kId = 3; 25 EXPECT_TRUE(map.IsRegistered(TransmissionOffset::kId));
28 26 EXPECT_EQ(3, map.GetId(TransmissionOffset::kId));
29 TEST_F(RtpHeaderExtensionTest, Register) { 27 EXPECT_EQ(TransmissionOffset::kId, map.GetType(3));
30 EXPECT_EQ(0, map_.Size());
31 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId));
32 EXPECT_TRUE(map_.IsRegistered(kRtpExtensionTransmissionTimeOffset));
33 EXPECT_EQ(1, map_.Size());
34 EXPECT_EQ(0, map_.Deregister(kRtpExtensionTransmissionTimeOffset));
35 EXPECT_EQ(0, map_.Size());
36 } 28 }
37 29
38 TEST_F(RtpHeaderExtensionTest, RegisterIllegalArg) { 30 TEST(RtpHeaderExtensionTest, RegisterByUri) {
39 // Valid range for id: [1-14]. 31 RtpHeaderExtensionMap map;
40 EXPECT_EQ(-1, map_.Register(kRtpExtensionTransmissionTimeOffset, 0)); 32
41 EXPECT_EQ(-1, map_.Register(kRtpExtensionTransmissionTimeOffset, 15)); 33 EXPECT_TRUE(map.RegisterByUri(3, TransmissionOffset::kUri));
34
35 EXPECT_TRUE(map.IsRegistered(TransmissionOffset::kId));
36 EXPECT_EQ(3, map.GetId(TransmissionOffset::kId));
37 EXPECT_EQ(TransmissionOffset::kId, map.GetType(3));
42 } 38 }
43 39
44 TEST_F(RtpHeaderExtensionTest, Idempotent) { 40 TEST(RtpHeaderExtensionTest, RegisterWithTrait) {
45 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 41 RtpHeaderExtensionMap map;
46 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 42
47 EXPECT_EQ(0, map_.Deregister(kRtpExtensionTransmissionTimeOffset)); 43 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
48 EXPECT_EQ(0, map_.Deregister(kRtpExtensionTransmissionTimeOffset)); 44
45 EXPECT_TRUE(map.IsRegistered(TransmissionOffset::kId));
46 EXPECT_EQ(3, map.GetId(TransmissionOffset::kId));
47 EXPECT_EQ(TransmissionOffset::kId, map.GetType(3));
49 } 48 }
50 49
51 TEST_F(RtpHeaderExtensionTest, NonUniqueId) { 50 TEST(RtpHeaderExtensionTest, RegisterDuringContruction) {
52 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 51 const RtpHeaderExtensionMap map = {{TransmissionOffset::kUri, 1},
53 EXPECT_EQ(-1, map_.Register(kRtpExtensionAudioLevel, kId)); 52 {AbsoluteSendTime::kUri, 3}};
53
54 EXPECT_EQ(1, map.GetId(TransmissionOffset::kId));
55 EXPECT_EQ(3, map.GetId(AbsoluteSendTime::kId));
54 } 56 }
55 57
56 TEST_F(RtpHeaderExtensionTest, GetTotalLength) { 58 TEST(RtpHeaderExtensionTest, RegisterIllegalArg) {
57 EXPECT_EQ(0u, map_.GetTotalLengthInBytes()); 59 RtpHeaderExtensionMap map;
58 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 60 // Valid range for id: [1-14].
59 EXPECT_EQ(kRtpOneByteHeaderLength + kTransmissionTimeOffsetLength, 61 EXPECT_FALSE(map.Register<TransmissionOffset>(0));
60 map_.GetTotalLengthInBytes()); 62 EXPECT_FALSE(map.Register<TransmissionOffset>(15));
61 } 63 }
62 64
63 TEST_F(RtpHeaderExtensionTest, GetType) { 65 TEST(RtpHeaderExtensionTest, Idempotent) {
64 RTPExtensionType typeOut; 66 RtpHeaderExtensionMap map;
65 EXPECT_EQ(-1, map_.GetType(kId, &typeOut));
66 67
67 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 68 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
68 EXPECT_EQ(0, map_.GetType(kId, &typeOut)); 69 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
69 EXPECT_EQ(kRtpExtensionTransmissionTimeOffset, typeOut); 70
71 map.Deregister(TransmissionOffset::kId);
72 map.Deregister(TransmissionOffset::kId);
70 } 73 }
71 74
72 TEST_F(RtpHeaderExtensionTest, GetId) { 75 TEST(RtpHeaderExtensionTest, NonUniqueId) {
73 uint8_t idOut; 76 RtpHeaderExtensionMap map;
74 EXPECT_EQ(-1, map_.GetId(kRtpExtensionTransmissionTimeOffset, &idOut)); 77 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
75 78
76 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 79 EXPECT_FALSE(map.Register<AudioLevel>(3));
77 EXPECT_EQ(0, map_.GetId(kRtpExtensionTransmissionTimeOffset, &idOut)); 80 EXPECT_TRUE(map.Register<AudioLevel>(4));
78 EXPECT_EQ(kId, idOut);
79 } 81 }
80 82
81 TEST_F(RtpHeaderExtensionTest, GetCopy) { 83 TEST(RtpHeaderExtensionTest, GetTotalLength) {
82 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 84 RtpHeaderExtensionMap map;
83 85 EXPECT_EQ(0u, map.GetTotalLengthInBytes());
84 RtpHeaderExtensionMap mapOut; 86 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
85 map_.GetCopy(&mapOut); 87 EXPECT_EQ(kRtpOneByteHeaderLength + (TransmissionOffset::kValueSizeBytes + 1),
86 EXPECT_EQ(1, mapOut.Size()); 88 map.GetTotalLengthInBytes());
87 EXPECT_EQ(kId, mapOut.GetId(kRtpExtensionTransmissionTimeOffset));
88 } 89 }
89 90
90 TEST_F(RtpHeaderExtensionTest, Erase) { 91 TEST(RtpHeaderExtensionTest, GetType) {
91 EXPECT_EQ(0, map_.Register(kRtpExtensionTransmissionTimeOffset, kId)); 92 RtpHeaderExtensionMap map;
92 EXPECT_EQ(1, map_.Size()); 93 EXPECT_EQ(RtpHeaderExtensionMap::kInvalidType, map.GetType(3));
93 map_.Erase(); 94 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
94 EXPECT_EQ(0, map_.Size()); 95
96 EXPECT_EQ(TransmissionOffset::kId, map.GetType(3));
95 } 97 }
98
99 TEST(RtpHeaderExtensionTest, GetId) {
100 RtpHeaderExtensionMap map;
101 EXPECT_EQ(RtpHeaderExtensionMap::kInvalidId,
102 map.GetId(TransmissionOffset::kId));
103 EXPECT_TRUE(map.Register<TransmissionOffset>(3));
104
105 EXPECT_EQ(3, map.GetId(TransmissionOffset::kId));
106 }
107
96 } // namespace webrtc 108 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/rtp_rtcp/source/rtp_header_extension.cc ('k') | webrtc/modules/rtp_rtcp/source/rtp_header_extensions.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698