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

Side by Side Diff: third_party/WebKit/Source/modules/peerconnection/RTCPeerConnectionTest.cpp

Issue 2645983003: Make hbos per-file OWNER of *webrtc*browsertest* in chrome/browser/media/webrtc. (Closed)
Patch Set: RTCPeerConnection using FRIEND_TEST_ALL_PREFIXES Created 3 years, 6 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
« no previous file with comments | « third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2017 The Chromium Authors. All rights reserved. 1 // Copyright 2017 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 "modules/peerconnection/RTCPeerConnection.h" 5 #include "modules/peerconnection/RTCPeerConnection.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "bindings/core/v8/Dictionary.h" 9 #include "bindings/core/v8/Dictionary.h"
10 #include "bindings/core/v8/V8BindingForTesting.h" 10 #include "bindings/core/v8/V8BindingForTesting.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 EXPECT_EQ("", GetExceptionMessage(scope)); 63 EXPECT_EQ("", GetExceptionMessage(scope));
64 } 64 }
65 65
66 void RemoveStream(V8TestingScope& scope, 66 void RemoveStream(V8TestingScope& scope,
67 RTCPeerConnection* pc, 67 RTCPeerConnection* pc,
68 MediaStream* stream) { 68 MediaStream* stream) {
69 pc->removeStream(stream, scope.GetExceptionState()); 69 pc->removeStream(stream, scope.GetExceptionState());
70 EXPECT_EQ("", GetExceptionMessage(scope)); 70 EXPECT_EQ("", GetExceptionMessage(scope));
71 } 71 }
72 72
73 MediaStreamTrack* GetTrack(RTCPeerConnection* pc,
74 MediaStreamComponent* component) {
75 return pc->GetTrack(component);
76 }
77
78 private: 73 private:
79 ScopedTestingPlatformSupport<TestingPlatformSupportWithWebRTC> platform; 74 ScopedTestingPlatformSupport<TestingPlatformSupportWithWebRTC> platform;
80 }; 75 };
81 76
82 TEST_F(RTCPeerConnectionTest, GetAudioTrack) { 77 TEST_F(RTCPeerConnectionTest, GetAudioTrack) {
83 V8TestingScope scope; 78 V8TestingScope scope;
84 RTCPeerConnection* pc = CreatePC(scope); 79 RTCPeerConnection* pc = CreatePC(scope);
85 EXPECT_EQ("", GetExceptionMessage(scope)); 80 EXPECT_EQ("", GetExceptionMessage(scope));
86 ASSERT_TRUE(pc); 81 ASSERT_TRUE(pc);
87 82
88 MediaStreamTrack* track = 83 MediaStreamTrack* track =
89 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack"); 84 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack");
90 HeapVector<Member<MediaStreamTrack>> tracks; 85 HeapVector<Member<MediaStreamTrack>> tracks;
91 tracks.push_back(track); 86 tracks.push_back(track);
92 MediaStream* stream = 87 MediaStream* stream =
93 MediaStream::Create(scope.GetExecutionContext(), tracks); 88 MediaStream::Create(scope.GetExecutionContext(), tracks);
94 ASSERT_TRUE(stream); 89 ASSERT_TRUE(stream);
95 90
96 EXPECT_FALSE(GetTrack(pc, track->Component())); 91 EXPECT_FALSE(pc->GetTrack(track->Component()));
97 AddStream(scope, pc, stream); 92 AddStream(scope, pc, stream);
98 EXPECT_TRUE(GetTrack(pc, track->Component())); 93 EXPECT_TRUE(pc->GetTrack(track->Component()));
99 } 94 }
100 95
101 TEST_F(RTCPeerConnectionTest, GetVideoTrack) { 96 TEST_F(RTCPeerConnectionTest, GetVideoTrack) {
102 V8TestingScope scope; 97 V8TestingScope scope;
103 RTCPeerConnection* pc = CreatePC(scope); 98 RTCPeerConnection* pc = CreatePC(scope);
104 EXPECT_EQ("", GetExceptionMessage(scope)); 99 EXPECT_EQ("", GetExceptionMessage(scope));
105 ASSERT_TRUE(pc); 100 ASSERT_TRUE(pc);
106 101
107 MediaStreamTrack* track = 102 MediaStreamTrack* track =
108 CreateTrack(scope, MediaStreamSource::kTypeVideo, "videoTrack"); 103 CreateTrack(scope, MediaStreamSource::kTypeVideo, "videoTrack");
109 HeapVector<Member<MediaStreamTrack>> tracks; 104 HeapVector<Member<MediaStreamTrack>> tracks;
110 tracks.push_back(track); 105 tracks.push_back(track);
111 MediaStream* stream = 106 MediaStream* stream =
112 MediaStream::Create(scope.GetExecutionContext(), tracks); 107 MediaStream::Create(scope.GetExecutionContext(), tracks);
113 ASSERT_TRUE(stream); 108 ASSERT_TRUE(stream);
114 109
115 EXPECT_FALSE(GetTrack(pc, track->Component())); 110 EXPECT_FALSE(pc->GetTrack(track->Component()));
116 AddStream(scope, pc, stream); 111 AddStream(scope, pc, stream);
117 EXPECT_TRUE(GetTrack(pc, track->Component())); 112 EXPECT_TRUE(pc->GetTrack(track->Component()));
118 } 113 }
119 114
120 TEST_F(RTCPeerConnectionTest, GetAudioAndVideoTrack) { 115 TEST_F(RTCPeerConnectionTest, GetAudioAndVideoTrack) {
121 V8TestingScope scope; 116 V8TestingScope scope;
122 RTCPeerConnection* pc = CreatePC(scope); 117 RTCPeerConnection* pc = CreatePC(scope);
123 EXPECT_EQ("", GetExceptionMessage(scope)); 118 EXPECT_EQ("", GetExceptionMessage(scope));
124 ASSERT_TRUE(pc); 119 ASSERT_TRUE(pc);
125 120
126 HeapVector<Member<MediaStreamTrack>> tracks; 121 HeapVector<Member<MediaStreamTrack>> tracks;
127 MediaStreamTrack* audio_track = 122 MediaStreamTrack* audio_track =
128 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack"); 123 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack");
129 tracks.push_back(audio_track); 124 tracks.push_back(audio_track);
130 MediaStreamTrack* video_track = 125 MediaStreamTrack* video_track =
131 CreateTrack(scope, MediaStreamSource::kTypeVideo, "videoTrack"); 126 CreateTrack(scope, MediaStreamSource::kTypeVideo, "videoTrack");
132 tracks.push_back(video_track); 127 tracks.push_back(video_track);
133 128
134 MediaStream* stream = 129 MediaStream* stream =
135 MediaStream::Create(scope.GetExecutionContext(), tracks); 130 MediaStream::Create(scope.GetExecutionContext(), tracks);
136 ASSERT_TRUE(stream); 131 ASSERT_TRUE(stream);
137 132
138 EXPECT_FALSE(GetTrack(pc, audio_track->Component())); 133 EXPECT_FALSE(pc->GetTrack(audio_track->Component()));
139 EXPECT_FALSE(GetTrack(pc, video_track->Component())); 134 EXPECT_FALSE(pc->GetTrack(video_track->Component()));
140 AddStream(scope, pc, stream); 135 AddStream(scope, pc, stream);
141 EXPECT_TRUE(GetTrack(pc, audio_track->Component())); 136 EXPECT_TRUE(pc->GetTrack(audio_track->Component()));
142 EXPECT_TRUE(GetTrack(pc, video_track->Component())); 137 EXPECT_TRUE(pc->GetTrack(video_track->Component()));
143 } 138 }
144 139
145 TEST_F(RTCPeerConnectionTest, GetTrackRemoveStreamAndGCAll) { 140 TEST_F(RTCPeerConnectionTest, GetTrackRemoveStreamAndGCAll) {
146 V8TestingScope scope; 141 V8TestingScope scope;
147 Persistent<RTCPeerConnection> pc = CreatePC(scope); 142 Persistent<RTCPeerConnection> pc = CreatePC(scope);
148 EXPECT_EQ("", GetExceptionMessage(scope)); 143 EXPECT_EQ("", GetExceptionMessage(scope));
149 ASSERT_TRUE(pc); 144 ASSERT_TRUE(pc);
150 145
151 MediaStreamTrack* track = 146 MediaStreamTrack* track =
152 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack"); 147 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack");
153 HeapVector<Member<MediaStreamTrack>> tracks; 148 HeapVector<Member<MediaStreamTrack>> tracks;
154 tracks.push_back(track); 149 tracks.push_back(track);
155 MediaStream* stream = 150 MediaStream* stream =
156 MediaStream::Create(scope.GetExecutionContext(), tracks); 151 MediaStream::Create(scope.GetExecutionContext(), tracks);
157 ASSERT_TRUE(stream); 152 ASSERT_TRUE(stream);
158 153
159 MediaStreamComponent* track_component = track->Component(); 154 MediaStreamComponent* track_component = track->Component();
160 155
161 EXPECT_FALSE(GetTrack(pc, track_component)); 156 EXPECT_FALSE(pc->GetTrack(track_component));
162 AddStream(scope, pc, stream); 157 AddStream(scope, pc, stream);
163 EXPECT_TRUE(GetTrack(pc, track_component)); 158 EXPECT_TRUE(pc->GetTrack(track_component));
164 159
165 RemoveStream(scope, pc, stream); 160 RemoveStream(scope, pc, stream);
166 // This will destroy |MediaStream|, |MediaStreamTrack| and its 161 // This will destroy |MediaStream|, |MediaStreamTrack| and its
167 // |MediaStreamComponent|, which will remove its mapping from the peer 162 // |MediaStreamComponent|, which will remove its mapping from the peer
168 // connection. 163 // connection.
169 WebHeap::CollectAllGarbageForTesting(); 164 WebHeap::CollectAllGarbageForTesting();
170 EXPECT_FALSE(GetTrack(pc, track_component)); 165 EXPECT_FALSE(pc->GetTrack(track_component));
171 } 166 }
172 167
173 TEST_F(RTCPeerConnectionTest, 168 TEST_F(RTCPeerConnectionTest,
174 GetTrackRemoveStreamAndGCWithPersistentComponent) { 169 GetTrackRemoveStreamAndGCWithPersistentComponent) {
175 V8TestingScope scope; 170 V8TestingScope scope;
176 Persistent<RTCPeerConnection> pc = CreatePC(scope); 171 Persistent<RTCPeerConnection> pc = CreatePC(scope);
177 EXPECT_EQ("", GetExceptionMessage(scope)); 172 EXPECT_EQ("", GetExceptionMessage(scope));
178 ASSERT_TRUE(pc); 173 ASSERT_TRUE(pc);
179 174
180 MediaStreamTrack* track = 175 MediaStreamTrack* track =
181 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack"); 176 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack");
182 HeapVector<Member<MediaStreamTrack>> tracks; 177 HeapVector<Member<MediaStreamTrack>> tracks;
183 tracks.push_back(track); 178 tracks.push_back(track);
184 MediaStream* stream = 179 MediaStream* stream =
185 MediaStream::Create(scope.GetExecutionContext(), tracks); 180 MediaStream::Create(scope.GetExecutionContext(), tracks);
186 ASSERT_TRUE(stream); 181 ASSERT_TRUE(stream);
187 182
188 Persistent<MediaStreamComponent> track_component = track->Component(); 183 Persistent<MediaStreamComponent> track_component = track->Component();
189 184
190 EXPECT_FALSE(GetTrack(pc, track_component)); 185 EXPECT_FALSE(pc->GetTrack(track_component.Get()));
191 AddStream(scope, pc, stream); 186 AddStream(scope, pc, stream);
192 EXPECT_TRUE(GetTrack(pc, track_component)); 187 EXPECT_TRUE(pc->GetTrack(track_component.Get()));
193 188
194 RemoveStream(scope, pc, stream); 189 RemoveStream(scope, pc, stream);
195 // This will destroy |MediaStream| and |MediaStreamTrack| (but not 190 // This will destroy |MediaStream| and |MediaStreamTrack| (but not
196 // |MediaStreamComponent|), which will remove its mapping from the peer 191 // |MediaStreamComponent|), which will remove its mapping from the peer
197 // connection. 192 // connection.
198 WebHeap::CollectAllGarbageForTesting(); 193 WebHeap::CollectAllGarbageForTesting();
199 EXPECT_FALSE(GetTrack(pc, track_component)); 194 EXPECT_FALSE(pc->GetTrack(track_component.Get()));
200 } 195 }
201 196
202 TEST_F(RTCPeerConnectionTest, GetTrackRemoveStreamAndGCWithPersistentStream) { 197 TEST_F(RTCPeerConnectionTest, GetTrackRemoveStreamAndGCWithPersistentStream) {
203 V8TestingScope scope; 198 V8TestingScope scope;
204 Persistent<RTCPeerConnection> pc = CreatePC(scope); 199 Persistent<RTCPeerConnection> pc = CreatePC(scope);
205 EXPECT_EQ("", GetExceptionMessage(scope)); 200 EXPECT_EQ("", GetExceptionMessage(scope));
206 ASSERT_TRUE(pc); 201 ASSERT_TRUE(pc);
207 202
208 MediaStreamTrack* track = 203 MediaStreamTrack* track =
209 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack"); 204 CreateTrack(scope, MediaStreamSource::kTypeAudio, "audioTrack");
210 HeapVector<Member<MediaStreamTrack>> tracks; 205 HeapVector<Member<MediaStreamTrack>> tracks;
211 tracks.push_back(track); 206 tracks.push_back(track);
212 Persistent<MediaStream> stream = 207 Persistent<MediaStream> stream =
213 MediaStream::Create(scope.GetExecutionContext(), tracks); 208 MediaStream::Create(scope.GetExecutionContext(), tracks);
214 ASSERT_TRUE(stream); 209 ASSERT_TRUE(stream);
215 210
216 MediaStreamComponent* track_component = track->Component(); 211 MediaStreamComponent* track_component = track->Component();
217 212
218 EXPECT_FALSE(GetTrack(pc, track_component)); 213 EXPECT_FALSE(pc->GetTrack(track_component));
219 AddStream(scope, pc, stream); 214 AddStream(scope, pc, stream);
220 EXPECT_TRUE(GetTrack(pc, track_component)); 215 EXPECT_TRUE(pc->GetTrack(track_component));
221 216
222 RemoveStream(scope, pc, stream); 217 RemoveStream(scope, pc, stream);
223 // With a persistent |MediaStream|, the |MediaStreamTrack| and 218 // With a persistent |MediaStream|, the |MediaStreamTrack| and
224 // |MediaStreamComponent| will not be destroyed and continue to be mapped by 219 // |MediaStreamComponent| will not be destroyed and continue to be mapped by
225 // peer connection. 220 // peer connection.
226 WebHeap::CollectAllGarbageForTesting(); 221 WebHeap::CollectAllGarbageForTesting();
227 EXPECT_TRUE(GetTrack(pc, track_component)); 222 EXPECT_TRUE(pc->GetTrack(track_component));
228 223
229 stream = nullptr; 224 stream = nullptr;
230 // Now |MediaStream|, |MediaStreamTrack| and |MediaStreamComponent| will be 225 // Now |MediaStream|, |MediaStreamTrack| and |MediaStreamComponent| will be
231 // destroyed and the mapping removed from the peer connection. 226 // destroyed and the mapping removed from the peer connection.
232 WebHeap::CollectAllGarbageForTesting(); 227 WebHeap::CollectAllGarbageForTesting();
233 EXPECT_FALSE(GetTrack(pc, track_component)); 228 EXPECT_FALSE(pc->GetTrack(track_component));
234 } 229 }
235 230
236 } // namespace blink 231 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/peerconnection/RTCPeerConnection.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698