$(DefaultNetCoreTargetFramework)
@@ -9,7 +9,6 @@
-
diff --git a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs
index 249f0a1670..5fc2800e0f 100644
--- a/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs
+++ b/src/Hosting/Hosting/test/StaticWebAssets/StaticWebAssetsFileProviderTests.cs
@@ -37,6 +37,75 @@ namespace Microsoft.AspNetCore.Hosting.StaticWebAssets
Assert.Equal("/_content", provider.BasePath);
}
+ [Theory]
+ [InlineData("\\", "_content")]
+ [InlineData("\\_content\\RazorClassLib\\Dir", "Castle.Core.dll")]
+ [InlineData("", "_content")]
+ [InlineData("/", "_content")]
+ [InlineData("/_content", "RazorClassLib")]
+ [InlineData("/_content/RazorClassLib", "Dir")]
+ [InlineData("/_content/RazorClassLib/Dir", "Microsoft.AspNetCore.Hosting.Tests.dll")]
+ [InlineData("/_content/RazorClassLib/Dir/testroot/", "TextFile.txt")]
+ [InlineData("/_content/RazorClassLib/Dir/testroot/wwwroot/", "README")]
+ public void GetDirectoryContents_WalksUpContentRoot(string searchDir, string expected)
+ {
+ // Arrange
+ var provider = new StaticWebAssetsFileProvider("/_content/RazorClassLib/Dir", AppContext.BaseDirectory);
+
+ // Act
+ var directory = provider.GetDirectoryContents(searchDir);
+
+ // Assert
+ Assert.NotEmpty(directory);
+ Assert.Contains(directory, file => string.Equals(file.Name, expected));
+ }
+
+ [Fact]
+ public void GetDirectoryContents_DoesNotFindNonExistentFiles()
+ {
+ // Arrange
+ var provider = new StaticWebAssetsFileProvider("/_content/RazorClassLib/", AppContext.BaseDirectory);
+
+ // Act
+ var directory = provider.GetDirectoryContents("/_content/RazorClassLib/False");
+
+ // Assert
+ Assert.Empty(directory);
+ }
+
+ [Theory]
+ [InlineData("/False/_content/RazorClassLib/")]
+ [InlineData("/_content/RazorClass")]
+ public void GetDirectoryContents_PartialMatchFails(string requestedUrl)
+ {
+ // Arrange
+ var provider = new StaticWebAssetsFileProvider("/_content/RazorClassLib", AppContext.BaseDirectory);
+
+ // Act
+ var directory = provider.GetDirectoryContents(requestedUrl);
+
+ // Assert
+ Assert.Empty(directory);
+ }
+
+ [Fact]
+ public void GetDirectoryContents_HandlesWhitespaceInBase()
+ {
+ // Arrange
+ var provider = new StaticWebAssetsFileProvider("/_content/Static Web Assets",
+ Path.Combine(AppContext.BaseDirectory, "testroot", "wwwroot"));
+
+ // Act
+ var directory = provider.GetDirectoryContents("/_content/Static Web Assets/Static Web/");
+
+ // Assert
+ Assert.Collection(directory,
+ file =>
+ {
+ Assert.Equal("Static Web.txt", file.Name);
+ });
+ }
+
[Fact]
public void StaticWebAssetsFileProvider_FindsFileWithSpaces()
{
diff --git a/src/Hosting/Hosting/test/testroot/wwwroot/Static Web/Static Web.txt b/src/Hosting/Hosting/test/testroot/wwwroot/Static Web/Static Web.txt
new file mode 100644
index 0000000000..5f282702bb
--- /dev/null
+++ b/src/Hosting/Hosting/test/testroot/wwwroot/Static Web/Static Web.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/src/Mvc/test/Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj b/src/Mvc/test/Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj
index 38b8d99c54..70385d88d5 100644
--- a/src/Mvc/test/Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj
+++ b/src/Mvc/test/Mvc.FunctionalTests/Microsoft.AspNetCore.Mvc.FunctionalTests.csproj
@@ -16,6 +16,7 @@
+
diff --git a/src/Mvc/test/Mvc.FunctionalTests/TagHelpersTest.cs b/src/Mvc/test/Mvc.FunctionalTests/TagHelpersTest.cs
index e6559100f4..9d2daf2f59 100644
--- a/src/Mvc/test/Mvc.FunctionalTests/TagHelpersTest.cs
+++ b/src/Mvc/test/Mvc.FunctionalTests/TagHelpersTest.cs
@@ -34,6 +34,7 @@ namespace Microsoft.AspNetCore.Mvc.FunctionalTests
public HttpClient EncodedClient { get; }
[Theory]
+ [InlineData("GlobbingTagHelpers")]
[InlineData("Index")]
[InlineData("About")]
[InlineData("Help")]
diff --git a/src/Mvc/test/Mvc.FunctionalTests/compiler/resources/TagHelpersWebSite.Home.GlobbingTagHelpers.html b/src/Mvc/test/Mvc.FunctionalTests/compiler/resources/TagHelpersWebSite.Home.GlobbingTagHelpers.html
new file mode 100644
index 0000000000..6f38146bb3
--- /dev/null
+++ b/src/Mvc/test/Mvc.FunctionalTests/compiler/resources/TagHelpersWebSite.Home.GlobbingTagHelpers.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
+ Globbing Page - My ASP.NET Application
+
+
+
+
+ ASP.NET vNext - Globbing Page
+ | My Home
+ | My About
+ | My Help |
+
+
+
+Globbing
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Mvc/test/WebSites/RazorPagesClassLibrary/RazorPagesClassLibrary.csproj b/src/Mvc/test/WebSites/RazorPagesClassLibrary/RazorPagesClassLibrary.csproj
index 252fd7e3e2..ff47b923a8 100644
--- a/src/Mvc/test/WebSites/RazorPagesClassLibrary/RazorPagesClassLibrary.csproj
+++ b/src/Mvc/test/WebSites/RazorPagesClassLibrary/RazorPagesClassLibrary.csproj
@@ -5,7 +5,7 @@
true
true
-
+