@@ -320,7 +320,7 @@ public async Task Definition_Success()
320320 /// Ensure that the language client can successfully request DocumentHighlight.
321321 /// </summary>
322322 [ Fact ( DisplayName = "Language client can successfully request document highlights" , Skip = "Periodic failures" ) ]
323- public async Task DocumentHighlight_Success ( )
323+ public async Task DocumentHighlights_Success ( )
324324 {
325325 await Connect ( ) ;
326326
@@ -355,7 +355,7 @@ public async Task DocumentHighlight_Success()
355355 return Task . FromResult ( expectedHighlights ) ;
356356 } ) ;
357357
358- var definitions = await LanguageClient . TextDocument . DocumentHighlight ( AbsoluteDocumentPath , line , column ) ;
358+ var definitions = await LanguageClient . TextDocument . DocumentHighlights ( AbsoluteDocumentPath , line , column ) ;
359359
360360 var actualDefinitions = definitions . ToArray ( ) ;
361361 Assert . Collection ( actualDefinitions , actualHighlight => {
@@ -373,6 +373,47 @@ public async Task DocumentHighlight_Success()
373373 } ) ;
374374 }
375375
376+ /// <summary>
377+ /// Ensure that the language client can successfully request FoldingRanges.
378+ /// </summary>
379+ [ Fact ( DisplayName = "Language client can successfully request document folding ranges" , Skip = "Periodic failures" ) ]
380+ public async Task FoldingRanges_Success ( )
381+ {
382+ await Connect ( ) ;
383+
384+ var expectedDocumentPath = AbsoluteDocumentPath ;
385+ var expectedDocumentUri = DocumentUri . FromFileSystemPath ( expectedDocumentPath ) ;
386+
387+ var expectedFoldingRanges = new Container < FoldingRange > (
388+ new FoldingRange {
389+ Kind = FoldingRangeKind . Region ,
390+ StartLine = 5 ,
391+ StartCharacter = 1 ,
392+ EndLine = 7 ,
393+ EndCharacter = 2 ,
394+ } ) ;
395+
396+ ServerDispatcher . HandleRequest < FoldingRangeRequestParam , Container < FoldingRange > > ( DocumentNames . FoldingRange , ( request , cancellationToken ) => {
397+ Assert . NotNull ( request . TextDocument ) ;
398+ Assert . Equal ( expectedDocumentUri , request . TextDocument . Uri ) ;
399+ return Task . FromResult ( expectedFoldingRanges ) ;
400+ } ) ;
401+
402+ var foldingRanges = await LanguageClient . TextDocument . FoldingRanges ( AbsoluteDocumentPath ) ;
403+
404+ var actualFoldingRanges = foldingRanges . ToArray ( ) ;
405+ Assert . Collection ( actualFoldingRanges , actualFoldingRange => {
406+ var expectedFoldingRange = expectedFoldingRanges . Single ( ) ;
407+
408+ Assert . Equal ( FoldingRangeKind . Region , expectedFoldingRange . Kind ) ;
409+
410+ Assert . Equal ( expectedFoldingRange . StartLine , actualFoldingRange . StartLine ) ;
411+ Assert . Equal ( expectedFoldingRange . StartCharacter , actualFoldingRange . StartCharacter ) ;
412+ Assert . Equal ( expectedFoldingRange . EndLine , actualFoldingRange . EndLine ) ;
413+ Assert . Equal ( expectedFoldingRange . EndCharacter , actualFoldingRange . EndCharacter ) ;
414+ } ) ;
415+ }
416+
376417 /// <summary>
377418 /// Ensure that the language client can successfully receive Diagnostics from the server.
378419 /// </summary>
0 commit comments