OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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/browser/presentation/presentation_service_impl.h" | 5 #include "content/browser/presentation/presentation_service_impl.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 28 matching lines...) Expand all Loading... |
39 namespace { | 39 namespace { |
40 | 40 |
41 // Matches mojo structs. | 41 // Matches mojo structs. |
42 MATCHER_P(Equals, expected, "") { | 42 MATCHER_P(Equals, expected, "") { |
43 return expected.Equals(arg); | 43 return expected.Equals(arg); |
44 } | 44 } |
45 | 45 |
46 const char *const kPresentationId = "presentationId"; | 46 const char *const kPresentationId = "presentationId"; |
47 const char *const kPresentationUrl = "http://foo.com/index.html"; | 47 const char *const kPresentationUrl = "http://foo.com/index.html"; |
48 | 48 |
| 49 bool ArePresentationSessionMessagesEqual( |
| 50 const blink::mojom::SessionMessage* expected, |
| 51 const blink::mojom::SessionMessage* actual) { |
| 52 return expected->type == actual->type && |
| 53 expected->message == actual->message && |
| 54 expected->data.Equals(actual->data); |
| 55 } |
| 56 |
49 void DoNothing(blink::mojom::PresentationSessionInfoPtr info, | 57 void DoNothing(blink::mojom::PresentationSessionInfoPtr info, |
50 blink::mojom::PresentationErrorPtr error) {} | 58 blink::mojom::PresentationErrorPtr error) {} |
51 | 59 |
52 } // namespace | 60 } // namespace |
53 | 61 |
54 class MockPresentationServiceDelegate : public PresentationServiceDelegate { | 62 class MockPresentationServiceDelegate : public PresentationServiceDelegate { |
55 public: | 63 public: |
56 MOCK_METHOD3(AddObserver, | 64 MOCK_METHOD3(AddObserver, |
57 void(int render_process_id, | 65 void(int render_process_id, |
58 int render_frame_id, | 66 int render_frame_id, |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 } | 145 } |
138 | 146 |
139 private: | 147 private: |
140 bool screen_availability_listening_supported_ = true; | 148 bool screen_availability_listening_supported_ = true; |
141 }; | 149 }; |
142 | 150 |
143 class MockPresentationServiceClient | 151 class MockPresentationServiceClient |
144 : public blink::mojom::PresentationServiceClient { | 152 : public blink::mojom::PresentationServiceClient { |
145 public: | 153 public: |
146 MOCK_METHOD2(OnScreenAvailabilityUpdated, | 154 MOCK_METHOD2(OnScreenAvailabilityUpdated, |
147 void(const std::string& url, bool available)); | 155 void(const mojo::String& url, bool available)); |
148 void OnConnectionStateChanged( | 156 void OnConnectionStateChanged( |
149 blink::mojom::PresentationSessionInfoPtr connection, | 157 blink::mojom::PresentationSessionInfoPtr connection, |
150 blink::mojom::PresentationConnectionState new_state) override { | 158 blink::mojom::PresentationConnectionState new_state) override { |
151 OnConnectionStateChanged(*connection, new_state); | 159 OnConnectionStateChanged(*connection, new_state); |
152 } | 160 } |
153 MOCK_METHOD2(OnConnectionStateChanged, | 161 MOCK_METHOD2(OnConnectionStateChanged, |
154 void(const blink::mojom::PresentationSessionInfo& connection, | 162 void(const blink::mojom::PresentationSessionInfo& connection, |
155 blink::mojom::PresentationConnectionState new_state)); | 163 blink::mojom::PresentationConnectionState new_state)); |
156 | 164 |
157 void OnConnectionClosed( | 165 void OnConnectionClosed( |
158 blink::mojom::PresentationSessionInfoPtr connection, | 166 blink::mojom::PresentationSessionInfoPtr connection, |
159 blink::mojom::PresentationConnectionCloseReason reason, | 167 blink::mojom::PresentationConnectionCloseReason reason, |
160 const std::string& message) override { | 168 const mojo::String& message) override { |
161 OnConnectionClosed(*connection, reason, message); | 169 OnConnectionClosed(*connection, reason, message); |
162 } | 170 } |
163 MOCK_METHOD3(OnConnectionClosed, | 171 MOCK_METHOD3(OnConnectionClosed, |
164 void(const blink::mojom::PresentationSessionInfo& connection, | 172 void(const blink::mojom::PresentationSessionInfo& connection, |
165 blink::mojom::PresentationConnectionCloseReason reason, | 173 blink::mojom::PresentationConnectionCloseReason reason, |
166 const std::string& message)); | 174 const mojo::String& message)); |
167 | 175 |
168 MOCK_METHOD1(OnScreenAvailabilityNotSupported, void(const std::string& url)); | 176 MOCK_METHOD1(OnScreenAvailabilityNotSupported, void(const mojo::String& url)); |
169 | 177 |
170 void OnSessionMessagesReceived( | 178 void OnSessionMessagesReceived( |
171 blink::mojom::PresentationSessionInfoPtr session_info, | 179 blink::mojom::PresentationSessionInfoPtr session_info, |
172 std::vector<blink::mojom::SessionMessagePtr> messages) override { | 180 mojo::Array<blink::mojom::SessionMessagePtr> messages) override { |
173 messages_received_ = std::move(messages); | 181 messages_received_ = std::move(messages); |
174 MessagesReceived(); | 182 MessagesReceived(); |
175 } | 183 } |
176 MOCK_METHOD0(MessagesReceived, void()); | 184 MOCK_METHOD0(MessagesReceived, void()); |
177 | 185 |
178 void OnDefaultSessionStarted( | 186 void OnDefaultSessionStarted( |
179 blink::mojom::PresentationSessionInfoPtr session_info) override { | 187 blink::mojom::PresentationSessionInfoPtr session_info) override { |
180 OnDefaultSessionStarted(*session_info); | 188 OnDefaultSessionStarted(*session_info); |
181 } | 189 } |
182 MOCK_METHOD1(OnDefaultSessionStarted, | 190 MOCK_METHOD1(OnDefaultSessionStarted, |
183 void(const blink::mojom::PresentationSessionInfo& session_info)); | 191 void(const blink::mojom::PresentationSessionInfo& session_info)); |
184 | 192 |
185 std::vector<blink::mojom::SessionMessagePtr> messages_received_; | 193 mojo::Array<blink::mojom::SessionMessagePtr> messages_received_; |
186 }; | 194 }; |
187 | 195 |
188 class PresentationServiceImplTest : public RenderViewHostImplTestHarness { | 196 class PresentationServiceImplTest : public RenderViewHostImplTestHarness { |
189 public: | 197 public: |
190 PresentationServiceImplTest() {} | 198 PresentationServiceImplTest() {} |
191 | 199 |
192 void SetUp() override { | 200 void SetUp() override { |
193 RenderViewHostImplTestHarness::SetUp(); | 201 RenderViewHostImplTestHarness::SetUp(); |
194 | 202 |
195 auto request = mojo::GetProxy(&service_ptr_); | 203 auto request = mojo::GetProxy(&service_ptr_); |
(...skipping 13 matching lines...) Expand all Loading... |
209 | 217 |
210 void TearDown() override { | 218 void TearDown() override { |
211 service_ptr_.reset(); | 219 service_ptr_.reset(); |
212 if (service_impl_.get()) { | 220 if (service_impl_.get()) { |
213 EXPECT_CALL(mock_delegate_, RemoveObserver(_, _)).Times(1); | 221 EXPECT_CALL(mock_delegate_, RemoveObserver(_, _)).Times(1); |
214 service_impl_.reset(); | 222 service_impl_.reset(); |
215 } | 223 } |
216 RenderViewHostImplTestHarness::TearDown(); | 224 RenderViewHostImplTestHarness::TearDown(); |
217 } | 225 } |
218 | 226 |
219 void ListenForScreenAvailabilityAndWait(const std::string& url, | 227 void ListenForScreenAvailabilityAndWait( |
220 bool delegate_success) { | 228 const mojo::String& url, bool delegate_success) { |
221 base::RunLoop run_loop; | 229 base::RunLoop run_loop; |
222 // This will call to |service_impl_| via mojo. Process the message | 230 // This will call to |service_impl_| via mojo. Process the message |
223 // using RunLoop. | 231 // using RunLoop. |
224 // The callback shouldn't be invoked since there is no availability | 232 // The callback shouldn't be invoked since there is no availability |
225 // result yet. | 233 // result yet. |
226 EXPECT_CALL(mock_delegate_, AddScreenAvailabilityListener()) | 234 EXPECT_CALL(mock_delegate_, AddScreenAvailabilityListener()) |
227 .WillOnce(DoAll( | 235 .WillOnce(DoAll( |
228 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 236 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
229 Return(delegate_success))); | 237 Return(delegate_success))); |
230 service_ptr_->ListenForScreenAvailability(url); | 238 service_ptr_->ListenForScreenAvailability(url); |
(...skipping 15 matching lines...) Expand all Loading... |
246 run_loop.Run(); | 254 run_loop.Run(); |
247 run_loop_quit_closure_.Reset(); | 255 run_loop_quit_closure_.Reset(); |
248 } | 256 } |
249 | 257 |
250 void SimulateScreenAvailabilityChangeAndWait( | 258 void SimulateScreenAvailabilityChangeAndWait( |
251 const std::string& url, bool available) { | 259 const std::string& url, bool available) { |
252 auto listener_it = service_impl_->screen_availability_listeners_.find(url); | 260 auto listener_it = service_impl_->screen_availability_listeners_.find(url); |
253 ASSERT_TRUE(listener_it->second); | 261 ASSERT_TRUE(listener_it->second); |
254 | 262 |
255 base::RunLoop run_loop; | 263 base::RunLoop run_loop; |
256 EXPECT_CALL(mock_client_, OnScreenAvailabilityUpdated(url, available)) | 264 EXPECT_CALL(mock_client_, |
257 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); | 265 OnScreenAvailabilityUpdated(mojo::String(url), available)) |
| 266 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); |
258 listener_it->second->OnScreenAvailabilityChanged(available); | 267 listener_it->second->OnScreenAvailabilityChanged(available); |
259 run_loop.Run(); | 268 run_loop.Run(); |
260 } | 269 } |
261 | 270 |
262 void ExpectReset() { | 271 void ExpectReset() { |
263 EXPECT_CALL(mock_delegate_, Reset(_, _)).Times(1); | 272 EXPECT_CALL(mock_delegate_, Reset(_, _)).Times(1); |
264 } | 273 } |
265 | 274 |
266 void ExpectCleanState() { | 275 void ExpectCleanState() { |
267 EXPECT_TRUE(service_impl_->default_presentation_url_.empty()); | 276 EXPECT_TRUE(service_impl_->default_presentation_url_.empty()); |
(...skipping 15 matching lines...) Expand all Loading... |
283 void ExpectNewSessionCallbackError( | 292 void ExpectNewSessionCallbackError( |
284 blink::mojom::PresentationSessionInfoPtr info, | 293 blink::mojom::PresentationSessionInfoPtr info, |
285 blink::mojom::PresentationErrorPtr error) { | 294 blink::mojom::PresentationErrorPtr error) { |
286 EXPECT_TRUE(info.is_null()); | 295 EXPECT_TRUE(info.is_null()); |
287 EXPECT_FALSE(error.is_null()); | 296 EXPECT_FALSE(error.is_null()); |
288 if (!run_loop_quit_closure_.is_null()) | 297 if (!run_loop_quit_closure_.is_null()) |
289 run_loop_quit_closure_.Run(); | 298 run_loop_quit_closure_.Run(); |
290 } | 299 } |
291 | 300 |
292 void ExpectSessionMessages( | 301 void ExpectSessionMessages( |
293 const std::vector<blink::mojom::SessionMessagePtr>& expected_msgs, | 302 const mojo::Array<blink::mojom::SessionMessagePtr>& expected_msgs, |
294 const std::vector<blink::mojom::SessionMessagePtr>& actual_msgs) { | 303 const mojo::Array<blink::mojom::SessionMessagePtr>& actual_msgs) { |
295 EXPECT_EQ(expected_msgs.size(), actual_msgs.size()); | 304 EXPECT_EQ(expected_msgs.size(), actual_msgs.size()); |
296 for (size_t i = 0; i < actual_msgs.size(); ++i) | 305 for (size_t i = 0; i < actual_msgs.size(); ++i) { |
297 EXPECT_TRUE(expected_msgs[i].Equals(actual_msgs[i])); | 306 EXPECT_TRUE(ArePresentationSessionMessagesEqual(expected_msgs[i].get(), |
| 307 actual_msgs[i].get())); |
| 308 } |
298 } | 309 } |
299 | 310 |
300 void ExpectSendSessionMessageCallback(bool success) { | 311 void ExpectSendSessionMessageCallback(bool success) { |
301 EXPECT_TRUE(success); | 312 EXPECT_TRUE(success); |
302 EXPECT_FALSE(service_impl_->send_message_callback_); | 313 EXPECT_FALSE(service_impl_->send_message_callback_); |
303 if (!run_loop_quit_closure_.is_null()) | 314 if (!run_loop_quit_closure_.is_null()) |
304 run_loop_quit_closure_.Run(); | 315 run_loop_quit_closure_.Run(); |
305 } | 316 } |
306 | 317 |
307 void RunListenForSessionMessages(const std::string& text_msg, | 318 void RunListenForSessionMessages(const std::string& text_msg, |
308 const std::vector<uint8_t>& binary_data, | 319 const std::vector<uint8_t>& binary_data, |
309 bool pass_ownership) { | 320 bool pass_ownership) { |
310 std::vector<blink::mojom::SessionMessagePtr> expected_msgs(2); | 321 mojo::Array<blink::mojom::SessionMessagePtr> expected_msgs(2); |
311 expected_msgs[0] = blink::mojom::SessionMessage::New(); | 322 expected_msgs[0] = blink::mojom::SessionMessage::New(); |
312 expected_msgs[0]->type = blink::mojom::PresentationMessageType::TEXT; | 323 expected_msgs[0]->type = blink::mojom::PresentationMessageType::TEXT; |
313 expected_msgs[0]->message = text_msg; | 324 expected_msgs[0]->message = text_msg; |
314 expected_msgs[1] = blink::mojom::SessionMessage::New(); | 325 expected_msgs[1] = blink::mojom::SessionMessage::New(); |
315 expected_msgs[1]->type = | 326 expected_msgs[1]->type = |
316 blink::mojom::PresentationMessageType::ARRAY_BUFFER; | 327 blink::mojom::PresentationMessageType::ARRAY_BUFFER; |
317 expected_msgs[1]->data = binary_data; | 328 expected_msgs[1]->data = mojo::Array<uint8_t>::From(binary_data); |
318 | 329 |
319 blink::mojom::PresentationSessionInfoPtr session( | 330 blink::mojom::PresentationSessionInfoPtr session( |
320 blink::mojom::PresentationSessionInfo::New()); | 331 blink::mojom::PresentationSessionInfo::New()); |
321 session->url = kPresentationUrl; | 332 session->url = kPresentationUrl; |
322 session->id = kPresentationId; | 333 session->id = kPresentationId; |
323 | 334 |
324 PresentationSessionMessageCallback message_cb; | 335 PresentationSessionMessageCallback message_cb; |
325 { | 336 { |
326 base::RunLoop run_loop; | 337 base::RunLoop run_loop; |
327 EXPECT_CALL(mock_delegate_, ListenForSessionMessages(_, _, _, _)) | 338 EXPECT_CALL(mock_delegate_, ListenForSessionMessages(_, _, _, _)) |
(...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
498 blink::mojom::PresentationSessionInfo presentation_connection; | 509 blink::mojom::PresentationSessionInfo presentation_connection; |
499 presentation_connection.url = kPresentationUrl; | 510 presentation_connection.url = kPresentationUrl; |
500 presentation_connection.id = kPresentationId; | 511 presentation_connection.id = kPresentationId; |
501 { | 512 { |
502 base::RunLoop run_loop; | 513 base::RunLoop run_loop; |
503 PresentationConnectionStateChangeInfo closed_info( | 514 PresentationConnectionStateChangeInfo closed_info( |
504 PRESENTATION_CONNECTION_STATE_CLOSED); | 515 PRESENTATION_CONNECTION_STATE_CLOSED); |
505 closed_info.close_reason = PRESENTATION_CONNECTION_CLOSE_REASON_WENT_AWAY; | 516 closed_info.close_reason = PRESENTATION_CONNECTION_CLOSE_REASON_WENT_AWAY; |
506 closed_info.message = "Foo"; | 517 closed_info.message = "Foo"; |
507 | 518 |
508 EXPECT_CALL( | 519 EXPECT_CALL(mock_client_, |
509 mock_client_, | 520 OnConnectionClosed( |
510 OnConnectionClosed( | 521 Equals(presentation_connection), |
511 Equals(presentation_connection), | 522 blink::mojom::PresentationConnectionCloseReason::WENT_AWAY, |
512 blink::mojom::PresentationConnectionCloseReason::WENT_AWAY, "Foo")) | 523 mojo::String("Foo"))) |
513 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); | 524 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); |
514 state_changed_cb.Run(closed_info); | 525 state_changed_cb.Run(closed_info); |
515 run_loop.Run(); | 526 run_loop.Run(); |
516 } | 527 } |
517 } | 528 } |
518 | 529 |
519 TEST_F(PresentationServiceImplTest, SetSameDefaultPresentationUrl) { | 530 TEST_F(PresentationServiceImplTest, SetSameDefaultPresentationUrl) { |
520 EXPECT_CALL(mock_delegate_, | 531 EXPECT_CALL(mock_delegate_, |
521 SetDefaultPresentationUrl(_, _, Eq(kPresentationUrl), _)) | 532 SetDefaultPresentationUrl(_, _, Eq(kPresentationUrl), _)) |
522 .Times(1); | 533 .Times(1); |
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
562 .WillOnce(DoAll( | 573 .WillOnce(DoAll( |
563 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 574 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
564 SaveArg<4>(&error_cb))); | 575 SaveArg<4>(&error_cb))); |
565 run_loop.Run(); | 576 run_loop.Run(); |
566 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); | 577 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); |
567 SaveQuitClosureAndRunLoop(); | 578 SaveQuitClosureAndRunLoop(); |
568 } | 579 } |
569 | 580 |
570 TEST_F(PresentationServiceImplTest, JoinSessionSuccess) { | 581 TEST_F(PresentationServiceImplTest, JoinSessionSuccess) { |
571 service_ptr_->JoinSession( | 582 service_ptr_->JoinSession( |
572 kPresentationUrl, base::Optional<std::string>(kPresentationId), | 583 kPresentationUrl, |
573 base::Bind(&PresentationServiceImplTest::ExpectNewSessionCallbackSuccess, | 584 kPresentationId, |
574 base::Unretained(this))); | 585 base::Bind( |
| 586 &PresentationServiceImplTest::ExpectNewSessionCallbackSuccess, |
| 587 base::Unretained(this))); |
575 base::RunLoop run_loop; | 588 base::RunLoop run_loop; |
576 base::Callback<void(const PresentationSessionInfo&)> success_cb; | 589 base::Callback<void(const PresentationSessionInfo&)> success_cb; |
577 EXPECT_CALL(mock_delegate_, JoinSession( | 590 EXPECT_CALL(mock_delegate_, JoinSession( |
578 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) | 591 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) |
579 .WillOnce(DoAll( | 592 .WillOnce(DoAll( |
580 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 593 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
581 SaveArg<4>(&success_cb))); | 594 SaveArg<4>(&success_cb))); |
582 run_loop.Run(); | 595 run_loop.Run(); |
583 | 596 |
584 EXPECT_CALL(mock_delegate_, ListenForConnectionStateChange(_, _, _, _)) | 597 EXPECT_CALL(mock_delegate_, ListenForConnectionStateChange(_, _, _, _)) |
585 .Times(1); | 598 .Times(1); |
586 success_cb.Run(PresentationSessionInfo(kPresentationUrl, kPresentationId)); | 599 success_cb.Run(PresentationSessionInfo(kPresentationUrl, kPresentationId)); |
587 SaveQuitClosureAndRunLoop(); | 600 SaveQuitClosureAndRunLoop(); |
588 } | 601 } |
589 | 602 |
590 TEST_F(PresentationServiceImplTest, JoinSessionError) { | 603 TEST_F(PresentationServiceImplTest, JoinSessionError) { |
591 service_ptr_->JoinSession( | 604 service_ptr_->JoinSession( |
592 kPresentationUrl, base::Optional<std::string>(kPresentationId), | 605 kPresentationUrl, |
593 base::Bind(&PresentationServiceImplTest::ExpectNewSessionCallbackError, | 606 kPresentationId, |
594 base::Unretained(this))); | 607 base::Bind( |
| 608 &PresentationServiceImplTest::ExpectNewSessionCallbackError, |
| 609 base::Unretained(this))); |
595 base::RunLoop run_loop; | 610 base::RunLoop run_loop; |
596 base::Callback<void(const PresentationError&)> error_cb; | 611 base::Callback<void(const PresentationError&)> error_cb; |
597 EXPECT_CALL(mock_delegate_, JoinSession( | 612 EXPECT_CALL(mock_delegate_, JoinSession( |
598 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) | 613 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) |
599 .WillOnce(DoAll( | 614 .WillOnce(DoAll( |
600 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 615 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
601 SaveArg<5>(&error_cb))); | 616 SaveArg<5>(&error_cb))); |
602 run_loop.Run(); | 617 run_loop.Run(); |
603 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); | 618 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); |
604 SaveQuitClosureAndRunLoop(); | 619 SaveQuitClosureAndRunLoop(); |
(...skipping 92 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 std::vector<uint8_t> data; | 712 std::vector<uint8_t> data; |
698 data.assign(buffer, buffer + sizeof(buffer)); | 713 data.assign(buffer, buffer + sizeof(buffer)); |
699 | 714 |
700 blink::mojom::PresentationSessionInfoPtr session( | 715 blink::mojom::PresentationSessionInfoPtr session( |
701 blink::mojom::PresentationSessionInfo::New()); | 716 blink::mojom::PresentationSessionInfo::New()); |
702 session->url = kPresentationUrl; | 717 session->url = kPresentationUrl; |
703 session->id = kPresentationId; | 718 session->id = kPresentationId; |
704 blink::mojom::SessionMessagePtr message_request( | 719 blink::mojom::SessionMessagePtr message_request( |
705 blink::mojom::SessionMessage::New()); | 720 blink::mojom::SessionMessage::New()); |
706 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; | 721 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; |
707 message_request->data = data; | 722 message_request->data = mojo::Array<uint8_t>::From(data); |
708 service_ptr_->SendSessionMessage( | 723 service_ptr_->SendSessionMessage( |
709 std::move(session), std::move(message_request), | 724 std::move(session), std::move(message_request), |
710 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, | 725 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
711 base::Unretained(this))); | 726 base::Unretained(this))); |
712 | 727 |
713 base::RunLoop run_loop; | 728 base::RunLoop run_loop; |
714 base::Callback<void(bool)> send_message_cb; | 729 base::Callback<void(bool)> send_message_cb; |
715 PresentationSessionMessage* test_message = nullptr; | 730 PresentationSessionMessage* test_message = nullptr; |
716 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 731 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
717 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 732 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
(...skipping 23 matching lines...) Expand all Loading... |
741 std::vector<uint8_t> data; | 756 std::vector<uint8_t> data; |
742 data.assign(buffer, buffer + sizeof(buffer)); | 757 data.assign(buffer, buffer + sizeof(buffer)); |
743 | 758 |
744 blink::mojom::PresentationSessionInfoPtr session( | 759 blink::mojom::PresentationSessionInfoPtr session( |
745 blink::mojom::PresentationSessionInfo::New()); | 760 blink::mojom::PresentationSessionInfo::New()); |
746 session->url = kPresentationUrl; | 761 session->url = kPresentationUrl; |
747 session->id = kPresentationId; | 762 session->id = kPresentationId; |
748 blink::mojom::SessionMessagePtr message_request( | 763 blink::mojom::SessionMessagePtr message_request( |
749 blink::mojom::SessionMessage::New()); | 764 blink::mojom::SessionMessage::New()); |
750 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; | 765 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; |
751 message_request->data = data; | 766 message_request->data = mojo::Array<uint8_t>::From(data); |
752 service_ptr_->SendSessionMessage( | 767 service_ptr_->SendSessionMessage( |
753 std::move(session), std::move(message_request), | 768 std::move(session), std::move(message_request), |
754 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, | 769 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
755 base::Unretained(this))); | 770 base::Unretained(this))); |
756 | 771 |
757 base::RunLoop run_loop; | 772 base::RunLoop run_loop; |
758 base::Callback<void(bool)> send_message_cb; | 773 base::Callback<void(bool)> send_message_cb; |
759 PresentationSessionMessage* test_message = nullptr; | 774 PresentationSessionMessage* test_message = nullptr; |
760 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 775 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
761 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 776 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
(...skipping 10 matching lines...) Expand all Loading... |
772 std::vector<uint8_t> data; | 787 std::vector<uint8_t> data; |
773 data.assign(buffer, buffer + sizeof(buffer)); | 788 data.assign(buffer, buffer + sizeof(buffer)); |
774 | 789 |
775 blink::mojom::PresentationSessionInfoPtr session( | 790 blink::mojom::PresentationSessionInfoPtr session( |
776 blink::mojom::PresentationSessionInfo::New()); | 791 blink::mojom::PresentationSessionInfo::New()); |
777 session->url = kPresentationUrl; | 792 session->url = kPresentationUrl; |
778 session->id = kPresentationId; | 793 session->id = kPresentationId; |
779 blink::mojom::SessionMessagePtr message_request( | 794 blink::mojom::SessionMessagePtr message_request( |
780 blink::mojom::SessionMessage::New()); | 795 blink::mojom::SessionMessage::New()); |
781 message_request->type = blink::mojom::PresentationMessageType::BLOB; | 796 message_request->type = blink::mojom::PresentationMessageType::BLOB; |
782 message_request->data = data; | 797 message_request->data = mojo::Array<uint8_t>::From(data); |
783 service_ptr_->SendSessionMessage( | 798 service_ptr_->SendSessionMessage( |
784 std::move(session), std::move(message_request), | 799 std::move(session), std::move(message_request), |
785 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, | 800 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
786 base::Unretained(this))); | 801 base::Unretained(this))); |
787 | 802 |
788 base::RunLoop run_loop; | 803 base::RunLoop run_loop; |
789 base::Callback<void(bool)> send_message_cb; | 804 base::Callback<void(bool)> send_message_cb; |
790 PresentationSessionMessage* test_message = nullptr; | 805 PresentationSessionMessage* test_message = nullptr; |
791 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 806 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
792 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 807 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
835 mock_delegate_.set_screen_availability_listening_supported(false); | 850 mock_delegate_.set_screen_availability_listening_supported(false); |
836 base::RunLoop run_loop; | 851 base::RunLoop run_loop; |
837 EXPECT_CALL(mock_client_, | 852 EXPECT_CALL(mock_client_, |
838 OnScreenAvailabilityNotSupported(Eq(kPresentationUrl))) | 853 OnScreenAvailabilityNotSupported(Eq(kPresentationUrl))) |
839 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); | 854 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); |
840 ListenForScreenAvailabilityAndWait(kPresentationUrl, false); | 855 ListenForScreenAvailabilityAndWait(kPresentationUrl, false); |
841 run_loop.Run(); | 856 run_loop.Run(); |
842 } | 857 } |
843 | 858 |
844 } // namespace content | 859 } // namespace content |
OLD | NEW |