From 6688e9e29ff4412c05b141431d851a0455d13047 Mon Sep 17 00:00:00 2001 From: Stephan Unverwerth Date: Wed, 28 Sep 2016 21:29:42 +0200 Subject: [PATCH] Added test for didChange event --- src/PhpDocument.php | 10 ++++++++++ tests/Server/TextDocumentTest.php | 22 +++++++++++++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) diff --git a/src/PhpDocument.php b/src/PhpDocument.php index a052a25..b2bae32 100644 --- a/src/PhpDocument.php +++ b/src/PhpDocument.php @@ -123,4 +123,14 @@ class PhpDocument $edit->newText = $prettyPrinter->prettyPrintFile($stmts); return [$edit]; } + + /** + * Returns this document's text content. + * + * @return string + */ + public function getContent() + { + return $this->content; + } } diff --git a/tests/Server/TextDocumentTest.php b/tests/Server/TextDocumentTest.php index 0be1e27..d3d0c2d 100644 --- a/tests/Server/TextDocumentTest.php +++ b/tests/Server/TextDocumentTest.php @@ -6,7 +6,7 @@ namespace LanguageServer\Tests\Server; use PHPUnit\Framework\TestCase; use LanguageServer\Tests\MockProtocolStream; use LanguageServer\{Server, Client, LanguageClient, Project, PhpDocument}; -use LanguageServer\Protocol\{TextDocumentItem, TextDocumentIdentifier, SymbolKind, DiagnosticSeverity, FormattingOptions}; +use LanguageServer\Protocol\{TextDocumentItem, TextDocumentIdentifier, SymbolKind, DiagnosticSeverity, FormattingOptions, VersionedTextDocumentIdentifier, TextDocumentContentChangeEvent, Range, Position}; use AdvancedJsonRpc\{Request as RequestBody, Response as ResponseBody}; class TextDocumentTest extends TestCase @@ -218,4 +218,24 @@ class TextDocumentTest extends TestCase 'newText' => $expected ]], json_decode(json_encode($result), true)); } + + public function testDidChange() + { + $client = new LanguageClient(new MockProtocolStream()); + $project = new Project($client); + $textDocument = new Server\TextDocument($project, $client); + + $phpDocument = $project->getDocument('whatever'); + $phpDocument->updateContent("range = new Range(new Position(0,0), new Position(9999,9999)); + $changeEvent->rangeLength = 9999; + $changeEvent->text = "didChange($identifier, [$changeEvent]); + + $this->assertEquals("getContent()); + } }