From 579f30f591d6b13a33a17ed6cc47a6a0883712e7 Mon Sep 17 00:00:00 2001 From: Javier Calvarro Nelson Date: Tue, 15 Oct 2019 22:17:05 +0200 Subject: [PATCH] [Blazor][Fixes #14999] Razor Class Library Static Assets with spaces do not resolve (#15024) --- .../StaticWebAssets/StaticWebAssetsFileProvider.cs | 4 ++-- .../test/Microsoft.AspNetCore.Hosting.Tests.csproj | 1 + .../StaticWebAssetsFileProviderTests.cs | 11 +++++++++++ .../test/testroot/wwwroot/Static Web Assets.txt | 1 + 4 files changed, 15 insertions(+), 2 deletions(-) create mode 100644 src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt diff --git a/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs index 9db5c7b611..5c634ab208 100644 --- a/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs +++ b/src/Hosting/Hosting/src/StaticWebAssets/StaticWebAssetsFileProvider.cs @@ -46,7 +46,7 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets } else { - return InnerProvider.GetDirectoryContents(physicalPath); + return InnerProvider.GetDirectoryContents(physicalPath.Value); } } @@ -59,7 +59,7 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets } else { - return InnerProvider.GetFileInfo(physicalPath); + return InnerProvider.GetFileInfo(physicalPath.Value); } } diff --git a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj index 55c6f7fa54..7c9b9141a1 100644 --- a/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj +++ b/src/Hosting/Hosting/test/Microsoft.AspNetCore.Hosting.Tests.csproj @@ -9,6 +9,7 @@ + diff --git a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs index dd52fced46..249f0a1670 100644 --- a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs +++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs @@ -37,6 +37,17 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets Assert.Equal("/_content", provider.BasePath); } + [Fact] + public void StaticWebAssetsFileProvider_FindsFileWithSpaces() + { + // Arrange & Act + var provider = new StaticWebAssetsFileProvider("/_content", + Path.Combine(AppContext.BaseDirectory, "testroot", "wwwroot")); + + // Assert + Assert.True(provider.GetFileInfo("/_content/Static Web Assets.txt").Exists); + } + [Fact] public void GetFileInfo_DoesNotMatch_IncompletePrefixSegments() { diff --git a/src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt b/src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt new file mode 100644 index 0000000000..3ecb6a0ed7 --- /dev/null +++ b/src/Hosting/Hosting/test/testroot/wwwroot/Static Web Assets.txt @@ -0,0 +1 @@ +This file is here to validate that the static web assets file provider respect spaces.