diff --git a/test/Microsoft.AspNet.Mvc.Core.Test/RequireHttpsAttributeTests.cs b/test/Microsoft.AspNet.Mvc.Core.Test/RequireHttpsAttributeTests.cs index 5a5dce108f..b83a299b14 100644 --- a/test/Microsoft.AspNet.Mvc.Core.Test/RequireHttpsAttributeTests.cs +++ b/test/Microsoft.AspNet.Mvc.Core.Test/RequireHttpsAttributeTests.cs @@ -7,6 +7,7 @@ using Microsoft.AspNet.Http.Internal; using Microsoft.AspNet.Mvc.Abstractions; using Microsoft.AspNet.Mvc.Filters; using Microsoft.AspNet.Routing; +using Microsoft.AspNet.Testing; using Xunit; namespace Microsoft.AspNet.Mvc @@ -44,8 +45,13 @@ namespace Microsoft.AspNet.Mvc data.Add("localhost", "/pathbase", "/path", "?foo=bar", "https://localhost/pathbase/path?foo=bar"); // Encode some special characters on the url. - data.Add("localhost", "/path?base", null, null, "https://localhost/path%3Fbase"); - data.Add("localhost", null, "/pa?th", null, "https://localhost/pa%3Fth"); + // Two paths hit aspnet/External#50 with Mono on Mac. + if (!TestPlatformHelper.IsMac || !TestPlatformHelper.IsMono) + { + data.Add("localhost", "/path?base", null, null, "https://localhost/path%3Fbase"); + data.Add("localhost", null, "/pa?th", null, "https://localhost/pa%3Fth"); + } + data.Add("localhost", "/", null, "?foo=bar%2Fbaz", "https://localhost/?foo=bar%2Fbaz"); // Urls with punycode diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/ErrorPageTests.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/ErrorPageTests.cs index 8160d5c05e..3f3245952f 100644 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/ErrorPageTests.cs +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/ErrorPageTests.cs @@ -5,6 +5,9 @@ using System.Net; using System.Net.Http; using System.Net.Http.Headers; using System.Threading.Tasks; +#if !DNXCORE50 +using Microsoft.AspNet.Testing.xunit; +#endif using Xunit; namespace Microsoft.AspNet.Mvc.FunctionalTests @@ -21,7 +24,12 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests public HttpClient Client { get; } +#if DNXCORE50 [Theory] +#else + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/Mvc#3587")] +#endif [InlineData("CompilationFailure", "Cannot implicitly convert type 'int' to 'string'")] [InlineData("ParserError", "The code block is missing a closing "}" character. Make sure you " + "have a matching "}" character for all the "{" characters " + diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/HtmlGenerationTest.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/HtmlGenerationTest.cs index b84c43cdea..fa7997c0cf 100644 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/HtmlGenerationTest.cs +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/HtmlGenerationTest.cs @@ -8,6 +8,7 @@ using System.Net.Http; using System.Net.Http.Headers; using System.Reflection; using System.Threading.Tasks; +using Microsoft.AspNet.Testing; using Xunit; namespace Microsoft.AspNet.Mvc.FunctionalTests @@ -34,7 +35,7 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests { get { - return new TheoryData + var data = new TheoryData { { "Customer", "/Customer/HtmlGeneration_Customer" }, { "Index", null }, @@ -62,9 +63,16 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests { "OrderUsingHtmlHelpers", "/HtmlGeneration_Order/Submit" }, // Testing InputTagHelpers invoked in the partial views { "ProductList", null }, - // Testing the ScriptTagHelper - { "Script", null }, }; + + // One path hits aspnet/External#50 with Mono on Mac. + if (!TestPlatformHelper.IsMac || !TestPlatformHelper.IsMono) + { + // Testing the ScriptTagHelper + data.Add("Script", null); + } + + return data; } } diff --git a/test/Microsoft.AspNet.Mvc.FunctionalTests/TagHelperSampleTest.cs b/test/Microsoft.AspNet.Mvc.FunctionalTests/TagHelperSampleTest.cs index df311f67da..64a075bef2 100644 --- a/test/Microsoft.AspNet.Mvc.FunctionalTests/TagHelperSampleTest.cs +++ b/test/Microsoft.AspNet.Mvc.FunctionalTests/TagHelperSampleTest.cs @@ -4,6 +4,7 @@ using System.Net; using System.Net.Http; using System.Threading.Tasks; +using Microsoft.AspNet.Testing; using Xunit; namespace Microsoft.AspNet.Mvc.FunctionalTests @@ -21,10 +22,8 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests { get { - return new TheoryData + var data = new TheoryData { - string.Empty, - "/", "/Home/Create", "/Home/Create?Name=Billy&Blurb=hello&DateOfBirth=2000-11-30&YearsEmployeed=0", "/Home/Create", @@ -35,8 +34,17 @@ namespace Microsoft.AspNet.Mvc.FunctionalTests "/Home/Edit/1?Name=Jack&Blurb=goodbye&DateOfBirth=1979-10-20&YearsEmployeed=4", "/Home/Edit/0", "/Home/Edit/0?Name=Bobby&Blurb=howdy&DateOfBirth=1999-11-30&YearsEmployeed=2", - "/Home/Index", }; + + // Three paths hit aspnet/External#50 with Mono on Mac. + if (!TestPlatformHelper.IsMac || !TestPlatformHelper.IsMono) + { + data.Add(string.Empty); + data.Add("/"); + data.Add("/Home/Index"); + } + + return data; } } diff --git a/test/Microsoft.AspNet.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs b/test/Microsoft.AspNet.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs index 4dc293bfbe..4af250af04 100644 --- a/test/Microsoft.AspNet.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs +++ b/test/Microsoft.AspNet.Mvc.IntegrationTests/ActionParametersIntegrationTest.cs @@ -8,6 +8,9 @@ using System.Threading.Tasks; using Microsoft.AspNet.Http; using Microsoft.AspNet.Mvc.Abstractions; using Microsoft.AspNet.Mvc.ModelBinding; +#if !DNXCORE50 +using Microsoft.AspNet.Testing.xunit; +#endif using Xunit; namespace Microsoft.AspNet.Mvc.IntegrationTests @@ -29,7 +32,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public List
Address { get; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_NonSettableCollectionModel_EmptyPrefix_GetsBound() { // Arrange @@ -76,7 +84,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public CustomReadOnlyCollection
Address { get; set; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_ReadOnlyCollectionModel_EmptyPrefix_DoesNotGetBound() { // Arrange @@ -123,7 +136,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public Address[] Address { get; set; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_SettableArrayModel_EmptyPrefix_GetsBound() { // Arrange @@ -170,7 +188,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public Address[] Address { get; } = new Address[] { }; } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_NonSettableArrayModel_EmptyPrefix_DoesNotGetBound() { // Arrange @@ -206,7 +229,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Empty(modelState.Keys); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_NonSettableCollectionModel_WithPrefix_GetsBound() { // Arrange @@ -251,7 +279,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, modelState[key].ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_ReadOnlyCollectionModel_WithPrefix_DoesNotGetBound() { // Arrange @@ -297,7 +330,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal("SomeStreet", state.RawValue); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_SettableArrayModel_WithPrefix_GetsBound() { // Arrange @@ -342,7 +380,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, modelState[key].ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task ActionParameter_NonSettableArrayModel_WithPrefix_DoesNotGetBound() { // Arrange @@ -366,7 +409,7 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests // Act var modelBindingResult = await argumentBinder.BindModelAsync(parameter, modelState, operationContext); - + // Assert Assert.True(modelBindingResult.IsModelSet); diff --git a/test/Microsoft.AspNet.Mvc.IntegrationTests/ByteArrayModelBinderIntegrationTest.cs b/test/Microsoft.AspNet.Mvc.IntegrationTests/ByteArrayModelBinderIntegrationTest.cs index f2c0b231af..f41b856929 100644 --- a/test/Microsoft.AspNet.Mvc.IntegrationTests/ByteArrayModelBinderIntegrationTest.cs +++ b/test/Microsoft.AspNet.Mvc.IntegrationTests/ByteArrayModelBinderIntegrationTest.cs @@ -6,6 +6,9 @@ using System.Threading.Tasks; using Microsoft.AspNet.Http; using Microsoft.AspNet.Mvc.Abstractions; using Microsoft.AspNet.Mvc.ModelBinding; +#if !DNXCORE50 +using Microsoft.AspNet.Testing.xunit; +#endif using Xunit; namespace Microsoft.AspNet.Mvc.IntegrationTests @@ -17,7 +20,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public byte[] Token { get; set; } } +#if DNXCORE50 [Theory] +#else + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif [InlineData(true)] [InlineData(false)] public async Task BindProperty_WithData_GetsBound(bool fallBackScenario) diff --git a/test/Microsoft.AspNet.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs b/test/Microsoft.AspNet.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs index ac2d8055ec..3f60ba7669 100644 --- a/test/Microsoft.AspNet.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs +++ b/test/Microsoft.AspNet.Mvc.IntegrationTests/SimpleTypeModelBinderIntegrationTest.cs @@ -11,6 +11,9 @@ using Microsoft.AspNet.Http.Internal; using Microsoft.AspNet.Mvc.Abstractions; using Microsoft.AspNet.Mvc.Controllers; using Microsoft.AspNet.Mvc.ModelBinding; +#if !DNXCORE50 +using Microsoft.AspNet.Testing.xunit; +#endif using Microsoft.Extensions.Primitives; using Xunit; @@ -247,7 +250,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal("The value 'abcd' is not valid for Int32.", error.ErrorMessage); } +#if DNXCORE50 [Theory] +#else + [ConditionalTheory] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif [InlineData(typeof(int))] [InlineData(typeof(bool))] public async Task BindParameter_WithEmptyData_DoesNotBind(Type parameterType) diff --git a/test/Microsoft.AspNet.Mvc.IntegrationTests/TryUpdateModelIntegrationTest.cs b/test/Microsoft.AspNet.Mvc.IntegrationTests/TryUpdateModelIntegrationTest.cs index 2de534de87..3c1753c5b7 100644 --- a/test/Microsoft.AspNet.Mvc.IntegrationTests/TryUpdateModelIntegrationTest.cs +++ b/test/Microsoft.AspNet.Mvc.IntegrationTests/TryUpdateModelIntegrationTest.cs @@ -6,6 +6,9 @@ using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNet.Http; using Microsoft.AspNet.Mvc.ModelBinding; +#if !DNXCORE50 +using Microsoft.AspNet.Testing.xunit; +#endif using Xunit; namespace Microsoft.AspNet.Mvc.IntegrationTests @@ -100,7 +103,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public Address Address { get; set; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_TopLevelCollection_EmptyPrefix_BindsAfterClearing() { // Arrange @@ -208,7 +216,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public List
Address { get; set; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableCollectionModel_EmptyPrefix_CreatesCollection() { // Arrange @@ -244,7 +257,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableCollectionModel_EmptyPrefix_MaintainsCollectionIfNonNull() { // Arrange @@ -295,7 +313,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public List
Address { get; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_NonSettableCollectionModel_EmptyPrefix_GetsBound() { // Arrange @@ -389,7 +412,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public Address[] Address { get; set; } } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableArrayModel_EmptyPrefix_CreatesArray() { // Arrange @@ -425,7 +453,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableArrayModel_EmptyPrefix_OverwritesArray() { // Arrange @@ -478,7 +511,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests public Address[] Address { get; } = new Address[] { }; } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_NonSettableArrayModel_EmptyPrefix_GetsBound() { // Arrange @@ -582,7 +620,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_TopLevelCollection_WithPrefix_BindsAfterClearing() { // Arrange @@ -685,7 +728,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableCollectionModel_WithPrefix_CreatesCollection() { // Arrange @@ -721,7 +769,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableCollectionModel_WithPrefix_MaintainsCollectionIfNonNull() { // Arrange @@ -762,7 +815,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_NonSettableCollectionModel_WithPrefix_GetsBound() { // Arrange @@ -846,7 +904,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal("SomeStreet", state.RawValue); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableArrayModel_WithPrefix_CreatesArray() { // Arrange @@ -882,7 +945,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_SettableArrayModel_WithPrefix_OverwritesArray() { // Arrange @@ -930,7 +998,12 @@ namespace Microsoft.AspNet.Mvc.IntegrationTests Assert.Equal(ModelValidationState.Valid, state.ValidationState); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public async Task TryUpdateModel_NonSettableArrayModel_WithPrefix_GetsBound() { // Arrange diff --git a/test/Microsoft.AspNet.Mvc.ViewFeatures.Test/ViewComponentTests.cs b/test/Microsoft.AspNet.Mvc.ViewFeatures.Test/ViewComponentTests.cs index aa86de03e8..561bce7dd1 100644 --- a/test/Microsoft.AspNet.Mvc.ViewFeatures.Test/ViewComponentTests.cs +++ b/test/Microsoft.AspNet.Mvc.ViewFeatures.Test/ViewComponentTests.cs @@ -5,6 +5,9 @@ using System.Text.Encodings.Web; using Microsoft.AspNet.Mvc.Rendering; using Microsoft.AspNet.Mvc.ViewComponents; using Microsoft.AspNet.Mvc.ViewFeatures; +#if !DNXCORE50 +using Microsoft.AspNet.Testing.xunit; +#endif using Xunit; namespace Microsoft.AspNet.Mvc @@ -43,7 +46,12 @@ namespace Microsoft.AspNet.Mvc Assert.Equal("Bob", viewComponent.ViewBag.B); } +#if DNXCORE50 [Fact] +#else + [ConditionalFact] + [OSSkipCondition(OperatingSystems.MacOSX, SkipReason = "aspnet/External#50")] +#endif public void ViewComponent_Content_SetsResultContentAndEncodedContent() { // Arrange