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

Side by Side Diff: content/browser/presentation/presentation_service_impl_unittest.cc

Issue 2562603002: Updates SessionMessage to ConnectionMessage. (Closed)
Patch Set: More edits to test. Created 4 years 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 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 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
106 const PresentationSessionStartedCallback& success_cb, 106 const PresentationSessionStartedCallback& success_cb,
107 const PresentationSessionErrorCallback& error_cb)); 107 const PresentationSessionErrorCallback& error_cb));
108 MOCK_METHOD3(CloseConnection, 108 MOCK_METHOD3(CloseConnection,
109 void(int render_process_id, 109 void(int render_process_id,
110 int render_frame_id, 110 int render_frame_id,
111 const std::string& presentation_id)); 111 const std::string& presentation_id));
112 MOCK_METHOD3(Terminate, 112 MOCK_METHOD3(Terminate,
113 void(int render_process_id, 113 void(int render_process_id,
114 int render_frame_id, 114 int render_frame_id,
115 const std::string& presentation_id)); 115 const std::string& presentation_id));
116 MOCK_METHOD4(ListenForSessionMessages, 116 MOCK_METHOD4(ListenForConnectionMessages,
117 void(int render_process_id, 117 void(int render_process_id,
118 int render_frame_id, 118 int render_frame_id,
119 const content::PresentationSessionInfo& session, 119 const content::PresentationSessionInfo& session,
120 const PresentationSessionMessageCallback& message_cb)); 120 const PresentationConnectionMessageCallback& message_cb));
121 MOCK_METHOD5(SendMessageRawPtr, 121 MOCK_METHOD5(SendMessageRawPtr,
122 void(int render_process_id, 122 void(int render_process_id,
123 int render_frame_id, 123 int render_frame_id,
124 const content::PresentationSessionInfo& session, 124 const content::PresentationSessionInfo& session,
125 PresentationSessionMessage* message_request, 125 PresentationConnectionMessage* message_request,
126 const SendMessageCallback& send_message_cb)); 126 const SendMessageCallback& send_message_cb));
127 void SendMessage(int render_process_id, 127 void SendMessage(
128 int render_frame_id, 128 int render_process_id,
129 const content::PresentationSessionInfo& session, 129 int render_frame_id,
130 std::unique_ptr<PresentationSessionMessage> message_request, 130 const content::PresentationSessionInfo& session,
131 const SendMessageCallback& send_message_cb) override { 131 std::unique_ptr<PresentationConnectionMessage> message_request,
132 const SendMessageCallback& send_message_cb) override {
132 SendMessageRawPtr(render_process_id, render_frame_id, session, 133 SendMessageRawPtr(render_process_id, render_frame_id, session,
133 message_request.release(), send_message_cb); 134 message_request.release(), send_message_cb);
134 } 135 }
135 MOCK_METHOD4(ListenForConnectionStateChange, 136 MOCK_METHOD4(ListenForConnectionStateChange,
136 void(int render_process_id, 137 void(int render_process_id,
137 int render_frame_id, 138 int render_frame_id,
138 const content::PresentationSessionInfo& connection, 139 const content::PresentationSessionInfo& connection,
139 const content::PresentationConnectionStateChangedCallback& 140 const content::PresentationConnectionStateChangedCallback&
140 state_changed_cb)); 141 state_changed_cb));
141 142
(...skipping 25 matching lines...) Expand all
167 const std::string& message) override { 168 const std::string& message) override {
168 OnConnectionClosed(*connection, reason, message); 169 OnConnectionClosed(*connection, reason, message);
169 } 170 }
170 MOCK_METHOD3(OnConnectionClosed, 171 MOCK_METHOD3(OnConnectionClosed,
171 void(const blink::mojom::PresentationSessionInfo& connection, 172 void(const blink::mojom::PresentationSessionInfo& connection,
172 blink::mojom::PresentationConnectionCloseReason reason, 173 blink::mojom::PresentationConnectionCloseReason reason,
173 const std::string& message)); 174 const std::string& message));
174 175
175 MOCK_METHOD1(OnScreenAvailabilityNotSupported, void(const GURL& url)); 176 MOCK_METHOD1(OnScreenAvailabilityNotSupported, void(const GURL& url));
176 177
177 void OnSessionMessagesReceived( 178 void OnConnectionMessagesReceived(
178 blink::mojom::PresentationSessionInfoPtr session_info, 179 blink::mojom::PresentationSessionInfoPtr session_info,
179 std::vector<blink::mojom::SessionMessagePtr> messages) override { 180 std::vector<blink::mojom::ConnectionMessagePtr> messages) override {
180 messages_received_ = std::move(messages); 181 messages_received_ = std::move(messages);
181 MessagesReceived(); 182 MessagesReceived();
182 } 183 }
183 MOCK_METHOD0(MessagesReceived, void()); 184 MOCK_METHOD0(MessagesReceived, void());
184 185
185 void OnDefaultSessionStarted( 186 void OnDefaultSessionStarted(
186 blink::mojom::PresentationSessionInfoPtr session_info) override { 187 blink::mojom::PresentationSessionInfoPtr session_info) override {
187 OnDefaultSessionStarted(*session_info); 188 OnDefaultSessionStarted(*session_info);
188 } 189 }
189 MOCK_METHOD1(OnDefaultSessionStarted, 190 MOCK_METHOD1(OnDefaultSessionStarted,
190 void(const blink::mojom::PresentationSessionInfo& session_info)); 191 void(const blink::mojom::PresentationSessionInfo& session_info));
191 192
192 void OnReceiverConnectionAvailable( 193 void OnReceiverConnectionAvailable(
193 blink::mojom::PresentationSessionInfoPtr session_info) override { 194 blink::mojom::PresentationSessionInfoPtr session_info) override {
194 OnReceiverConnectionAvailable(*session_info); 195 OnReceiverConnectionAvailable(*session_info);
195 } 196 }
196 MOCK_METHOD1(OnReceiverConnectionAvailable, 197 MOCK_METHOD1(OnReceiverConnectionAvailable,
197 void(const blink::mojom::PresentationSessionInfo& session_info)); 198 void(const blink::mojom::PresentationSessionInfo& session_info));
198 199
199 std::vector<blink::mojom::SessionMessagePtr> messages_received_; 200 std::vector<blink::mojom::ConnectionMessagePtr> messages_received_;
200 }; 201 };
201 202
202 class PresentationServiceImplTest : public RenderViewHostImplTestHarness { 203 class PresentationServiceImplTest : public RenderViewHostImplTestHarness {
203 public: 204 public:
204 PresentationServiceImplTest() 205 PresentationServiceImplTest()
205 : presentation_url1_(GURL(kPresentationUrl1)), 206 : presentation_url1_(GURL(kPresentationUrl1)),
206 presentation_url2_(GURL(kPresentationUrl2)), 207 presentation_url2_(GURL(kPresentationUrl2)),
207 presentation_url3_(GURL(kPresentationUrl3)) {} 208 presentation_url3_(GURL(kPresentationUrl3)) {}
208 209
209 void SetUp() override { 210 void SetUp() override {
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
281 282
282 void ExpectReset() { 283 void ExpectReset() {
283 EXPECT_CALL(mock_delegate_, Reset(_, _)).Times(1); 284 EXPECT_CALL(mock_delegate_, Reset(_, _)).Times(1);
284 } 285 }
285 286
286 void ExpectCleanState() { 287 void ExpectCleanState() {
287 EXPECT_TRUE(service_impl_->default_presentation_urls_.empty()); 288 EXPECT_TRUE(service_impl_->default_presentation_urls_.empty());
288 EXPECT_EQ( 289 EXPECT_EQ(
289 service_impl_->screen_availability_listeners_.find(presentation_url1_), 290 service_impl_->screen_availability_listeners_.find(presentation_url1_),
290 service_impl_->screen_availability_listeners_.end()); 291 service_impl_->screen_availability_listeners_.end());
291 EXPECT_FALSE(service_impl_->on_session_messages_callback_.get()); 292 EXPECT_FALSE(service_impl_->on_connection_messages_callback_.get());
292 } 293 }
293 294
294 void ExpectNewSessionCallbackSuccess( 295 void ExpectNewSessionCallbackSuccess(
295 blink::mojom::PresentationSessionInfoPtr info, 296 blink::mojom::PresentationSessionInfoPtr info,
296 blink::mojom::PresentationErrorPtr error) { 297 blink::mojom::PresentationErrorPtr error) {
297 EXPECT_FALSE(info.is_null()); 298 EXPECT_FALSE(info.is_null());
298 EXPECT_TRUE(error.is_null()); 299 EXPECT_TRUE(error.is_null());
299 if (!run_loop_quit_closure_.is_null()) 300 if (!run_loop_quit_closure_.is_null())
300 run_loop_quit_closure_.Run(); 301 run_loop_quit_closure_.Run();
301 } 302 }
302 303
303 void ExpectNewSessionCallbackError( 304 void ExpectNewSessionCallbackError(
304 blink::mojom::PresentationSessionInfoPtr info, 305 blink::mojom::PresentationSessionInfoPtr info,
305 blink::mojom::PresentationErrorPtr error) { 306 blink::mojom::PresentationErrorPtr error) {
306 EXPECT_TRUE(info.is_null()); 307 EXPECT_TRUE(info.is_null());
307 EXPECT_FALSE(error.is_null()); 308 EXPECT_FALSE(error.is_null());
308 if (!run_loop_quit_closure_.is_null()) 309 if (!run_loop_quit_closure_.is_null())
309 run_loop_quit_closure_.Run(); 310 run_loop_quit_closure_.Run();
310 } 311 }
311 312
312 void ExpectSessionMessages( 313 void ExpectConnectionMessages(
313 const std::vector<blink::mojom::SessionMessagePtr>& expected_msgs, 314 const std::vector<blink::mojom::ConnectionMessagePtr>& expected_msgs,
314 const std::vector<blink::mojom::SessionMessagePtr>& actual_msgs) { 315 const std::vector<blink::mojom::ConnectionMessagePtr>& actual_msgs) {
315 EXPECT_EQ(expected_msgs.size(), actual_msgs.size()); 316 EXPECT_EQ(expected_msgs.size(), actual_msgs.size());
316 for (size_t i = 0; i < actual_msgs.size(); ++i) 317 for (size_t i = 0; i < actual_msgs.size(); ++i)
317 EXPECT_TRUE(expected_msgs[i].Equals(actual_msgs[i])); 318 EXPECT_TRUE(expected_msgs[i].Equals(actual_msgs[i]));
318 } 319 }
319 320
320 void ExpectSendSessionMessageCallback(bool success) { 321 void ExpectSendConnectionMessageCallback(bool success) {
321 EXPECT_TRUE(success); 322 EXPECT_TRUE(success);
322 EXPECT_FALSE(service_impl_->send_message_callback_); 323 EXPECT_FALSE(service_impl_->send_message_callback_);
323 if (!run_loop_quit_closure_.is_null()) 324 if (!run_loop_quit_closure_.is_null())
324 run_loop_quit_closure_.Run(); 325 run_loop_quit_closure_.Run();
325 } 326 }
326 327
327 void RunListenForSessionMessages(const std::string& text_msg, 328 void RunListenForConnectionMessages(const std::string& text_msg,
328 const std::vector<uint8_t>& binary_data, 329 const std::vector<uint8_t>& binary_data,
329 bool pass_ownership) { 330 bool pass_ownership) {
330 std::vector<blink::mojom::SessionMessagePtr> expected_msgs(2); 331 std::vector<blink::mojom::ConnectionMessagePtr> expected_msgs(2);
331 expected_msgs[0] = blink::mojom::SessionMessage::New(); 332 expected_msgs[0] = blink::mojom::ConnectionMessage::New();
332 expected_msgs[0]->type = blink::mojom::PresentationMessageType::TEXT; 333 expected_msgs[0]->type = blink::mojom::PresentationMessageType::TEXT;
333 expected_msgs[0]->message = text_msg; 334 expected_msgs[0]->message = text_msg;
334 expected_msgs[1] = blink::mojom::SessionMessage::New(); 335 expected_msgs[1] = blink::mojom::ConnectionMessage::New();
335 expected_msgs[1]->type = 336 expected_msgs[1]->type = blink::mojom::PresentationMessageType::BINARY;
336 blink::mojom::PresentationMessageType::ARRAY_BUFFER;
337 expected_msgs[1]->data = binary_data; 337 expected_msgs[1]->data = binary_data;
338 338
339 blink::mojom::PresentationSessionInfoPtr session( 339 blink::mojom::PresentationSessionInfoPtr session(
340 blink::mojom::PresentationSessionInfo::New()); 340 blink::mojom::PresentationSessionInfo::New());
341 session->url = presentation_url1_; 341 session->url = presentation_url1_;
342 session->id = kPresentationId; 342 session->id = kPresentationId;
343 343
344 PresentationSessionMessageCallback message_cb; 344 PresentationConnectionMessageCallback message_cb;
345 { 345 {
346 base::RunLoop run_loop; 346 base::RunLoop run_loop;
347 EXPECT_CALL(mock_delegate_, ListenForSessionMessages(_, _, _, _)) 347 EXPECT_CALL(mock_delegate_, ListenForConnectionMessages(_, _, _, _))
348 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), 348 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit),
349 SaveArg<3>(&message_cb))); 349 SaveArg<3>(&message_cb)));
350 service_ptr_->ListenForSessionMessages(std::move(session)); 350 service_ptr_->ListenForConnectionMessages(std::move(session));
351 run_loop.Run(); 351 run_loop.Run();
352 } 352 }
353 353
354 ScopedVector<PresentationSessionMessage> messages; 354 ScopedVector<PresentationConnectionMessage> messages;
355 std::unique_ptr<content::PresentationSessionMessage> message; 355 std::unique_ptr<content::PresentationConnectionMessage> message;
356 message.reset( 356 message.reset(new content::PresentationConnectionMessage(
357 new content::PresentationSessionMessage(PresentationMessageType::TEXT)); 357 PresentationMessageType::TEXT));
358 message->message = text_msg; 358 message->message = text_msg;
359 messages.push_back(std::move(message)); 359 messages.push_back(std::move(message));
360 message.reset(new content::PresentationSessionMessage( 360 message.reset(new content::PresentationConnectionMessage(
361 PresentationMessageType::ARRAY_BUFFER)); 361 PresentationMessageType::BINARY));
362 message->data.reset(new std::vector<uint8_t>(binary_data)); 362 message->data.reset(new std::vector<uint8_t>(binary_data));
363 messages.push_back(std::move(message)); 363 messages.push_back(std::move(message));
364 364
365 std::vector<blink::mojom::SessionMessagePtr> actual_msgs; 365 std::vector<blink::mojom::ConnectionMessagePtr> actual_msgs;
366 { 366 {
367 base::RunLoop run_loop; 367 base::RunLoop run_loop;
368 EXPECT_CALL(mock_client_, MessagesReceived()) 368 EXPECT_CALL(mock_client_, MessagesReceived())
369 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); 369 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
370 message_cb.Run(std::move(messages), pass_ownership); 370 message_cb.Run(std::move(messages), pass_ownership);
371 run_loop.Run(); 371 run_loop.Run();
372 } 372 }
373 ExpectSessionMessages(expected_msgs, mock_client_.messages_received_); 373 ExpectConnectionMessages(expected_msgs, mock_client_.messages_received_);
374 } 374 }
375 375
376 MockPresentationServiceDelegate mock_delegate_; 376 MockPresentationServiceDelegate mock_delegate_;
377 377
378 std::unique_ptr<PresentationServiceImpl> service_impl_; 378 std::unique_ptr<PresentationServiceImpl> service_impl_;
379 mojo::InterfacePtr<blink::mojom::PresentationService> service_ptr_; 379 mojo::InterfacePtr<blink::mojom::PresentationService> service_ptr_;
380 380
381 MockPresentationServiceClient mock_client_; 381 MockPresentationServiceClient mock_client_;
382 std::unique_ptr<mojo::Binding<blink::mojom::PresentationServiceClient>> 382 std::unique_ptr<mojo::Binding<blink::mojom::PresentationServiceClient>>
383 client_binding_; 383 client_binding_;
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 } 642 }
643 643
644 TEST_F(PresentationServiceImplTest, Terminate) { 644 TEST_F(PresentationServiceImplTest, Terminate) {
645 service_ptr_->Terminate(presentation_url1_, kPresentationId); 645 service_ptr_->Terminate(presentation_url1_, kPresentationId);
646 base::RunLoop run_loop; 646 base::RunLoop run_loop;
647 EXPECT_CALL(mock_delegate_, Terminate(_, _, Eq(kPresentationId))) 647 EXPECT_CALL(mock_delegate_, Terminate(_, _, Eq(kPresentationId)))
648 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); 648 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
649 run_loop.Run(); 649 run_loop.Run();
650 } 650 }
651 651
652 TEST_F(PresentationServiceImplTest, ListenForSessionMessagesPassed) { 652 TEST_F(PresentationServiceImplTest, ListenForConnectionMessagesPassed) {
653 std::string text_msg("123"); 653 std::string text_msg("123");
654 std::vector<uint8_t> binary_data(3, '\1'); 654 std::vector<uint8_t> binary_data(3, '\1');
655 RunListenForSessionMessages(text_msg, binary_data, true); 655 RunListenForConnectionMessages(text_msg, binary_data, true);
656 } 656 }
657 657
658 TEST_F(PresentationServiceImplTest, ListenForSessionMessagesCopied) { 658 TEST_F(PresentationServiceImplTest, ListenForConnectionMessagesCopied) {
659 std::string text_msg("123"); 659 std::string text_msg("123");
660 std::vector<uint8_t> binary_data(3, '\1'); 660 std::vector<uint8_t> binary_data(3, '\1');
661 RunListenForSessionMessages(text_msg, binary_data, false); 661 RunListenForConnectionMessages(text_msg, binary_data, false);
662 } 662 }
663 663
664 TEST_F(PresentationServiceImplTest, ListenForSessionMessagesWithEmptyMsg) { 664 TEST_F(PresentationServiceImplTest, ListenForConnectionMessagesWithEmptyMsg) {
665 std::string text_msg(""); 665 std::string text_msg("");
666 std::vector<uint8_t> binary_data; 666 std::vector<uint8_t> binary_data;
667 RunListenForSessionMessages(text_msg, binary_data, false); 667 RunListenForConnectionMessages(text_msg, binary_data, false);
668 } 668 }
669 669
670 TEST_F(PresentationServiceImplTest, StartSessionInProgress) { 670 TEST_F(PresentationServiceImplTest, StartSessionInProgress) {
671 EXPECT_CALL(mock_delegate_, StartSession(_, _, presentation_urls_, _, _)) 671 EXPECT_CALL(mock_delegate_, StartSession(_, _, presentation_urls_, _, _))
672 .Times(1); 672 .Times(1);
673 service_ptr_->StartSession(presentation_urls_, base::Bind(&DoNothing)); 673 service_ptr_->StartSession(presentation_urls_, base::Bind(&DoNothing));
674 674
675 // This request should fail immediately, since there is already a StartSession 675 // This request should fail immediately, since there is already a StartSession
676 // in progress. 676 // in progress.
677 service_ptr_->StartSession( 677 service_ptr_->StartSession(
678 presentation_urls_, 678 presentation_urls_,
679 base::Bind(&PresentationServiceImplTest::ExpectNewSessionCallbackError, 679 base::Bind(&PresentationServiceImplTest::ExpectNewSessionCallbackError,
680 base::Unretained(this))); 680 base::Unretained(this)));
681 SaveQuitClosureAndRunLoop(); 681 SaveQuitClosureAndRunLoop();
682 } 682 }
683 683
684 TEST_F(PresentationServiceImplTest, SendStringMessage) { 684 TEST_F(PresentationServiceImplTest, SendStringMessage) {
685 std::string message("Test presentation session message"); 685 std::string message("Test presentation session message");
686 686
687 blink::mojom::PresentationSessionInfoPtr session( 687 blink::mojom::PresentationSessionInfoPtr session(
688 blink::mojom::PresentationSessionInfo::New()); 688 blink::mojom::PresentationSessionInfo::New());
689 session->url = presentation_url1_; 689 session->url = presentation_url1_;
690 session->id = kPresentationId; 690 session->id = kPresentationId;
691 blink::mojom::SessionMessagePtr message_request( 691 blink::mojom::ConnectionMessagePtr message_request(
692 blink::mojom::SessionMessage::New()); 692 blink::mojom::ConnectionMessage::New());
693 message_request->type = blink::mojom::PresentationMessageType::TEXT; 693 message_request->type = blink::mojom::PresentationMessageType::TEXT;
694 message_request->message = message; 694 message_request->message = message;
695 service_ptr_->SendSessionMessage( 695 service_ptr_->SendConnectionMessage(
696 std::move(session), std::move(message_request), 696 std::move(session), std::move(message_request),
697 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, 697 base::Bind(
698 base::Unretained(this))); 698 &PresentationServiceImplTest::ExpectSendConnectionMessageCallback,
699 base::Unretained(this)));
699 700
700 base::RunLoop run_loop; 701 base::RunLoop run_loop;
701 base::Callback<void(bool)> send_message_cb; 702 base::Callback<void(bool)> send_message_cb;
702 PresentationSessionMessage* test_message = nullptr; 703 PresentationConnectionMessage* test_message = nullptr;
703 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) 704 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _))
704 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), 705 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit),
705 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); 706 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb)));
706 run_loop.Run(); 707 run_loop.Run();
707 708
708 // Make sure |test_message| gets deleted. 709 // Make sure |test_message| gets deleted.
709 std::unique_ptr<PresentationSessionMessage> scoped_test_message(test_message); 710 std::unique_ptr<PresentationConnectionMessage> scoped_test_message(
711 test_message);
710 EXPECT_TRUE(test_message); 712 EXPECT_TRUE(test_message);
711 EXPECT_FALSE(test_message->is_binary()); 713 EXPECT_FALSE(test_message->is_binary());
712 EXPECT_LE(test_message->message.size(), kMaxPresentationSessionMessageSize); 714 EXPECT_LE(test_message->message.size(),
715 kMaxPresentationConnectionMessageSize);
713 EXPECT_EQ(message, test_message->message); 716 EXPECT_EQ(message, test_message->message);
714 ASSERT_FALSE(test_message->data); 717 ASSERT_FALSE(test_message->data);
715 send_message_cb.Run(true); 718 send_message_cb.Run(true);
716 SaveQuitClosureAndRunLoop(); 719 SaveQuitClosureAndRunLoop();
717 } 720 }
718 721
719 TEST_F(PresentationServiceImplTest, SendArrayBuffer) { 722 TEST_F(PresentationServiceImplTest, SendArrayBuffer) {
720 // Test Array buffer data. 723 // Test Array buffer data.
721 const uint8_t buffer[] = {0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48}; 724 const uint8_t buffer[] = {0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48};
722 std::vector<uint8_t> data; 725 std::vector<uint8_t> data;
723 data.assign(buffer, buffer + sizeof(buffer)); 726 data.assign(buffer, buffer + sizeof(buffer));
724 727
725 blink::mojom::PresentationSessionInfoPtr session( 728 blink::mojom::PresentationSessionInfoPtr session(
726 blink::mojom::PresentationSessionInfo::New()); 729 blink::mojom::PresentationSessionInfo::New());
727 session->url = presentation_url1_; 730 session->url = presentation_url1_;
728 session->id = kPresentationId; 731 session->id = kPresentationId;
729 blink::mojom::SessionMessagePtr message_request( 732 blink::mojom::ConnectionMessagePtr message_request(
730 blink::mojom::SessionMessage::New()); 733 blink::mojom::ConnectionMessage::New());
731 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; 734 message_request->type = blink::mojom::PresentationMessageType::BINARY;
732 message_request->data = data; 735 message_request->data = data;
733 service_ptr_->SendSessionMessage( 736 service_ptr_->SendConnectionMessage(
734 std::move(session), std::move(message_request), 737 std::move(session), std::move(message_request),
735 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, 738 base::Bind(
736 base::Unretained(this))); 739 &PresentationServiceImplTest::ExpectSendConnectionMessageCallback,
740 base::Unretained(this)));
737 741
738 base::RunLoop run_loop; 742 base::RunLoop run_loop;
739 base::Callback<void(bool)> send_message_cb; 743 base::Callback<void(bool)> send_message_cb;
740 PresentationSessionMessage* test_message = nullptr; 744 PresentationConnectionMessage* test_message = nullptr;
741 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) 745 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _))
742 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), 746 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit),
743 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); 747 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb)));
744 run_loop.Run(); 748 run_loop.Run();
745 749
746 // Make sure |test_message| gets deleted. 750 // Make sure |test_message| gets deleted.
747 std::unique_ptr<PresentationSessionMessage> scoped_test_message(test_message); 751 std::unique_ptr<PresentationConnectionMessage> scoped_test_message(
752 test_message);
748 EXPECT_TRUE(test_message); 753 EXPECT_TRUE(test_message);
749 EXPECT_TRUE(test_message->is_binary()); 754 EXPECT_TRUE(test_message->is_binary());
750 EXPECT_EQ(PresentationMessageType::ARRAY_BUFFER, test_message->type); 755 EXPECT_EQ(PresentationMessageType::BINARY, test_message->type);
751 EXPECT_TRUE(test_message->message.empty()); 756 EXPECT_TRUE(test_message->message.empty());
752 ASSERT_TRUE(test_message->data); 757 ASSERT_TRUE(test_message->data);
753 EXPECT_EQ(data.size(), test_message->data->size()); 758 EXPECT_EQ(data.size(), test_message->data->size());
754 EXPECT_LE(test_message->data->size(), kMaxPresentationSessionMessageSize); 759 EXPECT_LE(test_message->data->size(), kMaxPresentationConnectionMessageSize);
755 EXPECT_EQ(0, memcmp(buffer, &(*test_message->data)[0], sizeof(buffer))); 760 EXPECT_EQ(0, memcmp(buffer, &(*test_message->data)[0], sizeof(buffer)));
756 send_message_cb.Run(true); 761 send_message_cb.Run(true);
757 SaveQuitClosureAndRunLoop(); 762 SaveQuitClosureAndRunLoop();
758 } 763 }
759 764
760 TEST_F(PresentationServiceImplTest, SendArrayBufferWithExceedingLimit) { 765 TEST_F(PresentationServiceImplTest, SendArrayBufferWithExceedingLimit) {
761 // Create buffer with size exceeding the limit. 766 // Create buffer with size exceeding the limit.
762 // Use same size as in content::kMaxPresentationSessionMessageSize. 767 // Use same size as in content::kMaxPresentationConnectionMessageSize.
763 const size_t kMaxBufferSizeInBytes = 64 * 1024; // 64 KB. 768 const size_t kMaxBufferSizeInBytes = 64 * 1024; // 64 KB.
764 uint8_t buffer[kMaxBufferSizeInBytes + 1]; 769 uint8_t buffer[kMaxBufferSizeInBytes + 1];
765 memset(buffer, 0, kMaxBufferSizeInBytes+1); 770 memset(buffer, 0, kMaxBufferSizeInBytes+1);
766 std::vector<uint8_t> data; 771 std::vector<uint8_t> data;
767 data.assign(buffer, buffer + sizeof(buffer)); 772 data.assign(buffer, buffer + sizeof(buffer));
768 773
769 blink::mojom::PresentationSessionInfoPtr session( 774 blink::mojom::PresentationSessionInfoPtr session(
770 blink::mojom::PresentationSessionInfo::New()); 775 blink::mojom::PresentationSessionInfo::New());
771 session->url = presentation_url1_; 776 session->url = presentation_url1_;
772 session->id = kPresentationId; 777 session->id = kPresentationId;
773 blink::mojom::SessionMessagePtr message_request( 778 blink::mojom::ConnectionMessagePtr message_request(
774 blink::mojom::SessionMessage::New()); 779 blink::mojom::ConnectionMessage::New());
775 message_request->type = blink::mojom::PresentationMessageType::ARRAY_BUFFER; 780 message_request->type = blink::mojom::PresentationMessageType::BINARY;
776 message_request->data = data; 781 message_request->data = data;
777 service_ptr_->SendSessionMessage( 782 service_ptr_->SendConnectionMessage(
778 std::move(session), std::move(message_request), 783 std::move(session), std::move(message_request),
779 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, 784 base::Bind(
780 base::Unretained(this))); 785 &PresentationServiceImplTest::ExpectSendConnectionMessageCallback,
786 base::Unretained(this)));
781 787
782 base::RunLoop run_loop; 788 base::RunLoop run_loop;
783 base::Callback<void(bool)> send_message_cb; 789 base::Callback<void(bool)> send_message_cb;
784 PresentationSessionMessage* test_message = nullptr; 790 PresentationConnectionMessage* test_message = nullptr;
785 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) 791 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _))
786 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), 792 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit),
787 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); 793 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb)));
788 run_loop.Run(); 794 run_loop.Run();
789 795
790 EXPECT_FALSE(test_message); 796 EXPECT_FALSE(test_message);
791 send_message_cb.Run(true); 797 send_message_cb.Run(true);
792 SaveQuitClosureAndRunLoop(); 798 SaveQuitClosureAndRunLoop();
793 } 799 }
794 800
795 TEST_F(PresentationServiceImplTest, SendBlobData) { 801 TEST_F(PresentationServiceImplTest, SendBlobData) {
796 const uint8_t buffer[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07}; 802 const uint8_t buffer[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
797 std::vector<uint8_t> data; 803 std::vector<uint8_t> data;
798 data.assign(buffer, buffer + sizeof(buffer)); 804 data.assign(buffer, buffer + sizeof(buffer));
799 805
800 blink::mojom::PresentationSessionInfoPtr session( 806 blink::mojom::PresentationSessionInfoPtr session(
801 blink::mojom::PresentationSessionInfo::New()); 807 blink::mojom::PresentationSessionInfo::New());
802 session->url = presentation_url1_; 808 session->url = presentation_url1_;
803 session->id = kPresentationId; 809 session->id = kPresentationId;
804 blink::mojom::SessionMessagePtr message_request( 810 blink::mojom::ConnectionMessagePtr message_request(
805 blink::mojom::SessionMessage::New()); 811 blink::mojom::ConnectionMessage::New());
806 message_request->type = blink::mojom::PresentationMessageType::BLOB; 812 message_request->type = blink::mojom::PresentationMessageType::BINARY;
807 message_request->data = data; 813 message_request->data = data;
808 service_ptr_->SendSessionMessage( 814 service_ptr_->SendConnectionMessage(
809 std::move(session), std::move(message_request), 815 std::move(session), std::move(message_request),
810 base::Bind(&PresentationServiceImplTest::ExpectSendSessionMessageCallback, 816 base::Bind(
811 base::Unretained(this))); 817 &PresentationServiceImplTest::ExpectSendConnectionMessageCallback,
818 base::Unretained(this)));
812 819
813 base::RunLoop run_loop; 820 base::RunLoop run_loop;
814 base::Callback<void(bool)> send_message_cb; 821 base::Callback<void(bool)> send_message_cb;
815 PresentationSessionMessage* test_message = nullptr; 822 PresentationConnectionMessage* test_message = nullptr;
816 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _)) 823 EXPECT_CALL(mock_delegate_, SendMessageRawPtr(_, _, _, _, _))
817 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit), 824 .WillOnce(DoAll(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit),
818 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb))); 825 SaveArg<3>(&test_message), SaveArg<4>(&send_message_cb)));
819 run_loop.Run(); 826 run_loop.Run();
820 827
821 // Make sure |test_message| gets deleted. 828 // Make sure |test_message| gets deleted.
822 std::unique_ptr<PresentationSessionMessage> scoped_test_message(test_message); 829 std::unique_ptr<PresentationConnectionMessage> scoped_test_message(
830 test_message);
823 EXPECT_TRUE(test_message); 831 EXPECT_TRUE(test_message);
824 EXPECT_TRUE(test_message->is_binary()); 832 EXPECT_TRUE(test_message->is_binary());
825 EXPECT_EQ(PresentationMessageType::BLOB, test_message->type); 833 EXPECT_EQ(PresentationMessageType::BINARY, test_message->type);
826 EXPECT_TRUE(test_message->message.empty()); 834 EXPECT_TRUE(test_message->message.empty());
827 ASSERT_TRUE(test_message->data); 835 ASSERT_TRUE(test_message->data);
828 EXPECT_EQ(data.size(), test_message->data->size()); 836 EXPECT_EQ(data.size(), test_message->data->size());
829 EXPECT_LE(test_message->data->size(), kMaxPresentationSessionMessageSize); 837 EXPECT_LE(test_message->data->size(), kMaxPresentationConnectionMessageSize);
830 EXPECT_EQ(0, memcmp(buffer, &(*test_message->data)[0], sizeof(buffer))); 838 EXPECT_EQ(0, memcmp(buffer, &(*test_message->data)[0], sizeof(buffer)));
831 send_message_cb.Run(true); 839 send_message_cb.Run(true);
832 SaveQuitClosureAndRunLoop(); 840 SaveQuitClosureAndRunLoop();
833 } 841 }
834 842
835 TEST_F(PresentationServiceImplTest, MaxPendingJoinSessionRequests) { 843 TEST_F(PresentationServiceImplTest, MaxPendingJoinSessionRequests) {
836 const char* presentation_url = "http://fooUrl%d"; 844 const char* presentation_url = "http://fooUrl%d";
837 const char* presentation_id = "presentationId%d"; 845 const char* presentation_id = "presentationId%d";
838 int num_requests = PresentationServiceImpl::kMaxNumQueuedSessionRequests; 846 int num_requests = PresentationServiceImpl::kMaxNumQueuedSessionRequests;
839 int i = 0; 847 int i = 0;
(...skipping 18 matching lines...) Expand all
858 mock_delegate_.set_screen_availability_listening_supported(false); 866 mock_delegate_.set_screen_availability_listening_supported(false);
859 base::RunLoop run_loop; 867 base::RunLoop run_loop;
860 EXPECT_CALL(mock_client_, 868 EXPECT_CALL(mock_client_,
861 OnScreenAvailabilityNotSupported(presentation_url1_)) 869 OnScreenAvailabilityNotSupported(presentation_url1_))
862 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit)); 870 .WillOnce(InvokeWithoutArgs(&run_loop, &base::RunLoop::Quit));
863 ListenForScreenAvailabilityAndWait(presentation_url1_, false); 871 ListenForScreenAvailabilityAndWait(presentation_url1_, false);
864 run_loop.Run(); 872 run_loop.Run();
865 } 873 }
866 874
867 } // namespace content 875 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/presentation/presentation_service_impl.cc ('k') | content/public/browser/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698