<?php namespace Ratchet\RFC6455\Test\Unit\Messaging; use Ratchet\RFC6455\Messaging\CloseFrameChecker; use Ratchet\RFC6455\Messaging\Frame; use Ratchet\RFC6455\Messaging\Message; use Ratchet\RFC6455\Messaging\MessageBuffer; class MessageBufferTest extends \PHPUnit_Framework_TestCase { /** * This is to test that MessageBuffer can handle a large receive * buffer with many many frames without blowing the stack (pre-v0.4 issue) */ public function testProcessingLotsOfFramesInASingleChunk() { $frame = new Frame('a', true, Frame::OP_TEXT); $frameRaw = $frame->getContents(); $data = str_repeat($frameRaw, 1000); $messageCount = 0; $messageBuffer = new MessageBuffer( new CloseFrameChecker(), function (Message $message) use (&$messageCount) { $messageCount++; $this->assertEquals('a', $message->getPayload()); }, null, false ); $messageBuffer->onData($data); $this->assertEquals(1000, $messageCount); } }