36 lines
		
	
	
		
			868 B
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			868 B
		
	
	
	
		
			PHP
		
	
	
| <?php
 | |
| declare(strict_types = 1);
 | |
| 
 | |
| namespace LanguageServer\Tests;
 | |
| 
 | |
| use PHPUnit\Framework\TestCase;
 | |
| use LanguageServer\ProtocolStreamWriter;
 | |
| use LanguageServer\Protocol\Message;
 | |
| use AdvancedJsonRpc\{Request as RequestBody};
 | |
| use Sabre\Event\Loop;
 | |
| 
 | |
| class ProtocolStreamWriterTest extends TestCase
 | |
| {
 | |
|     public function testLargeMessageIsSent()
 | |
|     {
 | |
|         $tmpfile = tempnam('', '');
 | |
|         $writeHandle = fopen($tmpfile, 'w');
 | |
| 
 | |
|         stream_set_blocking($writeHandle, false);
 | |
| 
 | |
|         $writer = new ProtocolStreamWriter($writeHandle);
 | |
|         $msg = new Message(new RequestBody(1, 'aMethod', ['arg' => str_repeat('X', 100000)]));
 | |
|         $msgString = (string)$msg;
 | |
| 
 | |
|         $promise = $writer->write($msg);
 | |
| 
 | |
|         Loop\tick();
 | |
| 
 | |
|         $promise->wait();
 | |
| 
 | |
|         fclose($writeHandle);
 | |
| 
 | |
|         $this->assertEquals(strlen($msgString), filesize($tmpfile));
 | |
|     }
 | |
| }
 |