Merge branch 'v9/dev' into v9/contrib
# Conflicts: # src/Umbraco.Infrastructure/HostedServices/RecurringHostedServiceBase.cs
This commit is contained in:
@@ -2,11 +2,13 @@ using System;
|
||||
using System.IO;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using NPoco;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Infrastructure.Migrations.Install;
|
||||
using Umbraco.Cms.Infrastructure.Persistence;
|
||||
@@ -67,7 +69,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
using (var database = UmbracoDatabaseFactory.CreateDatabase())
|
||||
using (var transaction = database.GetTransaction())
|
||||
{
|
||||
schemaHelper = new DatabaseSchemaCreator(database, Mock.Of<ILogger<DatabaseSchemaCreator>>(), NullLoggerFactory.Instance, new UmbracoVersion(), Mock.Of<IEventAggregator>());
|
||||
schemaHelper = new DatabaseSchemaCreator(database, Mock.Of<ILogger<DatabaseSchemaCreator>>(), NullLoggerFactory.Instance, new UmbracoVersion(), Mock.Of<IEventAggregator>(), Mock.Of<IOptionsMonitor<InstallDefaultDataSettings>>(x => x.CurrentValue == new InstallDefaultDataSettings()));
|
||||
schemaHelper.InitializeDatabaseSchema();
|
||||
transaction.Complete();
|
||||
}
|
||||
|
||||
@@ -10,9 +10,11 @@ using System.Diagnostics;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using Umbraco.Cms.Core;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Infrastructure.Migrations.Install;
|
||||
using Umbraco.Cms.Infrastructure.Persistence;
|
||||
@@ -137,7 +139,7 @@ namespace Umbraco.Cms.Tests.Integration.Testing
|
||||
|
||||
using (NPoco.ITransaction transaction = database.GetTransaction())
|
||||
{
|
||||
var schemaCreator = new DatabaseSchemaCreator(database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, new UmbracoVersion(), Mock.Of<IEventAggregator>());
|
||||
var schemaCreator = new DatabaseSchemaCreator(database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, new UmbracoVersion(), Mock.Of<IEventAggregator>(), Mock.Of<IOptionsMonitor<InstallDefaultDataSettings>>(x => x.CurrentValue == new InstallDefaultDataSettings()));
|
||||
schemaCreator.InitializeDatabaseSchema();
|
||||
|
||||
transaction.Complete();
|
||||
|
||||
@@ -6,9 +6,11 @@ using System.Linq;
|
||||
using System.Threading.Tasks;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Core.Migrations;
|
||||
using Umbraco.Cms.Core.Scoping;
|
||||
@@ -56,7 +58,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Migrations
|
||||
|
||||
upgrader.Execute(MigrationPlanExecutor, ScopeProvider, Mock.Of<IKeyValueService>());
|
||||
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, LoggerFactory.CreateLogger<DatabaseSchemaCreator>(), LoggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, LoggerFactory.CreateLogger<DatabaseSchemaCreator>(), LoggerFactory, UmbracoVersion, EventAggregator, Mock.Of<IOptionsMonitor<InstallDefaultDataSettings>>());
|
||||
bool exists = helper.TableExists("umbracoUser");
|
||||
Assert.IsTrue(exists);
|
||||
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Infrastructure.Migrations.Install;
|
||||
using Umbraco.Cms.Tests.Common.Testing;
|
||||
@@ -22,7 +25,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var schema = new DatabaseSchemaCreator(scope.Database, LoggerFactory.CreateLogger<DatabaseSchemaCreator>(), LoggerFactory, UmbracoVersion, EventAggregator);
|
||||
var schema = new DatabaseSchemaCreator(scope.Database, LoggerFactory.CreateLogger<DatabaseSchemaCreator>(), LoggerFactory, UmbracoVersion, EventAggregator, Mock.Of<IOptionsMonitor<InstallDefaultDataSettings>>(x => x.CurrentValue == new InstallDefaultDataSettings()));
|
||||
result = schema.ValidateSchema(DatabaseSchemaCreator.OrderedTables);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Microsoft.Extensions.Logging.Abstractions;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Events;
|
||||
using Umbraco.Cms.Core.Scoping;
|
||||
using Umbraco.Cms.Infrastructure.Migrations.Install;
|
||||
using Umbraco.Cms.Infrastructure.Persistence.Dtos;
|
||||
using Umbraco.Cms.Tests.Common.Testing;
|
||||
@@ -23,7 +27,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
|
||||
@@ -36,7 +40,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<AccessDto>();
|
||||
@@ -50,7 +54,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<AccessDto>();
|
||||
@@ -65,7 +69,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentType2ContentTypeDto>();
|
||||
@@ -79,7 +83,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -94,7 +98,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -108,7 +112,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -124,7 +128,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<DataTypeDto>();
|
||||
@@ -138,7 +142,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<DictionaryDto>();
|
||||
|
||||
@@ -151,7 +155,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<DictionaryDto>();
|
||||
helper.CreateTable<LanguageDto>();
|
||||
@@ -166,7 +170,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<TemplateDto>();
|
||||
@@ -180,7 +184,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -197,7 +201,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -213,7 +217,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<DomainDto>();
|
||||
@@ -227,7 +231,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<LogViewerQueryDto>();
|
||||
|
||||
@@ -240,7 +244,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<LanguageDto>();
|
||||
|
||||
@@ -253,7 +257,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<LogDto>();
|
||||
|
||||
@@ -266,7 +270,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<MacroDto>();
|
||||
|
||||
@@ -279,7 +283,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -295,7 +299,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -312,7 +316,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -327,7 +331,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -345,7 +349,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -362,7 +366,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -377,7 +381,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<RelationTypeDto>();
|
||||
@@ -392,7 +396,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<RelationTypeDto>();
|
||||
|
||||
@@ -405,7 +409,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<TagDto>();
|
||||
|
||||
@@ -418,7 +422,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<ContentTypeDto>();
|
||||
@@ -439,7 +443,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<UserDto>();
|
||||
|
||||
@@ -452,7 +456,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserGroupDto>();
|
||||
@@ -466,7 +470,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserDto>();
|
||||
@@ -480,7 +484,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserGroupDto>();
|
||||
@@ -495,7 +499,7 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
{
|
||||
using (var scope = ScopeProvider.CreateScope())
|
||||
{
|
||||
var helper = new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator);
|
||||
var helper = CreateDatabaseSchemaCreator(scope);
|
||||
|
||||
helper.CreateTable<NodeDto>();
|
||||
helper.CreateTable<UserGroupDto>();
|
||||
@@ -504,5 +508,8 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Persistence
|
||||
scope.Complete();
|
||||
}
|
||||
}
|
||||
|
||||
private DatabaseSchemaCreator CreateDatabaseSchemaCreator(IScope scope) =>
|
||||
new DatabaseSchemaCreator(scope.Database, _loggerFactory.CreateLogger<DatabaseSchemaCreator>(), _loggerFactory, UmbracoVersion, EventAggregator, Mock.Of<IOptionsMonitor<InstallDefaultDataSettings>>(x => x.CurrentValue == new InstallDefaultDataSettings()));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Threading;
|
||||
using Microsoft.Extensions.Logging;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
@@ -24,7 +23,8 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerTest)]
|
||||
public class MacroServiceTests : UmbracoIntegrationTest
|
||||
{
|
||||
private IMacroService MacroService => GetRequiredService<IMacroService>();
|
||||
[Obsolete("After merging IMacroWithAliasService interface with IMacroService in Umbraco 11, this should go back to just being GetRequiredService<IMacroService>()")]
|
||||
private IMacroWithAliasService MacroService => GetRequiredService<IMacroService>() as IMacroWithAliasService;
|
||||
|
||||
[SetUp]
|
||||
public void SetupTest()
|
||||
@@ -52,6 +52,19 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Infrastructure.Services
|
||||
Assert.AreEqual("Test1", macro.Name);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Get_By_Aliases()
|
||||
{
|
||||
// Act
|
||||
IEnumerable<IMacro> macros = MacroService.GetAll("test1", "test2");
|
||||
|
||||
// Assert
|
||||
Assert.IsNotNull(macros);
|
||||
Assert.AreEqual(2, macros.Count());
|
||||
Assert.AreEqual("Test1", macros.ToArray()[0].Name);
|
||||
Assert.AreEqual("Test2", macros.ToArray()[1].Name);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void Can_Get_All()
|
||||
{
|
||||
|
||||
@@ -12,6 +12,7 @@ using Umbraco.Cms.Core.Configuration.Models;
|
||||
using Umbraco.Cms.Core.Hosting;
|
||||
using Umbraco.Cms.Core.Security;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Infrastructure.Migrations.Install;
|
||||
using Umbraco.Cms.Web.BackOffice.Controllers;
|
||||
using Umbraco.Cms.Web.BackOffice.Install;
|
||||
using Umbraco.Cms.Web.BackOffice.Routing;
|
||||
@@ -34,7 +35,8 @@ namespace Umbraco.Cms.Tests.UnitTests.AutoFixture.Customizations
|
||||
.Customize(new ConstructorCustomization(typeof(MemberController), new GreedyConstructorQuery()))
|
||||
.Customize(new ConstructorCustomization(typeof(BackOfficeController), new GreedyConstructorQuery()))
|
||||
.Customize(new ConstructorCustomization(typeof(BackOfficeUserManager), new GreedyConstructorQuery()))
|
||||
.Customize(new ConstructorCustomization(typeof(MemberManager), new GreedyConstructorQuery()));
|
||||
.Customize(new ConstructorCustomization(typeof(MemberManager), new GreedyConstructorQuery()))
|
||||
.Customize(new ConstructorCustomization(typeof(DatabaseSchemaCreatorFactory), new GreedyConstructorQuery()));
|
||||
|
||||
// When requesting an IUserStore ensure we actually uses a IUserLockoutStore
|
||||
fixture.Customize<IUserStore<BackOfficeIdentityUser>>(cc => cc.FromFactory(Mock.Of<IUserLockoutStore<BackOfficeIdentityUser>>));
|
||||
|
||||
@@ -55,7 +55,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Components
|
||||
Mock.Of<IOptionsMonitor<ConnectionStrings>>(x => x.CurrentValue == connectionStrings),
|
||||
new MapperCollection(() => Enumerable.Empty<BaseMapper>()),
|
||||
TestHelper.DbProviderFactoryCreator,
|
||||
new DatabaseSchemaCreatorFactory(loggerFactory.CreateLogger<DatabaseSchemaCreator>(), loggerFactory, new UmbracoVersion(), Mock.Of<IEventAggregator>()),
|
||||
new DatabaseSchemaCreatorFactory(loggerFactory.CreateLogger<DatabaseSchemaCreator>(), loggerFactory, new UmbracoVersion(), Mock.Of<IEventAggregator>(), Mock.Of<IOptionsMonitor<InstallDefaultDataSettings>>()),
|
||||
mapperCollection);
|
||||
|
||||
var fs = new FileSystems(loggerFactory, IOHelper, Options.Create(globalSettings), Mock.Of<IHostingEnvironment>());
|
||||
|
||||
@@ -1,10 +1,14 @@
|
||||
// Copyright (c) Umbraco.
|
||||
// See LICENSE for more details.
|
||||
|
||||
using System;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Configuration;
|
||||
using Umbraco.Cms.Core.Security;
|
||||
using Umbraco.Extensions;
|
||||
using Constants = Umbraco.Cms.Core.Constants;
|
||||
|
||||
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Security
|
||||
@@ -15,7 +19,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Security
|
||||
[Test]
|
||||
public void Check_Password_Hashed_Non_KeyedHashAlgorithm()
|
||||
{
|
||||
IPasswordConfiguration passwordConfiguration = Mock.Of<IPasswordConfiguration>(x => x.HashAlgorithmType == "SHA256");
|
||||
IPasswordConfiguration passwordConfiguration = Mock.Of<IPasswordConfiguration>(x => x.HashAlgorithmType == "SHA1");
|
||||
var passwordSecurity = new LegacyPasswordSecurity();
|
||||
|
||||
var pass = "ThisIsAHashedPassword";
|
||||
@@ -45,14 +49,12 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Core.Security
|
||||
[Test]
|
||||
public void Check_Password_Legacy_v4_SHA1()
|
||||
{
|
||||
IPasswordConfiguration passwordConfiguration = Mock.Of<IPasswordConfiguration>(x => x.HashAlgorithmType == Constants.Security.AspNetUmbraco4PasswordHashAlgorithmName);
|
||||
var passwordSecurity = new LegacyPasswordSecurity();
|
||||
const string clearText = "ThisIsAHashedPassword";
|
||||
var clearTextUnicodeBytes = Encoding.Unicode.GetBytes(clearText);
|
||||
using var algorithm = new HMACSHA1(clearTextUnicodeBytes);
|
||||
var dbPassword = Convert.ToBase64String(algorithm.ComputeHash(clearTextUnicodeBytes));
|
||||
|
||||
var pass = "ThisIsAHashedPassword";
|
||||
var hashed = passwordSecurity.HashNewPassword(passwordConfiguration.HashAlgorithmType, pass, out string salt);
|
||||
var storedPassword = passwordSecurity.FormatPasswordForStorage(passwordConfiguration.HashAlgorithmType, hashed, salt);
|
||||
|
||||
var result = passwordSecurity.VerifyPassword(passwordConfiguration.HashAlgorithmType, "ThisIsAHashedPassword", storedPassword);
|
||||
var result = new LegacyPasswordSecurity().VerifyLegacyHashedPassword(clearText, dbPassword);
|
||||
|
||||
Assert.IsTrue(result);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,127 @@
|
||||
using System;
|
||||
using System.Security.Cryptography;
|
||||
using System.Text;
|
||||
using AutoFixture.NUnit3;
|
||||
using Microsoft.AspNetCore.Identity;
|
||||
using Microsoft.Extensions.Options;
|
||||
using Moq;
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Models.Membership;
|
||||
using Umbraco.Cms.Core.Security;
|
||||
using Umbraco.Cms.Core.Serialization;
|
||||
using Umbraco.Cms.Tests.UnitTests.AutoFixture;
|
||||
|
||||
namespace Umbraco.Cms.Tests.UnitTests.Umbraco.Infrastructure.Security
|
||||
{
|
||||
[TestFixture]
|
||||
public class UmbracoPasswordHasherTests
|
||||
{
|
||||
// Technically MD5, HMACSHA384 & HMACSHA512 were also possible but opt in as opposed to historic defaults.
|
||||
[Test]
|
||||
[InlineAutoMoqData("HMACSHA256", "Umbraco9Rocks!", "uB/pLEhhe1W7EtWMv/pSgg==1y8+aso9+h3AKRtJXlVYeg2TZKJUr64hccj82ZZ7Ksk=")] // Actually HMACSHA256
|
||||
[InlineAutoMoqData("SHA1", "Umbraco9Rocks!", "6tZGfG9NTxJJYp19Fac9og==zzRggqANxhb+CbD/VabEt8cIde8=")] // When SHA1 is set on machine key.
|
||||
public void VerifyHashedPassword_ValidHashWithoutLegacyEncoding_ReturnsSuccessRehashNeeded(
|
||||
string algorithm,
|
||||
string providedPassword,
|
||||
string hashedPassword,
|
||||
[Frozen] IJsonSerializer jsonSerializer,
|
||||
TestUserStub aUser,
|
||||
UmbracoPasswordHasher<TestUserStub> sut)
|
||||
{
|
||||
Mock.Get(jsonSerializer)
|
||||
.Setup(x => x.Deserialize<PersistedPasswordSettings>(It.IsAny<string>()))
|
||||
.Returns(new PersistedPasswordSettings{ HashAlgorithm = algorithm });
|
||||
|
||||
var result = sut.VerifyHashedPassword(aUser, hashedPassword, providedPassword);
|
||||
|
||||
Assert.AreEqual(PasswordVerificationResult.SuccessRehashNeeded, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[InlineAutoMoqData("HMACSHA1", "Umbraco9Rocks!", "t0U8atXTX/efNCtTafukwZeIpr8=")]
|
||||
[InlineAutoMoqData("HMACSHA256", "Umbraco9Rocks!", "t0U8atXTX/efNCtTafukwZeIpr8=")]
|
||||
[InlineAutoMoqData("FOOBARBAZQUX", "Umbraco9Rocks!", "t0U8atXTX/efNCtTafukwZeIpr8=")]
|
||||
[InlineAutoMoqData("", "Umbraco9Rocks!", "t0U8atXTX/efNCtTafukwZeIpr8=")]
|
||||
[InlineAutoMoqData(null, "Umbraco9Rocks!", "t0U8atXTX/efNCtTafukwZeIpr8=")]
|
||||
public void VerifyHashedPassword_ValidHashWithLegacyEncoding_ReturnsSuccessRehashNeeded(
|
||||
string algorithm,
|
||||
string providedPassword,
|
||||
string hashedPassword,
|
||||
[Frozen] IJsonSerializer jsonSerializer,
|
||||
TestUserStub aUser,
|
||||
UmbracoPasswordHasher<TestUserStub> sut)
|
||||
{
|
||||
Mock.Get(jsonSerializer)
|
||||
.Setup(x => x.Deserialize<PersistedPasswordSettings>(It.IsAny<string>()))
|
||||
.Returns(new PersistedPasswordSettings { HashAlgorithm = algorithm });
|
||||
|
||||
var result = sut.VerifyHashedPassword(aUser, hashedPassword, providedPassword);
|
||||
|
||||
Assert.AreEqual(PasswordVerificationResult.SuccessRehashNeeded, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[InlineAutoMoqData("HMACSHA256", "Umbraco9Rocks!", "aB/cDeFaBcDefAbcD/EfaB==1y8+aso9+h3AKRtJXlVYeg2TZKJUr64hccj82ZZ7Ksk=")]
|
||||
public void VerifyHashedPassword_WithIncorrectPassword_ReturnsFailed(
|
||||
string algorithm,
|
||||
string providedPassword,
|
||||
string hashedPassword,
|
||||
[Frozen] IJsonSerializer jsonSerializer,
|
||||
TestUserStub aUser,
|
||||
UmbracoPasswordHasher<TestUserStub> sut)
|
||||
{
|
||||
Mock.Get(jsonSerializer)
|
||||
.Setup(x => x.Deserialize<PersistedPasswordSettings>(It.IsAny<string>()))
|
||||
.Returns(new PersistedPasswordSettings { HashAlgorithm = algorithm });
|
||||
|
||||
var result = sut.VerifyHashedPassword(aUser, hashedPassword, providedPassword);
|
||||
|
||||
Assert.AreEqual(PasswordVerificationResult.Failed, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[AutoMoqData]
|
||||
public void VerifyHashedPassword_WithIdentityV1OrV2StyleHash_ReturnsSuccessRehashNeeded(
|
||||
TestUserStub aUser,
|
||||
UmbracoPasswordHasher<TestUserStub> sut)
|
||||
{
|
||||
var options = Options.Create(new PasswordHasherOptions
|
||||
{
|
||||
CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2
|
||||
});
|
||||
|
||||
var upstreamHasher = new PasswordHasher<TestUserStub>(options);
|
||||
|
||||
const string password = "Umbraco9Rocks!";
|
||||
var identityV1Or2StyleHash = upstreamHasher.HashPassword(aUser, password);
|
||||
var result = sut.VerifyHashedPassword(aUser, identityV1Or2StyleHash, password);
|
||||
|
||||
Assert.AreEqual(PasswordVerificationResult.SuccessRehashNeeded, result);
|
||||
}
|
||||
|
||||
[Test]
|
||||
[AutoMoqData]
|
||||
public void VerifyHashedPassword_WithIdentityV3StyleHash_ReturnsSuccess(
|
||||
TestUserStub aUser,
|
||||
UmbracoPasswordHasher<TestUserStub> sut)
|
||||
{
|
||||
var options = Options.Create(new PasswordHasherOptions
|
||||
{
|
||||
CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV3
|
||||
});
|
||||
|
||||
var upstreamHasher = new PasswordHasher<TestUserStub>(options);
|
||||
|
||||
const string password = "Umbraco9Rocks!";
|
||||
var identityV1Or2StyleHash = upstreamHasher.HashPassword(aUser, password);
|
||||
var result = sut.VerifyHashedPassword(aUser, identityV1Or2StyleHash, password);
|
||||
|
||||
Assert.AreEqual(PasswordVerificationResult.Success, result);
|
||||
}
|
||||
|
||||
public class TestUserStub : UmbracoIdentityUser
|
||||
{
|
||||
public TestUserStub() => PasswordConfig = "not null or empty";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -323,6 +323,7 @@ namespace Umbraco.Cms.Tests.UnitTests.Umbraco.PublishedCache.NuCache
|
||||
}
|
||||
|
||||
[Test]
|
||||
[Retry(5)] // TODO make this test non-flaky.
|
||||
public async Task EventuallyCollectNulls()
|
||||
{
|
||||
var d = new SnapDictionary<int, string>();
|
||||
|
||||
Reference in New Issue
Block a user