Skip to content

Commit 83272f7

Browse files
URL encode when running ToString() (#242)
👍 @TylerLeonhardt you did just fine (I would have probably done worse! HA!)
1 parent 4838019 commit 83272f7

11 files changed

+109
-71
lines changed

src/Protocol/DocumentUri.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ public override string ToString()
175175
if (string.IsNullOrWhiteSpace(_stringValue))
176176
{
177177
_stringValue =
178-
$"{Scheme}{_delimiter}{Authority}{Path}{(string.IsNullOrWhiteSpace(Query) ? "" : "?" + Query)}{(string.IsNullOrWhiteSpace(Fragment) ? "" : "#" + Fragment)}";
178+
$"{Scheme}{_delimiter}{Authority}{Uri.EscapeUriString(Path)}{(string.IsNullOrWhiteSpace(Query) ? "" : "?" + Uri.EscapeDataString(Query))}{(string.IsNullOrWhiteSpace(Fragment) ? "" : "#" + Uri.EscapeDataString(Fragment))}";
179179
}
180180

181181
return _stringValue;

test/JsonRpc.Tests/InputHandlerTests.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,10 @@ public void ShouldPassInUtf8EncodedRequests()
128128
}
129129

130130
[Theory]
131-
[InlineData("{\"changes\": [{\"uri\": \"file:///Mörkö.cs\",\"type\": 1}]}")]
132-
[InlineData("{\"textDocument\": {\"uri\": \"file://abc/123/树.cs\"}}")]
131+
// Mörkö
132+
[InlineData("{\"changes\": [{\"uri\": \"file:///M%C3%B6rk%C3%B6.cs\",\"type\": 1}]}")]
133+
// 树
134+
[InlineData("{\"textDocument\": {\"uri\": \"file://abc/123/%E6%A0%91.cs\"}}")]
133135
public void ShouldPassAdditionalUtf8EncodedReqeusts(string data)
134136
{
135137
var inputStream =

test/Lsp.Tests/DocumentUriTests.cs

Lines changed: 96 additions & 60 deletions
Large diffs are not rendered by default.

test/Lsp.Tests/Models/ApplyWorkspaceEditParamsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ public void NonStandardCharactersTest(string expected)
5050
Changes = new Dictionary<DocumentUri, IEnumerable<TextEdit>>() {
5151
{
5252
// Mörkö
53-
new Uri("file:///abc/bc/123/Mörkö.cs"), new [] {
53+
new Uri("file:///abc/bc/123/M%C3%B6rk%C3%B6.cs"), new [] {
5454
new TextEdit() {
5555
NewText = "new text",
5656
Range = new Range(new Position(1, 1), new Position(2,2))

test/Lsp.Tests/Models/ApplyWorkspaceEditParamsTests_$NonStandardCharactersTest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"edit": {
33
"changes": {
4-
"file:///abc/bc/123/Mörkö.cs": [
4+
"file:///abc/bc/123/M%C3%B6rk%C3%B6.cs": [
55
{
66
"range": {
77
"start": {

test/Lsp.Tests/Models/CodeActionParamsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public void NonStandardCharactersTest(string expected)
5656
Range = new Range(new Position(1, 1), new Position(2, 2)),
5757
TextDocument = new TextDocumentIdentifier() {
5858
// 树 - Chinese for tree
59-
Uri = new Uri("file:///test/123/.cs")
59+
Uri = new Uri("file:///test/123/%E6%A0%91.cs")
6060
}
6161
};
6262
var result = Fixture.SerializeObject(model);

test/Lsp.Tests/Models/CodeActionParamsTests_$NonStandardCharactersTest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"textDocument": {
3-
"uri": "file:///test/123/.cs"
3+
"uri": "file:///test/123/%E6%A0%91.cs"
44
},
55
"range": {
66
"start": {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"textDocument": {
3-
"uri": "file://abc/123/.cs"
3+
"uri": "file://abc/123/%E6%A0%91.cs"
44
}
55
}

test/Lsp.Tests/Models/DidChangeTextDocumentParamsTests_$NonStandardCharactersTest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"textDocument": {
33
"version": 0,
4-
"uri": "file:///C:/abc/Mörkö.cs"
4+
"uri": "file:///C:/abc/M%C3%B6rk%C3%B6.cs"
55
},
66
"contentChanges": [
77
{

test/Lsp.Tests/Models/DidChangeWatchedFilesParamsTests.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public void NonStandardCharactersTest(string expected)
3838
new FileEvent() {
3939
Type = FileChangeType.Created,
4040
// Mörkö
41-
Uri = new Uri("file:///Mörkö.cs")
41+
Uri = new Uri("file:///M%C3%B6rk%C3%B6.cs")
4242
}
4343
}
4444
};

0 commit comments

Comments
 (0)