From 0708c3433127db527b6160bbda11a047499ac9e9 Mon Sep 17 00:00:00 2001 From: Brennan Date: Tue, 27 Oct 2015 14:48:50 -0700 Subject: [PATCH] Adding windows specific tests --- .../DefaultFilesMiddlewareTests.cs | 62 ++++++++++++++++ .../DirectoryBrowserMiddlewareTests.cs | 74 +++++++++++++++++++ .../StaticFileMiddlewareTests.cs | 18 +++++ .../project.json | 1 + 4 files changed, 155 insertions(+) diff --git a/test/Microsoft.AspNet.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs b/test/Microsoft.AspNet.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs index 4a0ea4eb8c..f4e82cffce 100644 --- a/test/Microsoft.AspNet.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs +++ b/test/Microsoft.AspNet.StaticFiles.Tests/DefaultFilesMiddlewareTests.cs @@ -10,6 +10,7 @@ using Microsoft.AspNet.Builder; using Microsoft.AspNet.FileProviders; using Microsoft.AspNet.Http; using Microsoft.AspNet.TestHost; +using Microsoft.AspNet.Testing.xunit; using Xunit; namespace Microsoft.AspNet.StaticFiles @@ -34,6 +35,21 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("/subdir", @".", "/subdir/missing.dir")] [InlineData("/subdir", @".", "/subdir/missing.dir/")] [InlineData("", @"./", "/missing.dir")] + public async Task NoMatch_PassesThrough_All(string baseUrl, string baseDir, string requestUrl) + { + await NoMatch_PassesThrough(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("", @".\", "/missing.dir")] + [InlineData("", @".\", "/Missing.dir")] + public async Task NoMatch_PassesThrough_Windows(string baseUrl, string baseDir, string requestUrl) + { + await NoMatch_PassesThrough(baseUrl, baseDir, requestUrl); + } + public async Task NoMatch_PassesThrough(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create(app => @@ -55,6 +71,21 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("", @".", "/SubFolder/")] [InlineData("", @"./", "/SubFolder/")] [InlineData("", @"./SubFolder", "/")] + public async Task FoundDirectoryWithDefaultFile_PathModified_All(string baseUrl, string baseDir, string requestUrl) + { + await FoundDirectoryWithDefaultFile_PathModified(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("", @".\", "/SubFolder/")] + [InlineData("", @".\subFolder", "/")] + public async Task FoundDirectoryWithDefaultFile_PathModified_Windows(string baseUrl, string baseDir, string requestUrl) + { + await FoundDirectoryWithDefaultFile_PathModified(baseUrl, baseDir, requestUrl); + } + public async Task FoundDirectoryWithDefaultFile_PathModified(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create(app => @@ -76,6 +107,21 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("", @".", "/SubFolder", "")] [InlineData("", @"./", "/SubFolder", "")] [InlineData("", @"./", "/SubFolder", "?a=b")] + public async Task NearMatch_RedirectAddSlash_All(string baseUrl, string baseDir, string requestUrl, string queryString) + { + await NearMatch_RedirectAddSlash(baseUrl, baseDir, requestUrl, queryString); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("", @".\", "/SubFolder", "")] + [InlineData("", @".\", "/SubFolder", "?a=b")] + public async Task NearMatch_RedirectAddSlash_Windows(string baseUrl, string baseDir, string requestUrl, string queryString) + { + await NearMatch_RedirectAddSlash(baseUrl, baseDir, requestUrl, queryString); + } + public async Task NearMatch_RedirectAddSlash(string baseUrl, string baseDir, string requestUrl, string queryString) { TestServer server = TestServer.Create(app => app.UseDefaultFiles(new DefaultFilesOptions() @@ -95,6 +141,22 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("/SubFolder", @".", "/somedir/")] [InlineData("", @"./SubFolder", "/")] [InlineData("", @"./SubFolder/", "/")] + public async Task PostDirectory_PassesThrough_All(string baseUrl, string baseDir, string requestUrl) + { + await PostDirectory_PassesThrough(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("/SubFolder", @".\", "/SubFolder/")] + [InlineData("", @".\SubFolder", "/")] + [InlineData("", @".\SubFolder\", "/")] + public async Task PostDirectory_PassesThrough_Windows(string baseUrl, string baseDir, string requestUrl) + { + await PostDirectory_PassesThrough(baseUrl, baseDir, requestUrl); + } + public async Task PostDirectory_PassesThrough(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create(app => app.UseDefaultFiles(new DefaultFilesOptions() diff --git a/test/Microsoft.AspNet.StaticFiles.Tests/DirectoryBrowserMiddlewareTests.cs b/test/Microsoft.AspNet.StaticFiles.Tests/DirectoryBrowserMiddlewareTests.cs index 70220afcc1..cb2fcbc664 100644 --- a/test/Microsoft.AspNet.StaticFiles.Tests/DirectoryBrowserMiddlewareTests.cs +++ b/test/Microsoft.AspNet.StaticFiles.Tests/DirectoryBrowserMiddlewareTests.cs @@ -11,6 +11,7 @@ using Microsoft.AspNet.Builder; using Microsoft.AspNet.FileProviders; using Microsoft.AspNet.Http; using Microsoft.AspNet.TestHost; +using Microsoft.AspNet.Testing.xunit; using Microsoft.Extensions.DependencyInjection; using Xunit; @@ -45,6 +46,21 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("/subdir", @".", "/subdir/missing.dir")] [InlineData("/subdir", @".", "/subdir/missing.dir/")] [InlineData("", @"./", "/missing.dir")] + public async Task NoMatch_PassesThrough_All(string baseUrl, string baseDir, string requestUrl) + { + await NoMatch_PassesThrough(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("", @".\", "/missing.dir")] + [InlineData("", @".\", "/Missing.dir")] + public async Task NoMatch_PassesThrough_Windows(string baseUrl, string baseDir, string requestUrl) + { + await NoMatch_PassesThrough(baseUrl, baseDir, requestUrl); + } + public async Task NoMatch_PassesThrough(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create( @@ -64,6 +80,21 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("/somedir", @".", "/somedir/")] [InlineData("/somedir", @"./", "/somedir/")] [InlineData("/somedir", @".", "/somedir/SubFolder/")] + public async Task FoundDirectory_Served_All(string baseUrl, string baseDir, string requestUrl) + { + await FoundDirectory_Served(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("/somedir", @".\", "/somedir/")] + [InlineData("/somedir", @".", "/somedir/subFolder/")] + public async Task FoundDirectory_Served_Windows(string baseUrl, string baseDir, string requestUrl) + { + await FoundDirectory_Served(baseUrl, baseDir, requestUrl); + } + public async Task FoundDirectory_Served(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create( @@ -88,6 +119,21 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("", @".", "/SubFolder", "?a=b")] [InlineData("/somedir", @".", "/somedir", "?a=b")] [InlineData("/somedir", @".", "/somedir/SubFolder", "?a=b")] + public async Task NearMatch_RedirectAddSlash_All(string baseUrl, string baseDir, string requestUrl, string queryString) + { + await NearMatch_RedirectAddSlash(baseUrl, baseDir, requestUrl, queryString); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("/somedir", @".", "/somedir/subFolder", "")] + [InlineData("/somedir", @".", "/somedir/subFolder", "?a=b")] + public async Task NearMatch_RedirectAddSlash_Windows(string baseUrl, string baseDir, string requestUrl, string queryString) + { + await NearMatch_RedirectAddSlash(baseUrl, baseDir, requestUrl, queryString); + } + public async Task NearMatch_RedirectAddSlash(string baseUrl, string baseDir, string requestUrl, string queryString) { TestServer server = TestServer.Create( @@ -110,6 +156,20 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("", @".", "/SubFolder/")] [InlineData("/somedir", @".", "/somedir/")] [InlineData("/somedir", @".", "/somedir/SubFolder/")] + public async Task PostDirectory_PassesThrough_All(string baseUrl, string baseDir, string requestUrl) + { + await PostDirectory_PassesThrough(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("/somedir", @".", "/somedir/subFolder/")] + public async Task PostDirectory_PassesThrough_Windows(string baseUrl, string baseDir, string requestUrl) + { + await PostDirectory_PassesThrough(baseUrl, baseDir, requestUrl); + } + public async Task PostDirectory_PassesThrough(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create( @@ -129,6 +189,20 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("", @".", "/SubFolder/")] [InlineData("/somedir", @".", "/somedir/")] [InlineData("/somedir", @".", "/somedir/SubFolder/")] + public async Task HeadDirectory_HeadersButNotBodyServed_All(string baseUrl, string baseDir, string requestUrl) + { + await HeadDirectory_HeadersButNotBodyServed(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("/somedir", @".", "/somedir/subFolder/")] + public async Task HeadDirectory_HeadersButNotBodyServed_Windows(string baseUrl, string baseDir, string requestUrl) + { + await HeadDirectory_HeadersButNotBodyServed(baseUrl, baseDir, requestUrl); + } + public async Task HeadDirectory_HeadersButNotBodyServed(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create( diff --git a/test/Microsoft.AspNet.StaticFiles.Tests/StaticFileMiddlewareTests.cs b/test/Microsoft.AspNet.StaticFiles.Tests/StaticFileMiddlewareTests.cs index 4d6595e630..24917a4753 100644 --- a/test/Microsoft.AspNet.StaticFiles.Tests/StaticFileMiddlewareTests.cs +++ b/test/Microsoft.AspNet.StaticFiles.Tests/StaticFileMiddlewareTests.cs @@ -10,6 +10,7 @@ using Microsoft.AspNet.Builder; using Microsoft.AspNet.FileProviders; using Microsoft.AspNet.Http; using Microsoft.AspNet.TestHost; +using Microsoft.AspNet.Testing.xunit; using Xunit; namespace Microsoft.AspNet.StaticFiles @@ -52,6 +53,23 @@ namespace Microsoft.AspNet.StaticFiles [InlineData("/SomeDir", @".", "/soMediR/TestDocument.txt")] [InlineData("", @"SubFolder", "/ranges.txt")] [InlineData("/somedir", @"SubFolder", "/somedir/ranges.txt")] + public async Task FoundFile_Served_All(string baseUrl, string baseDir, string requestUrl) + { + await FoundFile_Served(baseUrl, baseDir, requestUrl); + } + + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.Linux)] + [OSSkipCondition(OperatingSystems.MacOSX)] + [InlineData("", @".", "/testDocument.Txt")] + [InlineData("/somedir", @".", "/somedir/Testdocument.TXT")] + [InlineData("/SomeDir", @".", "/soMediR/testdocument.txT")] + [InlineData("/somedir", @"SubFolder", "/somedir/Ranges.tXt")] + public async Task FoundFile_Served_Windows(string baseUrl, string baseDir, string requestUrl) + { + await FoundFile_Served(baseUrl, baseDir, requestUrl); + } + public async Task FoundFile_Served(string baseUrl, string baseDir, string requestUrl) { TestServer server = TestServer.Create(app => app.UseStaticFiles(new StaticFileOptions() diff --git a/test/Microsoft.AspNet.StaticFiles.Tests/project.json b/test/Microsoft.AspNet.StaticFiles.Tests/project.json index e4023b999e..9de790b9b0 100644 --- a/test/Microsoft.AspNet.StaticFiles.Tests/project.json +++ b/test/Microsoft.AspNet.StaticFiles.Tests/project.json @@ -6,6 +6,7 @@ "dependencies": { "Microsoft.AspNet.StaticFiles": "1.0.0-*", "Microsoft.AspNet.TestHost": "1.0.0-*", + "Microsoft.AspNet.Testing": "1.0.0-*", "Microsoft.Extensions.Logging.Testing": "1.0.0-*", "xunit.runner.aspnet": "2.0.0-aspnet-*" },