OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 "ppapi/tests/test_websocket.h" | 5 #include "ppapi/tests/test_websocket.h" |
6 | 6 |
7 #include <stdio.h> | 7 #include <stdio.h> |
8 #include <string.h> | 8 #include <string.h> |
9 #include <algorithm> | 9 #include <algorithm> |
10 #include <string> | 10 #include <string> |
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
275 return 0; | 275 return 0; |
276 PP_Var url_var = CreateVarString(url); | 276 PP_Var url_var = CreateVarString(url); |
277 TestCompletionCallback callback(instance_->pp_instance(), force_async_); | 277 TestCompletionCallback callback(instance_->pp_instance(), force_async_); |
278 uint32_t protocol_count = 0U; | 278 uint32_t protocol_count = 0U; |
279 if (protocol.size()) { | 279 if (protocol.size()) { |
280 protocols[0] = CreateVarString(protocol); | 280 protocols[0] = CreateVarString(protocol); |
281 protocol_count = 1U; | 281 protocol_count = 1U; |
282 } | 282 } |
283 *result = websocket_interface_->Connect( | 283 *result = websocket_interface_->Connect( |
284 ws, url_var, protocols, protocol_count, | 284 ws, url_var, protocols, protocol_count, |
285 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 285 callback.GetCallback().pp_completion_callback()); |
286 ReleaseVar(url_var); | 286 ReleaseVar(url_var); |
287 if (protocol.size()) | 287 if (protocol.size()) |
288 ReleaseVar(protocols[0]); | 288 ReleaseVar(protocols[0]); |
289 if (*result == PP_OK_COMPLETIONPENDING) | 289 if (*result == PP_OK_COMPLETIONPENDING) |
290 *result = callback.WaitForResult(); | 290 *result = callback.WaitForResult(); |
291 return ws; | 291 return ws; |
292 } | 292 } |
293 | 293 |
294 std::string TestWebSocket::TestIsWebSocket() { | 294 std::string TestWebSocket::TestIsWebSocket() { |
295 // Test that a NULL resource isn't a websocket. | 295 // Test that a NULL resource isn't a websocket. |
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
349 | 349 |
350 std::string TestWebSocket::TestInvalidConnect() { | 350 std::string TestWebSocket::TestInvalidConnect() { |
351 PP_Var protocols[] = { PP_MakeUndefined() }; | 351 PP_Var protocols[] = { PP_MakeUndefined() }; |
352 | 352 |
353 PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); | 353 PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); |
354 ASSERT_TRUE(ws); | 354 ASSERT_TRUE(ws); |
355 | 355 |
356 TestCompletionCallback callback(instance_->pp_instance(), force_async_); | 356 TestCompletionCallback callback(instance_->pp_instance(), force_async_); |
357 int32_t result = websocket_interface_->Connect( | 357 int32_t result = websocket_interface_->Connect( |
358 ws, PP_MakeUndefined(), protocols, 1U, | 358 ws, PP_MakeUndefined(), protocols, 1U, |
359 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 359 callback.GetCallback().pp_completion_callback()); |
360 ASSERT_EQ(PP_ERROR_BADARGUMENT, result); | 360 ASSERT_EQ(PP_ERROR_BADARGUMENT, result); |
361 | 361 |
362 result = websocket_interface_->Connect( | 362 result = websocket_interface_->Connect( |
363 ws, PP_MakeUndefined(), protocols, 1U, | 363 ws, PP_MakeUndefined(), protocols, 1U, |
364 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 364 callback.GetCallback().pp_completion_callback()); |
365 ASSERT_EQ(PP_ERROR_INPROGRESS, result); | 365 ASSERT_EQ(PP_ERROR_INPROGRESS, result); |
366 | 366 |
367 core_interface_->ReleaseResource(ws); | 367 core_interface_->ReleaseResource(ws); |
368 | 368 |
369 for (int i = 0; kInvalidURLs[i]; ++i) { | 369 for (int i = 0; kInvalidURLs[i]; ++i) { |
370 ws = Connect(kInvalidURLs[i], &result, ""); | 370 ws = Connect(kInvalidURLs[i], &result, ""); |
371 ASSERT_TRUE(ws); | 371 ASSERT_TRUE(ws); |
372 ASSERT_EQ(PP_ERROR_BADARGUMENT, result); | 372 ASSERT_EQ(PP_ERROR_BADARGUMENT, result); |
373 | 373 |
374 core_interface_->ReleaseResource(ws); | 374 core_interface_->ReleaseResource(ws); |
(...skipping 11 matching lines...) Expand all Loading... |
386 PP_Var good_protocols[] = { | 386 PP_Var good_protocols[] = { |
387 CreateVarString("x-test"), | 387 CreateVarString("x-test"), |
388 CreateVarString("x-yatest") | 388 CreateVarString("x-yatest") |
389 }; | 389 }; |
390 | 390 |
391 PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); | 391 PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); |
392 ASSERT_TRUE(ws); | 392 ASSERT_TRUE(ws); |
393 TestCompletionCallback callback(instance_->pp_instance(), force_async_); | 393 TestCompletionCallback callback(instance_->pp_instance(), force_async_); |
394 int32_t result = websocket_interface_->Connect( | 394 int32_t result = websocket_interface_->Connect( |
395 ws, url, bad_protocols, 2U, | 395 ws, url, bad_protocols, 2U, |
396 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 396 callback.GetCallback().pp_completion_callback()); |
397 if (result == PP_OK_COMPLETIONPENDING) | 397 if (result == PP_OK_COMPLETIONPENDING) |
398 result = callback.WaitForResult(); | 398 result = callback.WaitForResult(); |
399 ASSERT_EQ(PP_ERROR_BADARGUMENT, result); | 399 ASSERT_EQ(PP_ERROR_BADARGUMENT, result); |
400 core_interface_->ReleaseResource(ws); | 400 core_interface_->ReleaseResource(ws); |
401 | 401 |
402 ws = websocket_interface_->Create(instance_->pp_instance()); | 402 ws = websocket_interface_->Create(instance_->pp_instance()); |
403 ASSERT_TRUE(ws); | 403 ASSERT_TRUE(ws); |
404 result = websocket_interface_->Connect( | 404 result = websocket_interface_->Connect( |
405 ws, url, good_protocols, 2U, PP_BlockUntilComplete()); | 405 ws, url, good_protocols, 2U, PP_BlockUntilComplete()); |
406 ASSERT_EQ(PP_ERROR_BLOCKS_MAIN_THREAD, result); | 406 ASSERT_EQ(PP_ERROR_BLOCKS_MAIN_THREAD, result); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 } | 445 } |
446 | 446 |
447 std::string TestWebSocket::TestInvalidClose() { | 447 std::string TestWebSocket::TestInvalidClose() { |
448 PP_Var reason = CreateVarString("close for test"); | 448 PP_Var reason = CreateVarString("close for test"); |
449 TestCompletionCallback callback(instance_->pp_instance()); | 449 TestCompletionCallback callback(instance_->pp_instance()); |
450 | 450 |
451 // Close before connect. | 451 // Close before connect. |
452 PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); | 452 PP_Resource ws = websocket_interface_->Create(instance_->pp_instance()); |
453 int32_t result = websocket_interface_->Close( | 453 int32_t result = websocket_interface_->Close( |
454 ws, PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 454 ws, PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
455 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 455 callback.GetCallback().pp_completion_callback()); |
456 ASSERT_EQ(PP_ERROR_FAILED, result); | 456 ASSERT_EQ(PP_ERROR_FAILED, result); |
457 core_interface_->ReleaseResource(ws); | 457 core_interface_->ReleaseResource(ws); |
458 | 458 |
459 // Close with bad arguments. | 459 // Close with bad arguments. |
460 ws = Connect(GetFullURL(kEchoServerURL), &result, ""); | 460 ws = Connect(GetFullURL(kEchoServerURL), &result, ""); |
461 ASSERT_TRUE(ws); | 461 ASSERT_TRUE(ws); |
462 ASSERT_EQ(PP_OK, result); | 462 ASSERT_EQ(PP_OK, result); |
463 result = websocket_interface_->Close(ws, 1U, reason, | 463 result = websocket_interface_->Close(ws, 1U, reason, |
464 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 464 callback.GetCallback().pp_completion_callback()); |
465 ASSERT_EQ(PP_ERROR_NOACCESS, result); | 465 ASSERT_EQ(PP_ERROR_NOACCESS, result); |
466 core_interface_->ReleaseResource(ws); | 466 core_interface_->ReleaseResource(ws); |
467 | 467 |
468 ReleaseVar(reason); | 468 ReleaseVar(reason); |
469 | 469 |
470 PASS(); | 470 PASS(); |
471 } | 471 } |
472 | 472 |
473 std::string TestWebSocket::TestValidClose() { | 473 std::string TestWebSocket::TestValidClose() { |
474 PP_Var reason = CreateVarString("close for test"); | 474 PP_Var reason = CreateVarString("close for test"); |
475 PP_Var url = CreateVarString(GetFullURL(kEchoServerURL).c_str()); | 475 PP_Var url = CreateVarString(GetFullURL(kEchoServerURL).c_str()); |
476 PP_Var protocols[] = { PP_MakeUndefined() }; | 476 PP_Var protocols[] = { PP_MakeUndefined() }; |
477 TestCompletionCallback callback(instance_->pp_instance()); | 477 TestCompletionCallback callback(instance_->pp_instance()); |
478 TestCompletionCallback another_callback(instance_->pp_instance()); | 478 TestCompletionCallback another_callback(instance_->pp_instance()); |
479 | 479 |
480 // Close. | 480 // Close. |
481 int32_t result; | 481 int32_t result; |
482 PP_Resource ws = Connect(GetFullURL(kEchoServerURL), &result, ""); | 482 PP_Resource ws = Connect(GetFullURL(kEchoServerURL), &result, ""); |
483 ASSERT_TRUE(ws); | 483 ASSERT_TRUE(ws); |
484 ASSERT_EQ(PP_OK, result); | 484 ASSERT_EQ(PP_OK, result); |
485 result = websocket_interface_->Close(ws, | 485 result = websocket_interface_->Close(ws, |
486 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 486 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
487 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 487 callback.GetCallback().pp_completion_callback()); |
488 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 488 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
489 result = callback.WaitForResult(); | 489 result = callback.WaitForResult(); |
490 ASSERT_EQ(PP_OK, result); | 490 ASSERT_EQ(PP_OK, result); |
491 core_interface_->ReleaseResource(ws); | 491 core_interface_->ReleaseResource(ws); |
492 | 492 |
493 // Close in connecting. | 493 // Close in connecting. |
494 // The ongoing connect failed with PP_ERROR_ABORTED, then the close is done | 494 // The ongoing connect failed with PP_ERROR_ABORTED, then the close is done |
495 // successfully. | 495 // successfully. |
496 ws = websocket_interface_->Create(instance_->pp_instance()); | 496 ws = websocket_interface_->Create(instance_->pp_instance()); |
497 result = websocket_interface_->Connect(ws, url, protocols, 0U, | 497 result = websocket_interface_->Connect(ws, url, protocols, 0U, |
498 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 498 callback.GetCallback().pp_completion_callback()); |
499 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 499 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
500 result = websocket_interface_->Close(ws, | 500 result = websocket_interface_->Close(ws, |
501 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 501 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
502 static_cast<pp::CompletionCallback>( | 502 another_callback.GetCallback().pp_completion_callback()); |
503 another_callback).pp_completion_callback()); | |
504 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 503 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
505 result = callback.WaitForResult(); | 504 result = callback.WaitForResult(); |
506 ASSERT_EQ(PP_ERROR_ABORTED, result); | 505 ASSERT_EQ(PP_ERROR_ABORTED, result); |
507 result = another_callback.WaitForResult(); | 506 result = another_callback.WaitForResult(); |
508 ASSERT_EQ(PP_OK, result); | 507 ASSERT_EQ(PP_OK, result); |
509 core_interface_->ReleaseResource(ws); | 508 core_interface_->ReleaseResource(ws); |
510 | 509 |
511 // Close in closing. | 510 // Close in closing. |
512 // The first close will be done successfully, then the second one failed with | 511 // The first close will be done successfully, then the second one failed with |
513 // with PP_ERROR_INPROGRESS immediately. | 512 // with PP_ERROR_INPROGRESS immediately. |
514 ws = Connect(GetFullURL(kEchoServerURL), &result, ""); | 513 ws = Connect(GetFullURL(kEchoServerURL), &result, ""); |
515 ASSERT_TRUE(ws); | 514 ASSERT_TRUE(ws); |
516 ASSERT_EQ(PP_OK, result); | 515 ASSERT_EQ(PP_OK, result); |
517 result = websocket_interface_->Close(ws, | 516 result = websocket_interface_->Close(ws, |
518 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 517 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
519 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 518 callback.GetCallback().pp_completion_callback()); |
520 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 519 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
521 result = websocket_interface_->Close(ws, | 520 result = websocket_interface_->Close(ws, |
522 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 521 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
523 static_cast<pp::CompletionCallback>( | 522 another_callback.GetCallback().pp_completion_callback()); |
524 another_callback).pp_completion_callback()); | |
525 ASSERT_EQ(PP_ERROR_INPROGRESS, result); | 523 ASSERT_EQ(PP_ERROR_INPROGRESS, result); |
526 result = callback.WaitForResult(); | 524 result = callback.WaitForResult(); |
527 ASSERT_EQ(PP_OK, result); | 525 ASSERT_EQ(PP_OK, result); |
528 core_interface_->ReleaseResource(ws); | 526 core_interface_->ReleaseResource(ws); |
529 | 527 |
530 // Close with ongoing receive message. | 528 // Close with ongoing receive message. |
531 ws = Connect(GetFullURL(kEchoServerURL), &result, ""); | 529 ws = Connect(GetFullURL(kEchoServerURL), &result, ""); |
532 ASSERT_TRUE(ws); | 530 ASSERT_TRUE(ws); |
533 ASSERT_EQ(PP_OK, result); | 531 ASSERT_EQ(PP_OK, result); |
534 PP_Var receive_message_var; | 532 PP_Var receive_message_var; |
535 result = websocket_interface_->ReceiveMessage(ws, &receive_message_var, | 533 result = websocket_interface_->ReceiveMessage(ws, &receive_message_var, |
536 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 534 callback.GetCallback().pp_completion_callback()); |
537 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 535 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
538 result = websocket_interface_->Close(ws, | 536 result = websocket_interface_->Close(ws, |
539 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 537 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
540 static_cast<pp::CompletionCallback>( | 538 another_callback.GetCallback().pp_completion_callback()); |
541 another_callback).pp_completion_callback()); | |
542 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 539 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
543 result = callback.WaitForResult(); | 540 result = callback.WaitForResult(); |
544 ASSERT_EQ(PP_ERROR_ABORTED, result); | 541 ASSERT_EQ(PP_ERROR_ABORTED, result); |
545 result = another_callback.WaitForResult(); | 542 result = another_callback.WaitForResult(); |
546 ASSERT_EQ(PP_OK, result); | 543 ASSERT_EQ(PP_OK, result); |
547 core_interface_->ReleaseResource(ws); | 544 core_interface_->ReleaseResource(ws); |
548 | 545 |
549 ReleaseVar(reason); | 546 ReleaseVar(reason); |
550 ReleaseVar(url); | 547 ReleaseVar(url); |
551 | 548 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
587 const char* message = "hello pepper"; | 584 const char* message = "hello pepper"; |
588 PP_Var message_var = CreateVarString(message); | 585 PP_Var message_var = CreateVarString(message); |
589 int32_t result = websocket_interface_->SendMessage(ws, message_var); | 586 int32_t result = websocket_interface_->SendMessage(ws, message_var); |
590 ReleaseVar(message_var); | 587 ReleaseVar(message_var); |
591 ASSERT_EQ(PP_OK, result); | 588 ASSERT_EQ(PP_OK, result); |
592 | 589 |
593 // Receive echoed 'hello pepper'. | 590 // Receive echoed 'hello pepper'. |
594 TestCompletionCallback callback(instance_->pp_instance(), force_async_); | 591 TestCompletionCallback callback(instance_->pp_instance(), force_async_); |
595 PP_Var received_message; | 592 PP_Var received_message; |
596 result = websocket_interface_->ReceiveMessage(ws, &received_message, | 593 result = websocket_interface_->ReceiveMessage(ws, &received_message, |
597 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 594 callback.GetCallback().pp_completion_callback()); |
598 ASSERT_FALSE(result != PP_OK && result != PP_OK_COMPLETIONPENDING); | 595 ASSERT_FALSE(result != PP_OK && result != PP_OK_COMPLETIONPENDING); |
599 if (result == PP_OK_COMPLETIONPENDING) | 596 if (result == PP_OK_COMPLETIONPENDING) |
600 result = callback.WaitForResult(); | 597 result = callback.WaitForResult(); |
601 ASSERT_EQ(PP_OK, result); | 598 ASSERT_EQ(PP_OK, result); |
602 ASSERT_TRUE(AreEqualWithString(received_message, message)); | 599 ASSERT_TRUE(AreEqualWithString(received_message, message)); |
603 ReleaseVar(received_message); | 600 ReleaseVar(received_message); |
604 core_interface_->ReleaseResource(ws); | 601 core_interface_->ReleaseResource(ws); |
605 | 602 |
606 PASS(); | 603 PASS(); |
607 } | 604 } |
(...skipping 11 matching lines...) Expand all Loading... |
619 binary[i] = i; | 616 binary[i] = i; |
620 PP_Var message_var = CreateVarBinary(binary); | 617 PP_Var message_var = CreateVarBinary(binary); |
621 int32_t result = websocket_interface_->SendMessage(ws, message_var); | 618 int32_t result = websocket_interface_->SendMessage(ws, message_var); |
622 ReleaseVar(message_var); | 619 ReleaseVar(message_var); |
623 ASSERT_EQ(PP_OK, result); | 620 ASSERT_EQ(PP_OK, result); |
624 | 621 |
625 // Receive echoed binary. | 622 // Receive echoed binary. |
626 TestCompletionCallback callback(instance_->pp_instance(), force_async_); | 623 TestCompletionCallback callback(instance_->pp_instance(), force_async_); |
627 PP_Var received_message; | 624 PP_Var received_message; |
628 result = websocket_interface_->ReceiveMessage(ws, &received_message, | 625 result = websocket_interface_->ReceiveMessage(ws, &received_message, |
629 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 626 callback.GetCallback().pp_completion_callback()); |
630 ASSERT_TRUE(result == PP_OK || result == PP_OK_COMPLETIONPENDING); | 627 ASSERT_TRUE(result == PP_OK || result == PP_OK_COMPLETIONPENDING); |
631 if (result == PP_OK_COMPLETIONPENDING) | 628 if (result == PP_OK_COMPLETIONPENDING) |
632 result = callback.WaitForResult(); | 629 result = callback.WaitForResult(); |
633 ASSERT_EQ(PP_OK, result); | 630 ASSERT_EQ(PP_OK, result); |
634 ASSERT_TRUE(AreEqualWithBinary(received_message, binary)); | 631 ASSERT_TRUE(AreEqualWithBinary(received_message, binary)); |
635 ReleaseVar(received_message); | 632 ReleaseVar(received_message); |
636 core_interface_->ReleaseResource(ws); | 633 core_interface_->ReleaseResource(ws); |
637 | 634 |
638 PASS(); | 635 PASS(); |
639 } | 636 } |
(...skipping 21 matching lines...) Expand all Loading... |
661 ASSERT_EQ(PP_OK, result); | 658 ASSERT_EQ(PP_OK, result); |
662 } | 659 } |
663 ReleaseVar(text_var); | 660 ReleaseVar(text_var); |
664 ReleaseVar(binary_var); | 661 ReleaseVar(binary_var); |
665 | 662 |
666 // Receive echoed data. | 663 // Receive echoed data. |
667 for (int i = 0; i < 512; ++i) { | 664 for (int i = 0; i < 512; ++i) { |
668 TestCompletionCallback callback(instance_->pp_instance(), force_async_); | 665 TestCompletionCallback callback(instance_->pp_instance(), force_async_); |
669 PP_Var received_message; | 666 PP_Var received_message; |
670 int32_t result = websocket_interface_->ReceiveMessage( | 667 int32_t result = websocket_interface_->ReceiveMessage( |
671 ws, &received_message, static_cast<pp::CompletionCallback>( | 668 ws, &received_message, callback.GetCallback().pp_completion_callback()); |
672 callback).pp_completion_callback()); | |
673 ASSERT_TRUE(result == PP_OK || result == PP_OK_COMPLETIONPENDING); | 669 ASSERT_TRUE(result == PP_OK || result == PP_OK_COMPLETIONPENDING); |
674 if (result == PP_OK_COMPLETIONPENDING) | 670 if (result == PP_OK_COMPLETIONPENDING) |
675 result = callback.WaitForResult(); | 671 result = callback.WaitForResult(); |
676 ASSERT_EQ(PP_OK, result); | 672 ASSERT_EQ(PP_OK, result); |
677 if (i & 1) { | 673 if (i & 1) { |
678 ASSERT_TRUE(AreEqualWithBinary(received_message, binary)); | 674 ASSERT_TRUE(AreEqualWithBinary(received_message, binary)); |
679 } else { | 675 } else { |
680 ASSERT_TRUE(AreEqualWithString(received_message, text)); | 676 ASSERT_TRUE(AreEqualWithString(received_message, text)); |
681 } | 677 } |
682 ReleaseVar(received_message); | 678 ReleaseVar(received_message); |
(...skipping 25 matching lines...) Expand all Loading... |
708 if (buffered_amount > 262144) | 704 if (buffered_amount > 262144) |
709 break; | 705 break; |
710 } | 706 } |
711 | 707 |
712 // Close connection. | 708 // Close connection. |
713 std::string reason_str = "close while busy"; | 709 std::string reason_str = "close while busy"; |
714 PP_Var reason = CreateVarString(reason_str.c_str()); | 710 PP_Var reason = CreateVarString(reason_str.c_str()); |
715 TestCompletionCallback callback(instance_->pp_instance()); | 711 TestCompletionCallback callback(instance_->pp_instance()); |
716 result = websocket_interface_->Close(ws, | 712 result = websocket_interface_->Close(ws, |
717 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, | 713 PP_WEBSOCKETSTATUSCODE_NORMAL_CLOSURE, reason, |
718 static_cast<pp::CompletionCallback>(callback).pp_completion_callback()); | 714 callback.GetCallback().pp_completion_callback()); |
719 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); | 715 ASSERT_EQ(PP_OK_COMPLETIONPENDING, result); |
720 ASSERT_EQ(PP_WEBSOCKETREADYSTATE_CLOSING, | 716 ASSERT_EQ(PP_WEBSOCKETREADYSTATE_CLOSING, |
721 websocket_interface_->GetReadyState(ws)); | 717 websocket_interface_->GetReadyState(ws)); |
722 | 718 |
723 result = callback.WaitForResult(); | 719 result = callback.WaitForResult(); |
724 ASSERT_EQ(PP_OK, result); | 720 ASSERT_EQ(PP_OK, result); |
725 ASSERT_EQ(PP_WEBSOCKETREADYSTATE_CLOSED, | 721 ASSERT_EQ(PP_WEBSOCKETREADYSTATE_CLOSED, |
726 websocket_interface_->GetReadyState(ws)); | 722 websocket_interface_->GetReadyState(ws)); |
727 | 723 |
728 uint64_t base_buffered_amount = websocket_interface_->GetBufferedAmount(ws); | 724 uint64_t base_buffered_amount = websocket_interface_->GetBufferedAmount(ws); |
(...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1149 size_t last_event = events_on_closed - 1; | 1145 size_t last_event = events_on_closed - 1; |
1150 for (uint32_t i = 1; i < last_event; ++i) { | 1146 for (uint32_t i = 1; i < last_event; ++i) { |
1151 ASSERT_EQ(WebSocketEvent::EVENT_MESSAGE, events[i].event_type); | 1147 ASSERT_EQ(WebSocketEvent::EVENT_MESSAGE, events[i].event_type); |
1152 ASSERT_TRUE(AreEqualWithString(events[i].var.pp_var(), message)); | 1148 ASSERT_TRUE(AreEqualWithString(events[i].var.pp_var(), message)); |
1153 } | 1149 } |
1154 ASSERT_EQ(WebSocketEvent::EVENT_CLOSE, events[last_event].event_type); | 1150 ASSERT_EQ(WebSocketEvent::EVENT_CLOSE, events[last_event].event_type); |
1155 ASSERT_TRUE(events[last_event].was_clean); | 1151 ASSERT_TRUE(events[last_event].was_clean); |
1156 | 1152 |
1157 PASS(); | 1153 PASS(); |
1158 } | 1154 } |
OLD | NEW |