setComplete(); $definitionResolver = new DefinitionResolver($projectIndex); $client = new LanguageClient(new MockProtocolStream(), new MockProtocolStream()); $this->documentLoader = new PhpDocumentLoader( new FileSystemContentRetriever(), $projectIndex, $definitionResolver ); $this->textDocument = new Server\TextDocument( $this->documentLoader, $definitionResolver, $client, $projectIndex ); $this->documentLoader->open( 'global_fallback', file_get_contents(__DIR__ . '/../../../../fixtures/global_fallback.php') ); $this->documentLoader->open( 'global_symbols', file_get_contents(__DIR__ . '/../../../../fixtures/global_symbols.php') ); } public function testClassDoesNotFallback() { // class TestClass implements TestInterface // Get references for TestClass $result = $this->textDocument ->references(new ReferenceContext(), new TextDocumentIdentifier('global_symbols'), new Position(6, 9)) ->wait(); $this->assertEquals([], $result); } public function testFallsBackForConstants() { // const TEST_CONST = 123; // Get references for TEST_CONST $result = $this->textDocument ->references(new ReferenceContext(), new TextDocumentIdentifier('global_symbols'), new Position(9, 13)) ->wait(); $this->assertEquals( [new Location('global_fallback', new Range(new Position(6, 5), new Position(6, 15)))], $result ); } public function testFallsBackForFunctions() { // function test_function() // Get references for test_function $result = $this->textDocument ->references(new ReferenceContext(), new TextDocumentIdentifier('global_symbols'), new Position(78, 16)) ->wait(); $this->assertEquals( [new Location('global_fallback', new Range(new Position(5, 0), new Position(5, 13)))], $result ); } }