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

Side by Side Diff: content/renderer/media/android/webmediasession_android_unittest.cc

Issue 2367393002: Migrating MediaSession messages to mojo (Closed)
Patch Set: fix build Created 4 years, 2 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
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "content/renderer/media/android/webmediasession_android.h" 5 #include "content/renderer/media/android/webmediasession_android.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "content/common/media/media_session_messages_android.h"
10 #include "content/renderer/media/android/renderer_media_session_manager.h" 9 #include "content/renderer/media/android/renderer_media_session_manager.h"
11 #include "testing/gmock/include/gmock/gmock.h" 10 #include "testing/gmock/include/gmock/gmock.h"
12 11
13 namespace content { 12 namespace content {
14 13
15 namespace {
16
17 const int kRouteId = 0;
18
19 } // anonymous namespace
20
21 class WebMediaSessionTest : public testing::Test { 14 class WebMediaSessionTest : public testing::Test {
22 public: 15 public:
23 void OnSuccess() { ++success_count_; } 16 void OnSuccess() { ++success_count_; }
24 void OnError() { ++error_count_; } 17 void OnError() { ++error_count_; }
25 18
26 bool SessionManagerHasSession(RendererMediaSessionManager* session_manager, 19 bool SessionManagerHasSession(RendererMediaSessionManager* session_manager,
27 WebMediaSessionAndroid* session) { 20 WebMediaSessionAndroid* session) {
28 for (auto& iter : session_manager->sessions_) { 21 for (auto& iter : session_manager->sessions_) {
29 if (iter.second == session) 22 if (iter.second == session)
30 return true; 23 return true;
(...skipping 84 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 new WebMediaSessionAndroid(session_manager.get()); 108 new WebMediaSessionAndroid(session_manager.get());
116 EXPECT_TRUE(SessionManagerHasSession(session_manager.get(), session2)); 109 EXPECT_TRUE(SessionManagerHasSession(session_manager.get(), session2));
117 110
118 delete session1; 111 delete session1;
119 EXPECT_TRUE(SessionManagerHasSession(session_manager.get(), session2)); 112 EXPECT_TRUE(SessionManagerHasSession(session_manager.get(), session2));
120 113
121 delete session2; 114 delete session2;
122 EXPECT_TRUE(IsSessionManagerEmpty(session_manager.get())); 115 EXPECT_TRUE(IsSessionManagerEmpty(session_manager.get()));
123 } 116 }
124 117
125 TEST_F(WebMediaSessionTest, ActivationOutOfOrder) { 118 TEST_F(WebMediaSessionTest, Activation) {
126 std::unique_ptr<RendererMediaSessionManager> session_manager( 119 std::unique_ptr<RendererMediaSessionManager> session_manager(
127 new RendererMediaSessionManager(nullptr)); 120 new RendererMediaSessionManager(nullptr));
128 121
129 std::unique_ptr<WebMediaSessionAndroid> session( 122 std::unique_ptr<WebMediaSessionAndroid> session(
130 new WebMediaSessionAndroid(session_manager.get())); 123 new WebMediaSessionAndroid(session_manager.get()));
131 124
132 // Request activate three times 125 session_manager->OnDidActivate(
133 session->activate(new TestActivateCallback(this)); // request 1 126 base::MakeUnique<TestActivateCallback>(this), true);
134 session->activate(new TestActivateCallback(this)); // request 2 127 session_manager->OnDidActivate(
135 session->activate(new TestActivateCallback(this)); // request 3 128 base::MakeUnique<TestActivateCallback>(this), true);
129 session_manager->OnDidActivate(
130 base::MakeUnique<TestActivateCallback>(this), false);
136 131
137 // Confirm activation out of order
138 session_manager->OnMessageReceived(
139 MediaSessionMsg_DidActivate(kRouteId, 3, true));
140
141 session_manager->OnMessageReceived(
142 MediaSessionMsg_DidActivate(kRouteId, 2, true));
143
144 session_manager->OnMessageReceived(
145 MediaSessionMsg_DidActivate(kRouteId, 1, true));
146
147 EXPECT_EQ(3, success_count_);
148 EXPECT_EQ(0, error_count_);
149 }
150
151 TEST_F(WebMediaSessionTest, ActivationInOrder) {
152 std::unique_ptr<RendererMediaSessionManager> session_manager(
153 new RendererMediaSessionManager(nullptr));
154
155 std::unique_ptr<WebMediaSessionAndroid> session(
156 new WebMediaSessionAndroid(session_manager.get()));
157
158 // Request activate three times
159 session->activate(new TestActivateCallback(this)); // request 1
160 session_manager->OnMessageReceived(
161 MediaSessionMsg_DidActivate(kRouteId, 1, true));
162
163 session->activate(new TestActivateCallback(this)); // request 2
164 session_manager->OnMessageReceived(
165 MediaSessionMsg_DidActivate(kRouteId, 2, true));
166
167 session->activate(new TestActivateCallback(this)); // request 3
168 session_manager->OnMessageReceived(
169 MediaSessionMsg_DidActivate(kRouteId, 3, true));
170
171 EXPECT_EQ(3, success_count_);
172 EXPECT_EQ(0, error_count_);
173 }
174
175 TEST_F(WebMediaSessionTest, ActivationInFlight) {
176 std::unique_ptr<RendererMediaSessionManager> session_manager(
177 new RendererMediaSessionManager(nullptr));
178
179 std::unique_ptr<WebMediaSessionAndroid> session(
180 new WebMediaSessionAndroid(session_manager.get()));
181
182 session->activate(new TestActivateCallback(this)); // request 1
183 session->activate(new TestActivateCallback(this)); // request 2
184 session->activate(new TestActivateCallback(this)); // request 3
185
186 session_manager->OnMessageReceived(
187 MediaSessionMsg_DidActivate(kRouteId, 1, true));
188
189 session->activate(new TestActivateCallback(this)); // request 4
190 session->activate(new TestActivateCallback(this)); // request 5
191
192 session_manager->OnMessageReceived(
193 MediaSessionMsg_DidActivate(kRouteId, 3, true));
194 session_manager->OnMessageReceived(
195 MediaSessionMsg_DidActivate(kRouteId, 2, true));
196 session_manager->OnMessageReceived(
197 MediaSessionMsg_DidActivate(kRouteId, 5, true));
198 session_manager->OnMessageReceived(
199 MediaSessionMsg_DidActivate(kRouteId, 4, true));
200
201 EXPECT_EQ(5, success_count_);
202 EXPECT_EQ(0, error_count_);
203 }
204
205 TEST_F(WebMediaSessionTest, ActivationFailure) {
206 std::unique_ptr<RendererMediaSessionManager> session_manager(
207 new RendererMediaSessionManager(nullptr));
208
209 std::unique_ptr<WebMediaSessionAndroid> session(
210 new WebMediaSessionAndroid(session_manager.get()));
211
212 session->activate(new TestActivateCallback(this)); // request 1
213 session->activate(new TestActivateCallback(this)); // request 2
214 session->activate(new TestActivateCallback(this)); // request 3
215
216 session_manager->OnMessageReceived(
217 MediaSessionMsg_DidActivate(kRouteId, 1, true));
218 EXPECT_EQ(1, success_count_);
219 EXPECT_EQ(0, error_count_);
220 session_manager->OnMessageReceived(
221 MediaSessionMsg_DidActivate(kRouteId, 2, false));
222 EXPECT_EQ(1, success_count_);
223 EXPECT_EQ(1, error_count_);
224 session_manager->OnMessageReceived(
225 MediaSessionMsg_DidActivate(kRouteId, 3, true));
226 EXPECT_EQ(2, success_count_); 132 EXPECT_EQ(2, success_count_);
227 EXPECT_EQ(1, error_count_); 133 EXPECT_EQ(1, error_count_);
228 } 134 }
229 135
230 TEST_F(WebMediaSessionTest, Deactivation) { 136 TEST_F(WebMediaSessionTest, Deactivation) {
231 std::unique_ptr<RendererMediaSessionManager> session_manager( 137 std::unique_ptr<RendererMediaSessionManager> session_manager(
232 new RendererMediaSessionManager(nullptr)); 138 new RendererMediaSessionManager(nullptr));
233 139
234 std::unique_ptr<WebMediaSessionAndroid> session( 140 std::unique_ptr<WebMediaSessionAndroid> session(
235 new WebMediaSessionAndroid(session_manager.get())); 141 new WebMediaSessionAndroid(session_manager.get()));
236 142
237 // Request deactivate three times 143 session_manager->OnDidDeactivate(
238 session->deactivate(new TestDeactivateCallback(this)); // request 1 144 base::MakeUnique<TestDeactivateCallback>(this));
239 session->deactivate(new TestDeactivateCallback(this)); // request 2 145 session_manager->OnDidDeactivate(
240 session->deactivate(new TestDeactivateCallback(this)); // request 3 146 base::MakeUnique<TestDeactivateCallback>(this));
241 session_manager->OnMessageReceived( 147 session_manager->OnDidDeactivate(
242 MediaSessionMsg_DidDeactivate(kRouteId, 1)); 148 base::MakeUnique<TestDeactivateCallback>(this));
243 EXPECT_EQ(1, success_count_); 149
244 session_manager->OnMessageReceived(
245 MediaSessionMsg_DidDeactivate(kRouteId, 2));
246 EXPECT_EQ(2, success_count_);
247 session_manager->OnMessageReceived(
248 MediaSessionMsg_DidDeactivate(kRouteId, 3));
249 EXPECT_EQ(3, success_count_); 150 EXPECT_EQ(3, success_count_);
250 EXPECT_EQ(0, error_count_); 151 EXPECT_EQ(0, error_count_);
251 } 152 }
252 153
253 } // namespace content 154 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698