| 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 262 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 } | 273 } |
| 274 | 274 |
| 275 void ExpectCleanState() { | 275 void ExpectCleanState() { |
| 276 EXPECT_TRUE(service_impl_->default_presentation_url_.empty()); | 276 EXPECT_TRUE(service_impl_->default_presentation_url_.empty()); |
| 277 EXPECT_EQ( | 277 EXPECT_EQ( |
| 278 service_impl_->screen_availability_listeners_.find(kPresentationUrl), | 278 service_impl_->screen_availability_listeners_.find(kPresentationUrl), |
| 279 service_impl_->screen_availability_listeners_.end()); | 279 service_impl_->screen_availability_listeners_.end()); |
| 280 EXPECT_FALSE(service_impl_->on_session_messages_callback_.get()); | 280 EXPECT_FALSE(service_impl_->on_session_messages_callback_.get()); |
| 281 } | 281 } |
| 282 | 282 |
| 283 void ExpectNewSessionMojoCallbackSuccess( | 283 void ExpectNewSessionCallbackSuccess( |
| 284 blink::mojom::PresentationSessionInfoPtr info, | 284 blink::mojom::PresentationSessionInfoPtr info, |
| 285 blink::mojom::PresentationErrorPtr error) { | 285 blink::mojom::PresentationErrorPtr error) { |
| 286 EXPECT_FALSE(info.is_null()); | 286 EXPECT_FALSE(info.is_null()); |
| 287 EXPECT_TRUE(error.is_null()); | 287 EXPECT_TRUE(error.is_null()); |
| 288 if (!run_loop_quit_closure_.is_null()) | 288 if (!run_loop_quit_closure_.is_null()) |
| 289 run_loop_quit_closure_.Run(); | 289 run_loop_quit_closure_.Run(); |
| 290 } | 290 } |
| 291 | 291 |
| 292 void ExpectNewSessionMojoCallbackError( | 292 void ExpectNewSessionCallbackError( |
| 293 blink::mojom::PresentationSessionInfoPtr info, | 293 blink::mojom::PresentationSessionInfoPtr info, |
| 294 blink::mojom::PresentationErrorPtr error) { | 294 blink::mojom::PresentationErrorPtr error) { |
| 295 EXPECT_TRUE(info.is_null()); | 295 EXPECT_TRUE(info.is_null()); |
| 296 EXPECT_FALSE(error.is_null()); | 296 EXPECT_FALSE(error.is_null()); |
| 297 if (!run_loop_quit_closure_.is_null()) | 297 if (!run_loop_quit_closure_.is_null()) |
| 298 run_loop_quit_closure_.Run(); | 298 run_loop_quit_closure_.Run(); |
| 299 } | 299 } |
| 300 | 300 |
| 301 void ExpectSessionMessages( | 301 void ExpectSessionMessages( |
| 302 const mojo::Array<blink::mojom::SessionMessagePtr>& expected_msgs, | 302 const mojo::Array<blink::mojom::SessionMessagePtr>& expected_msgs, |
| 303 const mojo::Array<blink::mojom::SessionMessagePtr>& actual_msgs) { | 303 const mojo::Array<blink::mojom::SessionMessagePtr>& actual_msgs) { |
| 304 EXPECT_EQ(expected_msgs.size(), actual_msgs.size()); | 304 EXPECT_EQ(expected_msgs.size(), actual_msgs.size()); |
| 305 for (size_t i = 0; i < actual_msgs.size(); ++i) { | 305 for (size_t i = 0; i < actual_msgs.size(); ++i) { |
| 306 EXPECT_TRUE(ArePresentationSessionMessagesEqual(expected_msgs[i].get(), | 306 EXPECT_TRUE(ArePresentationSessionMessagesEqual(expected_msgs[i].get(), |
| 307 actual_msgs[i].get())); | 307 actual_msgs[i].get())); |
| 308 } | 308 } |
| 309 } | 309 } |
| 310 | 310 |
| 311 void ExpectSendMessageMojoCallback(bool success) { | 311 void ExpectSendSessionMessageCallback(bool success) { |
| 312 EXPECT_TRUE(success); | 312 EXPECT_TRUE(success); |
| 313 EXPECT_FALSE(service_impl_->send_message_callback_); | 313 EXPECT_FALSE(service_impl_->send_message_callback_); |
| 314 if (!run_loop_quit_closure_.is_null()) | 314 if (!run_loop_quit_closure_.is_null()) |
| 315 run_loop_quit_closure_.Run(); | 315 run_loop_quit_closure_.Run(); |
| 316 } | 316 } |
| 317 | 317 |
| 318 void RunListenForSessionMessages(const std::string& text_msg, | 318 void RunListenForSessionMessages(const std::string& text_msg, |
| 319 const std::vector<uint8_t>& binary_data, | 319 const std::vector<uint8_t>& binary_data, |
| 320 bool pass_ownership) { | 320 bool pass_ownership) { |
| 321 mojo::Array<blink::mojom::SessionMessagePtr> expected_msgs(2); | 321 mojo::Array<blink::mojom::SessionMessagePtr> expected_msgs(2); |
| (...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 538 // Same URL as before; no-ops. | 538 // Same URL as before; no-ops. |
| 539 service_impl_->SetDefaultPresentationURL(kPresentationUrl); | 539 service_impl_->SetDefaultPresentationURL(kPresentationUrl); |
| 540 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_delegate_)); | 540 EXPECT_TRUE(Mock::VerifyAndClearExpectations(&mock_delegate_)); |
| 541 EXPECT_EQ(kPresentationUrl, service_impl_->default_presentation_url_); | 541 EXPECT_EQ(kPresentationUrl, service_impl_->default_presentation_url_); |
| 542 } | 542 } |
| 543 | 543 |
| 544 TEST_F(PresentationServiceImplTest, StartSessionSuccess) { | 544 TEST_F(PresentationServiceImplTest, StartSessionSuccess) { |
| 545 service_ptr_->StartSession( | 545 service_ptr_->StartSession( |
| 546 kPresentationUrl, | 546 kPresentationUrl, |
| 547 base::Bind( | 547 base::Bind( |
| 548 &PresentationServiceImplTest::ExpectNewSessionMojoCallbackSuccess, | 548 &PresentationServiceImplTest::ExpectNewSessionCallbackSuccess, |
| 549 base::Unretained(this))); | 549 base::Unretained(this))); |
| 550 base::RunLoop run_loop; | 550 base::RunLoop run_loop; |
| 551 base::Callback<void(const PresentationSessionInfo&)> success_cb; | 551 base::Callback<void(const PresentationSessionInfo&)> success_cb; |
| 552 EXPECT_CALL(mock_delegate_, StartSession(_, _, Eq(kPresentationUrl), _, _)) | 552 EXPECT_CALL(mock_delegate_, StartSession(_, _, Eq(kPresentationUrl), _, _)) |
| 553 .WillOnce(DoAll( | 553 .WillOnce(DoAll( |
| 554 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 554 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 555 SaveArg<3>(&success_cb))); | 555 SaveArg<3>(&success_cb))); |
| 556 run_loop.Run(); | 556 run_loop.Run(); |
| 557 | 557 |
| 558 EXPECT_CALL(mock_delegate_, ListenForConnectionStateChange(_, _, _, _)) | 558 EXPECT_CALL(mock_delegate_, ListenForConnectionStateChange(_, _, _, _)) |
| 559 .Times(1); | 559 .Times(1); |
| 560 success_cb.Run(PresentationSessionInfo(kPresentationUrl, kPresentationId)); | 560 success_cb.Run(PresentationSessionInfo(kPresentationUrl, kPresentationId)); |
| 561 SaveQuitClosureAndRunLoop(); | 561 SaveQuitClosureAndRunLoop(); |
| 562 } | 562 } |
| 563 | 563 |
| 564 TEST_F(PresentationServiceImplTest, StartSessionError) { | 564 TEST_F(PresentationServiceImplTest, StartSessionError) { |
| 565 service_ptr_->StartSession( | 565 service_ptr_->StartSession( |
| 566 kPresentationUrl, | 566 kPresentationUrl, |
| 567 base::Bind( | 567 base::Bind( |
| 568 &PresentationServiceImplTest::ExpectNewSessionMojoCallbackError, | 568 &PresentationServiceImplTest::ExpectNewSessionCallbackError, |
| 569 base::Unretained(this))); | 569 base::Unretained(this))); |
| 570 base::RunLoop run_loop; | 570 base::RunLoop run_loop; |
| 571 base::Callback<void(const PresentationError&)> error_cb; | 571 base::Callback<void(const PresentationError&)> error_cb; |
| 572 EXPECT_CALL(mock_delegate_, StartSession(_, _, Eq(kPresentationUrl), _, _)) | 572 EXPECT_CALL(mock_delegate_, StartSession(_, _, Eq(kPresentationUrl), _, _)) |
| 573 .WillOnce(DoAll( | 573 .WillOnce(DoAll( |
| 574 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 574 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 575 SaveArg<4>(&error_cb))); | 575 SaveArg<4>(&error_cb))); |
| 576 run_loop.Run(); | 576 run_loop.Run(); |
| 577 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); | 577 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); |
| 578 SaveQuitClosureAndRunLoop(); | 578 SaveQuitClosureAndRunLoop(); |
| 579 } | 579 } |
| 580 | 580 |
| 581 TEST_F(PresentationServiceImplTest, JoinSessionSuccess) { | 581 TEST_F(PresentationServiceImplTest, JoinSessionSuccess) { |
| 582 service_ptr_->JoinSession( | 582 service_ptr_->JoinSession( |
| 583 kPresentationUrl, | 583 kPresentationUrl, |
| 584 kPresentationId, | 584 kPresentationId, |
| 585 base::Bind( | 585 base::Bind( |
| 586 &PresentationServiceImplTest::ExpectNewSessionMojoCallbackSuccess, | 586 &PresentationServiceImplTest::ExpectNewSessionCallbackSuccess, |
| 587 base::Unretained(this))); | 587 base::Unretained(this))); |
| 588 base::RunLoop run_loop; | 588 base::RunLoop run_loop; |
| 589 base::Callback<void(const PresentationSessionInfo&)> success_cb; | 589 base::Callback<void(const PresentationSessionInfo&)> success_cb; |
| 590 EXPECT_CALL(mock_delegate_, JoinSession( | 590 EXPECT_CALL(mock_delegate_, JoinSession( |
| 591 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) | 591 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) |
| 592 .WillOnce(DoAll( | 592 .WillOnce(DoAll( |
| 593 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 593 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 594 SaveArg<4>(&success_cb))); | 594 SaveArg<4>(&success_cb))); |
| 595 run_loop.Run(); | 595 run_loop.Run(); |
| 596 | 596 |
| 597 EXPECT_CALL(mock_delegate_, ListenForConnectionStateChange(_, _, _, _)) | 597 EXPECT_CALL(mock_delegate_, ListenForConnectionStateChange(_, _, _, _)) |
| 598 .Times(1); | 598 .Times(1); |
| 599 success_cb.Run(PresentationSessionInfo(kPresentationUrl, kPresentationId)); | 599 success_cb.Run(PresentationSessionInfo(kPresentationUrl, kPresentationId)); |
| 600 SaveQuitClosureAndRunLoop(); | 600 SaveQuitClosureAndRunLoop(); |
| 601 } | 601 } |
| 602 | 602 |
| 603 TEST_F(PresentationServiceImplTest, JoinSessionError) { | 603 TEST_F(PresentationServiceImplTest, JoinSessionError) { |
| 604 service_ptr_->JoinSession( | 604 service_ptr_->JoinSession( |
| 605 kPresentationUrl, | 605 kPresentationUrl, |
| 606 kPresentationId, | 606 kPresentationId, |
| 607 base::Bind( | 607 base::Bind( |
| 608 &PresentationServiceImplTest::ExpectNewSessionMojoCallbackError, | 608 &PresentationServiceImplTest::ExpectNewSessionCallbackError, |
| 609 base::Unretained(this))); | 609 base::Unretained(this))); |
| 610 base::RunLoop run_loop; | 610 base::RunLoop run_loop; |
| 611 base::Callback<void(const PresentationError&)> error_cb; | 611 base::Callback<void(const PresentationError&)> error_cb; |
| 612 EXPECT_CALL(mock_delegate_, JoinSession( | 612 EXPECT_CALL(mock_delegate_, JoinSession( |
| 613 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) | 613 _, _, Eq(kPresentationUrl), Eq(kPresentationId), _, _)) |
| 614 .WillOnce(DoAll( | 614 .WillOnce(DoAll( |
| 615 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 615 InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 616 SaveArg<5>(&error_cb))); | 616 SaveArg<5>(&error_cb))); |
| 617 run_loop.Run(); | 617 run_loop.Run(); |
| 618 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); | 618 error_cb.Run(PresentationError(PRESENTATION_ERROR_UNKNOWN, "Error message")); |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 659 EXPECT_CALL(mock_delegate_, StartSession(_, _, Eq(presentation_url1), _, _)) | 659 EXPECT_CALL(mock_delegate_, StartSession(_, _, Eq(presentation_url1), _, _)) |
| 660 .Times(1); | 660 .Times(1); |
| 661 service_ptr_->StartSession(presentation_url1, | 661 service_ptr_->StartSession(presentation_url1, |
| 662 base::Bind(&DoNothing)); | 662 base::Bind(&DoNothing)); |
| 663 | 663 |
| 664 // This request should fail immediately, since there is already a StartSession | 664 // This request should fail immediately, since there is already a StartSession |
| 665 // in progress. | 665 // in progress. |
| 666 service_ptr_->StartSession( | 666 service_ptr_->StartSession( |
| 667 presentation_url2, | 667 presentation_url2, |
| 668 base::Bind( | 668 base::Bind( |
| 669 &PresentationServiceImplTest::ExpectNewSessionMojoCallbackError, | 669 &PresentationServiceImplTest::ExpectNewSessionCallbackError, |
| 670 base::Unretained(this))); | 670 base::Unretained(this))); |
| 671 SaveQuitClosureAndRunLoop(); | 671 SaveQuitClosureAndRunLoop(); |
| 672 } | 672 } |
| 673 | 673 |
| 674 TEST_F(PresentationServiceImplTest, SendStringMessage) { | 674 TEST_F(PresentationServiceImplTest, SendStringMessage) { |
| 675 std::string message("Test presentation session message"); | 675 std::string message("Test presentation session message"); |
| 676 | 676 |
| 677 blink::mojom::PresentationSessionInfoPtr session( | 677 blink::mojom::PresentationSessionInfoPtr session( |
| 678 blink::mojom::PresentationSessionInfo::New()); | 678 blink::mojom::PresentationSessionInfo::New()); |
| 679 session->url = kPresentationUrl; | 679 session->url = kPresentationUrl; |
| 680 session->id = kPresentationId; | 680 session->id = kPresentationId; |
| 681 blink::mojom::SessionMessagePtr message_request( | 681 blink::mojom::SessionMessagePtr message_request( |
| 682 blink::mojom::SessionMessage::New()); | 682 blink::mojom::SessionMessage::New()); |
| 683 message_request->type = blink::mojom::PresentationMessageType::TEXT; | 683 message_request->type = blink::mojom::PresentationMessageType::TEXT; |
| 684 message_request->message = message; | 684 message_request->message = message; |
| 685 service_ptr_->SendSessionMessage( | 685 service_ptr_->SendSessionMessage( |
| 686 std::move(session), std::move(message_request), | 686 std::move(session), std::move(message_request), |
| 687 base::Bind(&PresentationServiceImplTest::ExpectSendMessageMojoCallback, | 687 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
| 688 base::Unretained(this))); | 688 base::Unretained(this))); |
| 689 | 689 |
| 690 base::RunLoop run_loop; | 690 base::RunLoop run_loop; |
| 691 base::Callback<void(bool)> send_message_cb; | 691 base::Callback<void(bool)> send_message_cb; |
| 692 PresentationSessionMessage* test_message = nullptr; | 692 PresentationSessionMessage* test_message = nullptr; |
| 693 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 693 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
| 694 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 694 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 695 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); | 695 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); |
| 696 run_loop.Run(); | 696 run_loop.Run(); |
| 697 | 697 |
| (...skipping 17 matching lines...) Expand all Loading... |
| 715 blink::mojom::PresentationSessionInfoPtr session( | 715 blink::mojom::PresentationSessionInfoPtr session( |
| 716 blink::mojom::PresentationSessionInfo::New()); | 716 blink::mojom::PresentationSessionInfo::New()); |
| 717 session->url = kPresentationUrl; | 717 session->url = kPresentationUrl; |
| 718 session->id = kPresentationId; | 718 session->id = kPresentationId; |
| 719 blink::mojom::SessionMessagePtr message_request( | 719 blink::mojom::SessionMessagePtr message_request( |
| 720 blink::mojom::SessionMessage::New()); | 720 blink::mojom::SessionMessage::New()); |
| 721 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; | 721 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; |
| 722 message_request->data = mojo::Array<uint8_t>::From(data); | 722 message_request->data = mojo::Array<uint8_t>::From(data); |
| 723 service_ptr_->SendSessionMessage( | 723 service_ptr_->SendSessionMessage( |
| 724 std::move(session), std::move(message_request), | 724 std::move(session), std::move(message_request), |
| 725 base::Bind(&PresentationServiceImplTest::ExpectSendMessageMojoCallback, | 725 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
| 726 base::Unretained(this))); | 726 base::Unretained(this))); |
| 727 | 727 |
| 728 base::RunLoop run_loop; | 728 base::RunLoop run_loop; |
| 729 base::Callback<void(bool)> send_message_cb; | 729 base::Callback<void(bool)> send_message_cb; |
| 730 PresentationSessionMessage* test_message = nullptr; | 730 PresentationSessionMessage* test_message = nullptr; |
| 731 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 731 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
| 732 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 732 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 733 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); | 733 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); |
| 734 run_loop.Run(); | 734 run_loop.Run(); |
| 735 | 735 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 759 blink::mojom::PresentationSessionInfoPtr session( | 759 blink::mojom::PresentationSessionInfoPtr session( |
| 760 blink::mojom::PresentationSessionInfo::New()); | 760 blink::mojom::PresentationSessionInfo::New()); |
| 761 session->url = kPresentationUrl; | 761 session->url = kPresentationUrl; |
| 762 session->id = kPresentationId; | 762 session->id = kPresentationId; |
| 763 blink::mojom::SessionMessagePtr message_request( | 763 blink::mojom::SessionMessagePtr message_request( |
| 764 blink::mojom::SessionMessage::New()); | 764 blink::mojom::SessionMessage::New()); |
| 765 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; | 765 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; |
| 766 message_request->data = mojo::Array<uint8_t>::From(data); | 766 message_request->data = mojo::Array<uint8_t>::From(data); |
| 767 service_ptr_->SendSessionMessage( | 767 service_ptr_->SendSessionMessage( |
| 768 std::move(session), std::move(message_request), | 768 std::move(session), std::move(message_request), |
| 769 base::Bind(&PresentationServiceImplTest::ExpectSendMessageMojoCallback, | 769 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
| 770 base::Unretained(this))); | 770 base::Unretained(this))); |
| 771 | 771 |
| 772 base::RunLoop run_loop; | 772 base::RunLoop run_loop; |
| 773 base::Callback<void(bool)> send_message_cb; | 773 base::Callback<void(bool)> send_message_cb; |
| 774 PresentationSessionMessage* test_message = nullptr; | 774 PresentationSessionMessage* test_message = nullptr; |
| 775 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 775 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
| 776 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 776 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 777 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); | 777 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); |
| 778 run_loop.Run(); | 778 run_loop.Run(); |
| 779 | 779 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 790 blink::mojom::PresentationSessionInfoPtr session( | 790 blink::mojom::PresentationSessionInfoPtr session( |
| 791 blink::mojom::PresentationSessionInfo::New()); | 791 blink::mojom::PresentationSessionInfo::New()); |
| 792 session->url = kPresentationUrl; | 792 session->url = kPresentationUrl; |
| 793 session->id = kPresentationId; | 793 session->id = kPresentationId; |
| 794 blink::mojom::SessionMessagePtr message_request( | 794 blink::mojom::SessionMessagePtr message_request( |
| 795 blink::mojom::SessionMessage::New()); | 795 blink::mojom::SessionMessage::New()); |
| 796 message_request->type = blink::mojom::PresentationMessageType::BLOB; | 796 message_request->type = blink::mojom::PresentationMessageType::BLOB; |
| 797 message_request->data = mojo::Array<uint8_t>::From(data); | 797 message_request->data = mojo::Array<uint8_t>::From(data); |
| 798 service_ptr_->SendSessionMessage( | 798 service_ptr_->SendSessionMessage( |
| 799 std::move(session), std::move(message_request), | 799 std::move(session), std::move(message_request), |
| 800 base::Bind(&PresentationServiceImplTest::ExpectSendMessageMojoCallback, | 800 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, |
| 801 base::Unretained(this))); | 801 base::Unretained(this))); |
| 802 | 802 |
| 803 base::RunLoop run_loop; | 803 base::RunLoop run_loop; |
| 804 base::Callback<void(bool)> send_message_cb; | 804 base::Callback<void(bool)> send_message_cb; |
| 805 PresentationSessionMessage* test_message = nullptr; | 805 PresentationSessionMessage* test_message = nullptr; |
| 806 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) | 806 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) |
| 807 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), | 807 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), |
| 808 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); | 808 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); |
| 809 run_loop.Run(); | 809 run_loop.Run(); |
| 810 | 810 |
| (...skipping 23 matching lines...) Expand all Loading... |
| 834 base::StringPrintf(presentation_url, i), | 834 base::StringPrintf(presentation_url, i), |
| 835 base::StringPrintf(presentation_id, i), | 835 base::StringPrintf(presentation_id, i), |
| 836 base::Bind(&DoNothing)); | 836 base::Bind(&DoNothing)); |
| 837 } | 837 } |
| 838 | 838 |
| 839 // Exceeded maximum queue size, should invoke mojo callback with error. | 839 // Exceeded maximum queue size, should invoke mojo callback with error. |
| 840 service_ptr_->JoinSession( | 840 service_ptr_->JoinSession( |
| 841 base::StringPrintf(presentation_url, i), | 841 base::StringPrintf(presentation_url, i), |
| 842 base::StringPrintf(presentation_id, i), | 842 base::StringPrintf(presentation_id, i), |
| 843 base::Bind( | 843 base::Bind( |
| 844 &PresentationServiceImplTest::ExpectNewSessionMojoCallbackError, | 844 &PresentationServiceImplTest::ExpectNewSessionCallbackError, |
| 845 base::Unretained(this))); | 845 base::Unretained(this))); |
| 846 SaveQuitClosureAndRunLoop(); | 846 SaveQuitClosureAndRunLoop(); |
| 847 } | 847 } |
| 848 | 848 |
| 849 TEST_F(PresentationServiceImplTest, ScreenAvailabilityNotSupported) { | 849 TEST_F(PresentationServiceImplTest, ScreenAvailabilityNotSupported) { |
| 850 mock_delegate_.set_screen_availability_listening_supported(false); | 850 mock_delegate_.set_screen_availability_listening_supported(false); |
| 851 base::RunLoop run_loop; | 851 base::RunLoop run_loop; |
| 852 EXPECT_CALL(mock_client_, | 852 EXPECT_CALL(mock_client_, |
| 853 OnScreenAvailabilityNotSupported(Eq(kPresentationUrl))) | 853 OnScreenAvailabilityNotSupported(Eq(kPresentationUrl))) |
| 854 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); | 854 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); |
| 855 ListenForScreenAvailabilityAndWait(kPresentationUrl, false); | 855 ListenForScreenAvailabilityAndWait(kPresentationUrl, false); |
| 856 run_loop.Run(); | 856 run_loop.Run(); |
| 857 } | 857 } |
| 858 | 858 |
| 859 } // namespace content | 859 } // namespace content |
| OLD | NEW |