From b4dbe1302cb123e535bc07ad45e035285cdf7349 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Tue, 14 Apr 2020 14:07:01 +0100 Subject: [PATCH 1/6] Moved all UmbracoSettings tests into new unit tests configuration project Added InternalVisibleTo for new Unit Tests project Umbraco.Configuration, so the internals can be tested Moved TestHelpers for specific case into separate helper file, as independent helper, as this is the only method used. Changed from TestHelperBase to TestHelper. Subsequently changed path for testing --- .../Properties/AssemblyInfo.cs | 1 + .../ContentElementDefaultTests.cs | 2 +- .../UmbracoSettings/ContentElementTests.cs | 4 +-- .../LoggingElementDefaultTests.cs | 5 ++-- .../UmbracoSettings/LoggingElementTests.cs | 5 ++-- .../RequestHandlerElementDefaultTests.cs | 2 +- .../RequestHandlerElementTests.cs | 2 +- .../SecurityElementDefaultTests.cs | 2 +- .../UmbracoSettings/SecurityElementTests.cs | 3 +- .../UmbracoSettings/UmbracoSettingsTests.cs | 6 ++-- .../WebRoutingElementDefaultTests.cs | 2 +- .../UmbracoSettings/WebRoutingElementTests.cs | 2 +- .../UmbracoSettings/umbracoSettings.config | 0 .../umbracoSettings.minimal.config | 0 .../UmbracoSettings/web.config | 0 .../Helpers/TestHelper.cs | 29 +++++++++++++++++++ .../Umbraco.Tests.UnitTests.csproj | 15 ++++++++++ src/Umbraco.Tests/Umbraco.Tests.csproj | 23 --------------- 18 files changed, 60 insertions(+), 43 deletions(-) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/ContentElementDefaultTests.cs (95%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/ContentElementTests.cs (98%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/LoggingElementDefaultTests.cs (77%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/LoggingElementTests.cs (70%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/RequestHandlerElementDefaultTests.cs (77%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/RequestHandlerElementTests.cs (94%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/SecurityElementDefaultTests.cs (76%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/SecurityElementTests.cs (97%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/UmbracoSettingsTests.cs (90%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/WebRoutingElementDefaultTests.cs (93%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/WebRoutingElementTests.cs (89%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/umbracoSettings.config (100%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/umbracoSettings.minimal.config (100%) rename src/{Umbraco.Tests/Configurations => Umbraco.Tests.UnitTests/Umbraco.Configuration}/UmbracoSettings/web.config (100%) create mode 100644 src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs diff --git a/src/Umbraco.Configuration/Properties/AssemblyInfo.cs b/src/Umbraco.Configuration/Properties/AssemblyInfo.cs index b77c087e22..a3d1df253e 100644 --- a/src/Umbraco.Configuration/Properties/AssemblyInfo.cs +++ b/src/Umbraco.Configuration/Properties/AssemblyInfo.cs @@ -4,6 +4,7 @@ using System.Runtime.InteropServices; // Umbraco Cms [assembly: InternalsVisibleTo("Umbraco.Tests")] +[assembly: InternalsVisibleTo("Umbraco.Tests.UnitTests")] [assembly: InternalsVisibleTo("Umbraco.Tests.Common")] [assembly: InternalsVisibleTo("Umbraco.Tests.Benchmarks")] diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs similarity index 95% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs index b14319b1b7..40a8558450 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementDefaultTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs @@ -1,7 +1,7 @@ using System.Linq; using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class ContentElementDefaultTests : ContentElementTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs similarity index 98% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs index 668d0b0297..b5944ed222 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/ContentElementTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs @@ -1,14 +1,12 @@ using System; -using System.Collections.Generic; using System.Diagnostics; using System.Linq; using NUnit.Framework; using Umbraco.Core; -using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Macros; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class ContentElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/LoggingElementDefaultTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs similarity index 77% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/LoggingElementDefaultTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs index cdd5855730..dbe4409985 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/LoggingElementDefaultTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs @@ -1,7 +1,6 @@ -using System.Linq; -using NUnit.Framework; +using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class LoggingElementDefaultTests : LoggingElementTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/LoggingElementTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs similarity index 70% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/LoggingElementTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs index be495ad9d0..92e24796cb 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/LoggingElementTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs @@ -1,7 +1,6 @@ -using System.Linq; -using NUnit.Framework; +using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class LoggingElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/RequestHandlerElementDefaultTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs similarity index 77% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/RequestHandlerElementDefaultTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs index f0133baa60..c62575e044 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/RequestHandlerElementDefaultTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class RequestHandlerElementDefaultTests : RequestHandlerElementTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/RequestHandlerElementTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs similarity index 94% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/RequestHandlerElementTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs index bb4d1efd1e..3bd2a17106 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/RequestHandlerElementTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs @@ -2,7 +2,7 @@ using NUnit.Framework; using Umbraco.Core; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class RequestHandlerElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/SecurityElementDefaultTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs similarity index 76% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/SecurityElementDefaultTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs index 8d998ead69..369b8d6428 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/SecurityElementDefaultTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class SecurityElementDefaultTests : SecurityElementTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/SecurityElementTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs similarity index 97% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/SecurityElementTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs index 2eccd50295..061d7e93f4 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/SecurityElementTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs @@ -1,7 +1,6 @@ using NUnit.Framework; -using Umbraco.Core; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class SecurityElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/UmbracoSettingsTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs similarity index 90% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/UmbracoSettingsTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs index 0829de6668..7851b3a909 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/UmbracoSettingsTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs @@ -4,9 +4,9 @@ using System.IO; using NUnit.Framework; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Tests.TestHelpers; +using Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Helpers; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { public abstract class UmbracoSettingsTests { @@ -15,7 +15,7 @@ namespace Umbraco.Tests.Configurations.UmbracoSettings [SetUp] public void Init() { - var config = new FileInfo(TestHelper.MapPathForTestFiles("~/Configurations/UmbracoSettings/web.config")); + var config = new FileInfo(TestHelper.MapPathForTestFiles("~/Umbraco.Configuration/UmbracoSettings/web.config")); var fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = config.FullName }; var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/WebRoutingElementDefaultTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs similarity index 93% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/WebRoutingElementDefaultTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs index 73483ee8d2..5c8a8f9597 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/WebRoutingElementDefaultTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class WebRoutingElementDefaultTests : WebRoutingElementTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/WebRoutingElementTests.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs similarity index 89% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/WebRoutingElementTests.cs rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs index 8068c1605f..c5222b5f13 100644 --- a/src/Umbraco.Tests/Configurations/UmbracoSettings/WebRoutingElementTests.cs +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.Configurations.UmbracoSettings +namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class WebRoutingElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/umbracoSettings.config b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.config similarity index 100% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/umbracoSettings.config rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.config diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/umbracoSettings.minimal.config b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.minimal.config similarity index 100% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/umbracoSettings.minimal.config rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.minimal.config diff --git a/src/Umbraco.Tests/Configurations/UmbracoSettings/web.config b/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/web.config similarity index 100% rename from src/Umbraco.Tests/Configurations/UmbracoSettings/web.config rename to src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/web.config diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs new file mode 100644 index 0000000000..790223deee --- /dev/null +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs @@ -0,0 +1,29 @@ +using System; +using System.IO; + +namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Helpers +{ + /// + /// Common helper properties and methods useful to testing + /// + public static class TestHelper + { + /// + /// Some test files are copied to the /bin (/bin/debug) on build, this is a utility to return their physical path based on a virtual path name + /// + /// + /// + public static string MapPathForTestFiles(string relativePath) + { + if (!relativePath.StartsWith("~/")) + throw new ArgumentException("relativePath must start with '~/'", nameof(relativePath)); + + var codeBase = typeof(TestHelper).Assembly.CodeBase; + var uri = new Uri(codeBase); + var path = uri.LocalPath; + var bin = Path.GetDirectoryName(path); + + return relativePath.Replace("~/", bin + "/"); + } + } +} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj index f60b400f3f..d19e3d6f51 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj @@ -28,4 +28,19 @@ + + + Always + Designer + + + Always + Designer + + + Always + Designer + + + diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj index 8271b32a76..47436e4841 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -307,17 +307,6 @@ - - - - - - - - - - - @@ -518,14 +507,6 @@ Designer - - Designer - Always - - - Designer - Always - Always @@ -594,10 +575,6 @@ - - Designer - Always - Always From 0c77450222a90743bb1d6a0399d86dff08f5b9e3 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Tue, 14 Apr 2020 16:55:54 +0100 Subject: [PATCH 2/6] Specified hostingenvironment and databaseproviders after unit tests not picking up Umbraco.Core namespaces Migrated into integrations project configurations, as files are being read --- .../Properties/AssemblyInfo.cs | 1 - src/Umbraco.Tests.Common/TestHelperBase.cs | 2 +- .../ApplicationBuilderExtensions.cs | 4 +-- .../Extensions/ServiceCollectionExtensions.cs | 1 - .../Implementations/TestHelper.cs | 34 +++++++++++++++---- .../Implementations/TestHostingEnvironment.cs | 6 ++-- .../Testing/LocalDbTestDatabase.cs | 3 +- .../Configurations}/umbracoSettings.config | 0 .../umbracoSettings.minimal.config | 0 .../Configurations}/web.config | 0 .../ContentElementDefaultTests.cs | 2 +- .../UmbracoSettings/ContentElementTests.cs | 2 +- .../LoggingElementDefaultTests.cs | 2 +- .../UmbracoSettings/LoggingElementTests.cs | 2 +- .../RequestHandlerElementDefaultTests.cs | 2 +- .../RequestHandlerElementTests.cs | 2 +- .../SecurityElementDefaultTests.cs | 2 +- .../UmbracoSettings/SecurityElementTests.cs | 2 +- .../UmbracoSettings/UmbracoSettingsTests.cs | 7 ++-- .../WebRoutingElementDefaultTests.cs | 2 +- .../UmbracoSettings/WebRoutingElementTests.cs | 2 +- .../Umbraco.Tests.Integration.csproj | 12 +++++++ 22 files changed, 59 insertions(+), 31 deletions(-) rename src/{Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings => Umbraco.Tests.Integration/Umbraco.Configuration/Configurations}/umbracoSettings.config (100%) rename src/{Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings => Umbraco.Tests.Integration/Umbraco.Configuration/Configurations}/umbracoSettings.minimal.config (100%) rename src/{Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings => Umbraco.Tests.Integration/Umbraco.Configuration/Configurations}/web.config (100%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs (95%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs (98%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs (83%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs (77%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs (76%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs (94%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs (75%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs (97%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs (85%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs (93%) rename src/{Umbraco.Tests.UnitTests => Umbraco.Tests.Integration}/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs (89%) diff --git a/src/Umbraco.Configuration/Properties/AssemblyInfo.cs b/src/Umbraco.Configuration/Properties/AssemblyInfo.cs index a3d1df253e..b77c087e22 100644 --- a/src/Umbraco.Configuration/Properties/AssemblyInfo.cs +++ b/src/Umbraco.Configuration/Properties/AssemblyInfo.cs @@ -4,7 +4,6 @@ using System.Runtime.InteropServices; // Umbraco Cms [assembly: InternalsVisibleTo("Umbraco.Tests")] -[assembly: InternalsVisibleTo("Umbraco.Tests.UnitTests")] [assembly: InternalsVisibleTo("Umbraco.Tests.Common")] [assembly: InternalsVisibleTo("Umbraco.Tests.Benchmarks")] diff --git a/src/Umbraco.Tests.Common/TestHelperBase.cs b/src/Umbraco.Tests.Common/TestHelperBase.cs index 42b1e6c0dd..671eeffbc3 100644 --- a/src/Umbraco.Tests.Common/TestHelperBase.cs +++ b/src/Umbraco.Tests.Common/TestHelperBase.cs @@ -116,7 +116,7 @@ namespace Umbraco.Tests.Common /// /// /// - public string MapPathForTestFiles(string relativePath) + public virtual string MapPathForTestFiles(string relativePath) { if (!relativePath.StartsWith("~/")) throw new ArgumentException("relativePath must start with '~/'", nameof(relativePath)); diff --git a/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs b/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs index 5593a4aa69..52780e6d4f 100644 --- a/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs +++ b/src/Umbraco.Tests.Integration/Extensions/ApplicationBuilderExtensions.cs @@ -5,9 +5,7 @@ using System.IO; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; -using Microsoft.Extensions.Hosting; using NUnit.Framework; -using Umbraco.Configuration.Models; using Umbraco.Core; using Umbraco.Core.Configuration; using Umbraco.Core.Logging; @@ -63,7 +61,7 @@ namespace Umbraco.Tests.Integration.Extensions var dbFactory = app.ApplicationServices.GetRequiredService(); if (!dbFactory.Configured) { - dbFactory.Configure(db.ConnectionString, Umbraco.Core.Constants.DatabaseProviders.SqlServer); + dbFactory.Configure(db.ConnectionString, Constants.DatabaseProviders.SqlServer); } // In the case that we've initialized the schema, it means that we are installed so we'll want to ensure that diff --git a/src/Umbraco.Tests.Integration/Extensions/ServiceCollectionExtensions.cs b/src/Umbraco.Tests.Integration/Extensions/ServiceCollectionExtensions.cs index fabb3e9da0..dc58d3e9e6 100644 --- a/src/Umbraco.Tests.Integration/Extensions/ServiceCollectionExtensions.cs +++ b/src/Umbraco.Tests.Integration/Extensions/ServiceCollectionExtensions.cs @@ -2,7 +2,6 @@ using Microsoft.AspNetCore.Http; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; -using Umbraco.Core.Composing; using Umbraco.Tests.Integration.Implementations; namespace Umbraco.Tests.Integration.Extensions diff --git a/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs b/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs index eb96ca01a8..8a660b490b 100644 --- a/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs +++ b/src/Umbraco.Tests.Integration/Implementations/TestHelper.cs @@ -17,8 +17,6 @@ using Umbraco.Net; using Umbraco.Core.Persistence; using Umbraco.Core.Runtime; using Umbraco.Tests.Common; -using Umbraco.Web.BackOffice; -using Umbraco.Web.BackOffice.AspNetCore; using Umbraco.Web.Common.AspNetCore; using IHostingEnvironment = Umbraco.Core.Hosting.IHostingEnvironment; @@ -43,7 +41,8 @@ namespace Umbraco.Tests.Integration.Implementations var hostEnvironment = new Mock(); hostEnvironment.Setup(x => x.ApplicationName).Returns("UmbracoIntegrationTests"); - hostEnvironment.Setup(x => x.ContentRootPath).Returns(() => Assembly.GetExecutingAssembly().GetRootDirectorySafe()); + hostEnvironment.Setup(x => x.ContentRootPath) + .Returns(() => Assembly.GetExecutingAssembly().GetRootDirectorySafe()); hostEnvironment.Setup(x => x.WebRootPath).Returns(() => WorkingDirectory); _hostEnvironment = hostEnvironment.Object; @@ -79,9 +78,11 @@ namespace Umbraco.Tests.Integration.Implementations } } - public IUmbracoBootPermissionChecker UmbracoBootPermissionChecker { get; } = new TestUmbracoBootPermissionChecker(); + public IUmbracoBootPermissionChecker UmbracoBootPermissionChecker { get; } = + new TestUmbracoBootPermissionChecker(); - public AppCaches AppCaches { get; } = new AppCaches(NoAppCache.Instance, NoAppCache.Instance, new IsolatedCaches(type => NoAppCache.Instance)); + public AppCaches AppCaches { get; } = new AppCaches(NoAppCache.Instance, NoAppCache.Instance, + new IsolatedCaches(type => NoAppCache.Instance)); public IProfilingLogger Logger { get; private set; } @@ -91,7 +92,8 @@ namespace Umbraco.Tests.Integration.Implementations public IWebHostEnvironment GetWebHostEnvironment() => _hostEnvironment; - public override IDbProviderFactoryCreator DbProviderFactoryCreator => new SqlServerDbProviderFactoryCreator(Constants.DbProviderNames.SqlServer, DbProviderFactories.GetFactory); + public override IDbProviderFactoryCreator DbProviderFactoryCreator => + new SqlServerDbProviderFactoryCreator(Constants.DbProviderNames.SqlServer, DbProviderFactories.GetFactory); public override IBulkSqlInsertProvider BulkSqlInsertProvider => new SqlServerBulkSqlInsertProvider(); @@ -100,7 +102,8 @@ namespace Umbraco.Tests.Integration.Implementations public override IBackOfficeInfo GetBackOfficeInfo() { if (_backOfficeInfo == null) - _backOfficeInfo = new AspNetCoreBackOfficeInfo(SettingsForTests.GetDefaultGlobalSettings(GetUmbracoVersion())); + _backOfficeInfo = + new AspNetCoreBackOfficeInfo(SettingsForTests.GetDefaultGlobalSettings(GetUmbracoVersion())); return _backOfficeInfo; } @@ -113,5 +116,22 @@ namespace Umbraco.Tests.Integration.Implementations public override IIpResolver GetIpResolver() => _ipResolver; + /// + /// Some test files are copied to the /bin (/bin/debug) on build, this is a utility to return their physical path based on a virtual path name + /// + /// + /// + public override string MapPathForTestFiles(string relativePath) + { + if (!relativePath.StartsWith("~/")) + throw new ArgumentException("relativePath must start with '~/'", nameof(relativePath)); + + var codeBase = typeof(TestHelperBase).Assembly.CodeBase; + var uri = new Uri(codeBase); + var path = uri.LocalPath; + var bin = Path.GetDirectoryName(path); + + return relativePath.Replace("~/", bin + "/"); + } } } diff --git a/src/Umbraco.Tests.Integration/Implementations/TestHostingEnvironment.cs b/src/Umbraco.Tests.Integration/Implementations/TestHostingEnvironment.cs index 6430291bc2..e35d9e0b30 100644 --- a/src/Umbraco.Tests.Integration/Implementations/TestHostingEnvironment.cs +++ b/src/Umbraco.Tests.Integration/Implementations/TestHostingEnvironment.cs @@ -1,12 +1,12 @@ using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Http; using Umbraco.Core.Configuration; using Umbraco.Web.Common.AspNetCore; +using IHostingEnvironment = Umbraco.Core.Hosting.IHostingEnvironment; namespace Umbraco.Tests.Integration.Implementations { - public class TestHostingEnvironment : AspNetCoreHostingEnvironment, Umbraco.Core.Hosting.IHostingEnvironment + public class TestHostingEnvironment : AspNetCoreHostingEnvironment, IHostingEnvironment { public TestHostingEnvironment(IHostingSettings hostingSettings, IWebHostEnvironment webHostEnvironment) : base(hostingSettings, webHostEnvironment) @@ -19,6 +19,6 @@ namespace Umbraco.Tests.Integration.Implementations /// /// This is specifically used by IOHelper and we want this to return false so that the root path is manually calcualted which is what we want for tests. /// - bool Umbraco.Core.Hosting.IHostingEnvironment.IsHosted { get; } = false; + bool IHostingEnvironment.IsHosted { get; } = false; } } diff --git a/src/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs b/src/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs index de7f9b14bb..f8695afddb 100644 --- a/src/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs +++ b/src/Umbraco.Tests.Integration/Testing/LocalDbTestDatabase.cs @@ -12,7 +12,6 @@ using Umbraco.Core.Configuration; using Umbraco.Core.Logging; using Umbraco.Core.Migrations.Install; using Umbraco.Core.Persistence; -using Umbraco.Web.Common.RuntimeMinification; namespace Umbraco.Tests.Integration.Testing { @@ -122,7 +121,7 @@ namespace Umbraco.Tests.Integration.Testing } else { - _dbFactory.Configure(conn.ConnectionString, Umbraco.Core.Constants.DatabaseProviders.SqlServer); + _dbFactory.Configure(conn.ConnectionString, Constants.DatabaseProviders.SqlServer); using var database = (UmbracoDatabase)_dbFactory.CreateDatabase(); // track each db command ran as part of creating the database so we can replay these diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.config b/src/Umbraco.Tests.Integration/Umbraco.Configuration/Configurations/umbracoSettings.config similarity index 100% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.config rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/Configurations/umbracoSettings.config diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.minimal.config b/src/Umbraco.Tests.Integration/Umbraco.Configuration/Configurations/umbracoSettings.minimal.config similarity index 100% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/umbracoSettings.minimal.config rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/Configurations/umbracoSettings.minimal.config diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/web.config b/src/Umbraco.Tests.Integration/Umbraco.Configuration/Configurations/web.config similarity index 100% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/web.config rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/Configurations/web.config diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs similarity index 95% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs index 40a8558450..6fb4aac460 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs @@ -1,7 +1,7 @@ using System.Linq; using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class ContentElementDefaultTests : ContentElementTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs similarity index 98% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs index b5944ed222..5c9c457993 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs @@ -6,7 +6,7 @@ using Umbraco.Core; using Umbraco.Core.Configuration.UmbracoSettings; using Umbraco.Core.Macros; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class ContentElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs similarity index 83% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs index dbe4409985..d4681e9896 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class LoggingElementDefaultTests : LoggingElementTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs similarity index 77% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs index 92e24796cb..3fd8041540 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class LoggingElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs similarity index 76% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs index c62575e044..55c1c02bf2 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class RequestHandlerElementDefaultTests : RequestHandlerElementTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs similarity index 94% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs index 3bd2a17106..01a2b48e16 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementTests.cs @@ -2,7 +2,7 @@ using NUnit.Framework; using Umbraco.Core; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class RequestHandlerElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs similarity index 75% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs index 369b8d6428..e180aec496 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class SecurityElementDefaultTests : SecurityElementTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs similarity index 97% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs index 061d7e93f4..6255bfa790 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class SecurityElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs similarity index 85% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs index 7851b3a909..e869a972f5 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/UmbracoSettingsTests.cs @@ -4,9 +4,9 @@ using System.IO; using NUnit.Framework; using Umbraco.Core.Configuration; using Umbraco.Core.Configuration.UmbracoSettings; -using Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Helpers; +using Umbraco.Tests.Integration.Implementations; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { public abstract class UmbracoSettingsTests { @@ -15,7 +15,8 @@ namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings [SetUp] public void Init() { - var config = new FileInfo(TestHelper.MapPathForTestFiles("~/Umbraco.Configuration/UmbracoSettings/web.config")); + var testHelper = new TestHelper(); + var config = new FileInfo(testHelper.MapPathForTestFiles("~/Umbraco.Configuration/Configurations/web.config")); var fileMap = new ExeConfigurationFileMap() { ExeConfigFilename = config.FullName }; var configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs similarity index 93% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs index 5c8a8f9597..932b0e22e3 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class WebRoutingElementDefaultTests : WebRoutingElementTests diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs similarity index 89% rename from src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs rename to src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs index c5222b5f13..532b27494f 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementTests.cs @@ -1,6 +1,6 @@ using NUnit.Framework; -namespace Umbraco.Tests.UnitTests.Umbraco.Configuration.UmbracoSettings +namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class WebRoutingElementTests : UmbracoSettingsTests diff --git a/src/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj b/src/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj index 1ad1b73b42..e203d378ef 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj +++ b/src/Umbraco.Tests.Integration/Umbraco.Tests.Integration.csproj @@ -32,4 +32,16 @@ + + + Always + + + Always + + + Always + + + From 3e7404eab0cfd1f32e533fff4dc7f0bc38f4b478 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Wed, 15 Apr 2020 15:30:26 +0100 Subject: [PATCH 3/6] Auto property for default settings. We needed the defaults for testing, but removed comment re appveyor because these tests failed on my local too, since these were not being set accurately as the default settings had no whitelist and therefore the logic was altered from false to true. Write to TestContext not debug. --- .../ContentElementDefaultTests.cs | 39 ++++++++++++++++--- .../UmbracoSettings/ContentElementTests.cs | 25 ++++++------ .../LoggingElementDefaultTests.cs | 5 +-- .../RequestHandlerElementDefaultTests.cs | 5 +-- .../SecurityElementDefaultTests.cs | 5 +-- .../WebRoutingElementDefaultTests.cs | 6 +-- 6 files changed, 49 insertions(+), 36 deletions(-) diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs index 6fb4aac460..432a466355 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs @@ -1,15 +1,15 @@ -using System.Linq; +using System; +using System.Linq; using NUnit.Framework; +using Umbraco.Core; +using Umbraco.Core.Configuration.UmbracoSettings; namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings { [TestFixture] public class ContentElementDefaultTests : ContentElementTests { - protected override bool TestingDefaults - { - get { return true; } - } + protected override bool TestingDefaults => true; [Test] public override void DisableHtmlEmail() @@ -36,5 +36,34 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings Assert.IsTrue(ContentSettings.ImageAutoFillProperties.ElementAt(0).ExtensionFieldAlias == "umbracoExtension"); } + /// + /// Whitelist is empty in default settings file and is not populated by default, but disallowed is empty and is populated by default + /// + /// + /// + [Test] + [TestCase("png", true)] + [TestCase("jpg", true)] + [TestCase("gif", true)] + [TestCase("bmp", true)] + [TestCase("php", true)] + [TestCase("ashx", false)] + [TestCase("config", false)] + public override void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) + { + TestContext.WriteLine("Extension being tested: {0}", extension); + TestContext.WriteLine("Expected IsAllowed?: {0}", expected); + TestContext.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); + TestContext.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); + + bool allowedContainsExtension = ContentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)); + bool disallowedContainsExtension = ContentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)); + + TestContext.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); + TestContext.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); + + Assert.AreEqual(expected, ContentSettings.IsFileAllowedForUpload(extension)); + } + } } diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs index 5c9c457993..7ac3130b1a 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs @@ -94,25 +94,22 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestCase("png", true)] [TestCase("jpg", true)] [TestCase("gif", true)] - // TODO: Why does it flip to TestingDefaults=true for these two tests on AppVeyor. WHY? - //[TestCase("bmp", false)] - //[TestCase("php", false)] + [TestCase("bmp", false)] + [TestCase("php", false)] [TestCase("ashx", false)] [TestCase("config", false)] - public void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) + public virtual void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) { - // Make really sure that defaults are NOT used - TestingDefaults = false; + Console.WriteLine("Extension being tested: {0}", extension); + Console.WriteLine("Expected IsAllowed?: {0}", expected); + Console.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); + Console.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); - Debug.WriteLine("Extension being tested", extension); - Debug.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); - Debug.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); + bool allowedContainsExtension = ContentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)); + bool disallowedContainsExtension = ContentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)); - var allowedContainsExtension = ContentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)); - var disallowedContainsExtension = ContentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)); - - Debug.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); - Debug.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); + Console.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); + Console.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); Assert.AreEqual(expected, ContentSettings.IsFileAllowedForUpload(extension)); } diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs index d4681e9896..084c649f11 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/LoggingElementDefaultTests.cs @@ -5,10 +5,7 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestFixture] public class LoggingElementDefaultTests : LoggingElementTests { - protected override bool TestingDefaults - { - get { return true; } - } + protected override bool TestingDefaults => true; [Test] public override void MaxLogAge() diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs index 55c1c02bf2..c2e21c5e2c 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/RequestHandlerElementDefaultTests.cs @@ -5,9 +5,6 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestFixture] public class RequestHandlerElementDefaultTests : RequestHandlerElementTests { - protected override bool TestingDefaults - { - get { return true; } - } + protected override bool TestingDefaults => true; } } diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs index e180aec496..f5566df5ed 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/SecurityElementDefaultTests.cs @@ -5,9 +5,6 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestFixture] public class SecurityElementDefaultTests : SecurityElementTests { - protected override bool TestingDefaults - { - get { return true; } - } + protected override bool TestingDefaults => true; } } diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs index 932b0e22e3..e85911d559 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/WebRoutingElementDefaultTests.cs @@ -5,11 +5,7 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestFixture] public class WebRoutingElementDefaultTests : WebRoutingElementTests { - - protected override bool TestingDefaults - { - get { return true; } - } + protected override bool TestingDefaults => true; [Test] public override void UrlProviderMode() From fcb24abb776099cb8fc12f1fd00f706f68cdd7c4 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Wed, 15 Apr 2020 15:33:37 +0100 Subject: [PATCH 4/6] Console.WriteLine as TestContext may not always work in all VS versions --- .../UmbracoSettings/ContentElementDefaultTests.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs index 432a466355..796c7efc1c 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs @@ -51,16 +51,16 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestCase("config", false)] public override void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) { - TestContext.WriteLine("Extension being tested: {0}", extension); - TestContext.WriteLine("Expected IsAllowed?: {0}", expected); - TestContext.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); - TestContext.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); + Console.WriteLine("Extension being tested: {0}", extension); + Console.WriteLine("Expected IsAllowed?: {0}", expected); + Console.WriteLine("AllowedUploadFiles: {0}", ContentSettings.AllowedUploadFiles); + Console.WriteLine("DisallowedUploadFiles: {0}", ContentSettings.DisallowedUploadFiles); bool allowedContainsExtension = ContentSettings.AllowedUploadFiles.Any(x => x.InvariantEquals(extension)); bool disallowedContainsExtension = ContentSettings.DisallowedUploadFiles.Any(x => x.InvariantEquals(extension)); - TestContext.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); - TestContext.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); + Console.WriteLine("AllowedContainsExtension: {0}", allowedContainsExtension); + Console.WriteLine("DisallowedContainsExtension: {0}", disallowedContainsExtension); Assert.AreEqual(expected, ContentSettings.IsFileAllowedForUpload(extension)); } From cc26a7e67bf53eceba92bcbf3b45946a35f33b35 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Wed, 15 Apr 2020 15:50:38 +0100 Subject: [PATCH 5/6] Removed unwanted references to old config and helper location --- .../Helpers/TestHelper.cs | 29 ------------------- .../Umbraco.Tests.UnitTests.csproj | 15 ---------- 2 files changed, 44 deletions(-) delete mode 100644 src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs deleted file mode 100644 index 790223deee..0000000000 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.Common/Helpers/TestHelper.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.IO; - -namespace Umbraco.Tests.UnitTests.Umbraco.Tests.Common.Helpers -{ - /// - /// Common helper properties and methods useful to testing - /// - public static class TestHelper - { - /// - /// Some test files are copied to the /bin (/bin/debug) on build, this is a utility to return their physical path based on a virtual path name - /// - /// - /// - public static string MapPathForTestFiles(string relativePath) - { - if (!relativePath.StartsWith("~/")) - throw new ArgumentException("relativePath must start with '~/'", nameof(relativePath)); - - var codeBase = typeof(TestHelper).Assembly.CodeBase; - var uri = new Uri(codeBase); - var path = uri.LocalPath; - var bin = Path.GetDirectoryName(path); - - return relativePath.Replace("~/", bin + "/"); - } - } -} diff --git a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj index d19e3d6f51..f60b400f3f 100644 --- a/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj +++ b/src/Umbraco.Tests.UnitTests/Umbraco.Tests.UnitTests.csproj @@ -28,19 +28,4 @@ - - - Always - Designer - - - Always - Designer - - - Always - Designer - - - From 8a7a0f65b1e6eafcb67286ad481a967e34662ca7 Mon Sep 17 00:00:00 2001 From: Emma Garland Date: Thu, 16 Apr 2020 14:37:06 +0100 Subject: [PATCH 6/6] Added new test case to show it working --- .../UmbracoSettings/ContentElementDefaultTests.cs | 1 + .../Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs | 1 + 2 files changed, 2 insertions(+) diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs index 796c7efc1c..436fb45377 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementDefaultTests.cs @@ -49,6 +49,7 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestCase("php", true)] [TestCase("ashx", false)] [TestCase("config", false)] + [TestCase("test", true)] public override void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) { Console.WriteLine("Extension being tested: {0}", extension); diff --git a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs index 7ac3130b1a..21fd59de3a 100644 --- a/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs +++ b/src/Umbraco.Tests.Integration/Umbraco.Configuration/UmbracoSettings/ContentElementTests.cs @@ -98,6 +98,7 @@ namespace Umbraco.Tests.Integration.Umbraco.Configuration.UmbracoSettings [TestCase("php", false)] [TestCase("ashx", false)] [TestCase("config", false)] + [TestCase("test", false)] public virtual void IsFileAllowedForUpload_WithWhitelist(string extension, bool expected) { Console.WriteLine("Extension being tested: {0}", extension);