MessageTest.php 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace Ratchet\RFC6455\Test\Unit\Messaging;
  3. use Ratchet\RFC6455\Messaging\Frame;
  4. use Ratchet\RFC6455\Messaging\Message;
  5. use PHPUnit\Framework\TestCase;
  6. /**
  7. * @covers Ratchet\RFC6455\Messaging\Message
  8. */
  9. class MessageTest extends TestCase {
  10. /** @var Message */
  11. protected $message;
  12. public function setUp() {
  13. $this->message = new Message;
  14. }
  15. public function testNoFrames() {
  16. $this->assertFalse($this->message->isCoalesced());
  17. }
  18. public function testNoFramesOpCode() {
  19. $this->setExpectedException('UnderflowException');
  20. $this->message->getOpCode();
  21. }
  22. public function testFragmentationPayload() {
  23. $a = 'Hello ';
  24. $b = 'World!';
  25. $f1 = new Frame($a, false);
  26. $f2 = new Frame($b, true, Frame::OP_CONTINUE);
  27. $this->message->addFrame($f1)->addFrame($f2);
  28. $this->assertEquals(strlen($a . $b), $this->message->getPayloadLength());
  29. $this->assertEquals($a . $b, $this->message->getPayload());
  30. }
  31. public function testUnbufferedFragment() {
  32. $this->message->addFrame(new Frame('The quick brow', false));
  33. $this->setExpectedException('UnderflowException');
  34. $this->message->getPayload();
  35. }
  36. public function testGetOpCode() {
  37. $this->message
  38. ->addFrame(new Frame('The quick brow', false, Frame::OP_TEXT))
  39. ->addFrame(new Frame('n fox jumps ov', false, Frame::OP_CONTINUE))
  40. ->addFrame(new Frame('er the lazy dog', true, Frame::OP_CONTINUE))
  41. ;
  42. $this->assertEquals(Frame::OP_TEXT, $this->message->getOpCode());
  43. }
  44. public function testGetUnBufferedPayloadLength() {
  45. $this->message
  46. ->addFrame(new Frame('The quick brow', false, Frame::OP_TEXT))
  47. ->addFrame(new Frame('n fox jumps ov', false, Frame::OP_CONTINUE))
  48. ;
  49. $this->assertEquals(28, $this->message->getPayloadLength());
  50. }
  51. }