diff --git a/src/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs b/src/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs index e2e1b91087..8d004e33f0 100644 --- a/src/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs +++ b/src/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using NUnit.Framework; using Umbraco.Core.Models; +using Umbraco.Core.Models.PublishedContent; using Umbraco.Tests.TestHelpers; using Umbraco.Web; @@ -16,8 +17,16 @@ namespace Umbraco.Tests.PublishedContent private UmbracoContext ctx; private string xmlContent = ""; private bool createContentTypes = true; - - protected override string GetXmlContent(int templateId) + + public override void Initialize() + { + base.Initialize(); + + // make sure we get them from the content service + PublishedContentType.GetPublishedContentTypeCallback = null; + } + + protected override string GetXmlContent(int templateId) { return xmlContent; } @@ -57,7 +66,7 @@ namespace Umbraco.Tests.PublishedContent var publishedContent = ctx.ContentCache.GetById(1100); Assert.That(publishedContent.IsDocumentType("base", true)); } - + [Test] public void IsDocumentType_Recursive_InvalidBaseType_ReturnsFalse() { @@ -73,23 +82,23 @@ namespace Umbraco.Tests.PublishedContent if (createContentTypes) { var contentTypeService = ctx.Application.Services.ContentTypeService; - var baseType = new ContentType(-1) {Alias = "base", Name = "Base"}; + var baseType = new ContentType(-1) { Alias = "base", Name = "Base" }; const string contentTypeAlias = "inherited"; - var inheritedType = new ContentType(baseType, contentTypeAlias) {Alias = contentTypeAlias, Name = "Inherited"}; + var inheritedType = new ContentType(baseType, contentTypeAlias) { Alias = contentTypeAlias, Name = "Inherited" }; contentTypeService.Save(baseType); contentTypeService.Save(inheritedType); createContentTypes = false; } - #region setup xml content + xmlContent = @" - ]> "; - #endregion + } } } diff --git a/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs b/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs index aacb056346..7eb4442541 100644 --- a/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs +++ b/src/Umbraco.Tests/Scheduling/BackgroundTaskRunnerTests.cs @@ -15,7 +15,7 @@ namespace Umbraco.Tests.Scheduling [Timeout(30000)] public class BackgroundTaskRunnerTests { - private ILogger _logger; + private ILogger _logger; [TestFixtureSetUp] public void InitializeFixture() @@ -93,7 +93,7 @@ namespace Umbraco.Tests.Scheduling { runner.Add(new MyTask()); }); - } + } } [Test] @@ -242,7 +242,7 @@ namespace Umbraco.Tests.Scheduling } } - + [Test] public void Create_IsNotRunning() { @@ -252,16 +252,18 @@ namespace Umbraco.Tests.Scheduling } } - + [Test] public async void Create_AutoStart_IsRunning() { using (var runner = new BackgroundTaskRunner(new BackgroundTaskRunnerOptions { - AutoStart = true + AutoStart = true, + KeepAlive = true // else stops! }, _logger)) { Assert.IsTrue(runner.IsRunning); // because AutoStart is true + runner.Stop(false); // keepalive = must be stopped await runner.StoppedAwaitable; // runner stops, within test's timeout } } @@ -296,7 +298,7 @@ namespace Umbraco.Tests.Scheduling // so that we don't have a runaway task in tests, etc - but it does NOT terminate // the runner - it really is NOT a nice way to end a runner - it's there for tests } - + [Test] public void Startup_KeepAlive_IsRunning() { @@ -359,7 +361,7 @@ namespace Umbraco.Tests.Scheduling } } - + [Test] public async void WaitOnRunner_Tasks() { @@ -504,7 +506,7 @@ namespace Umbraco.Tests.Scheduling //wait till the thread is done await tManager.CurrentThreadingTask; - + foreach (var task in tasks) { Assert.IsTrue(task.Ended != default(DateTime)); @@ -516,7 +518,7 @@ namespace Umbraco.Tests.Scheduling } } - + [Test] public void RecurringTaskTest() { @@ -532,7 +534,7 @@ namespace Umbraco.Tests.Scheduling }; var task = new MyRecurringTask(runner, 200, 500); - + runner.Add(task); Assert.IsTrue(runner.IsRunning); // waiting on delay @@ -577,7 +579,7 @@ namespace Umbraco.Tests.Scheduling runner.Add(task); Assert.IsTrue(runner.IsRunning); Thread.Sleep(5000); - Assert.IsTrue(runner.IsRunning); // still waiting for the task to release + Assert.IsTrue(runner.IsRunning); // still waiting for the task to release Assert.IsFalse(task.HasRun); runner.Shutdown(false, false); await runner.StoppedAwaitable; // wait for the entire runner operation to complete @@ -585,7 +587,7 @@ namespace Umbraco.Tests.Scheduling } } - + [Test] public void LatchedRecurring() { @@ -842,7 +844,7 @@ namespace Umbraco.Tests.Scheduling } public override bool PerformRun() - { + { Thread.Sleep(_runMilliseconds); return true; // repeat } @@ -976,7 +978,7 @@ namespace Umbraco.Tests.Scheduling public virtual Task RunAsync(CancellationToken token) { throw new NotImplementedException(); - //return Task.Delay(500); + //return Task.Delay(500); } public virtual bool IsAsync diff --git a/src/Umbraco.Web/PublishedContentExtensions.cs b/src/Umbraco.Web/PublishedContentExtensions.cs index 38666dadb9..213d46ceb7 100644 --- a/src/Umbraco.Web/PublishedContentExtensions.cs +++ b/src/Umbraco.Web/PublishedContentExtensions.cs @@ -639,23 +639,9 @@ namespace Umbraco.Web /// When true, recurses up the content type tree to check inheritance; when false just calls IsDocumentType(this IPublishedContent content, string docTypeAlias). /// True if the content is of the specified content type or a derived content type; otherwise false. public static bool IsDocumentType(this IPublishedContent content, string docTypeAlias, bool recursive) - { - if (content.IsDocumentType(docTypeAlias)) - return true; - - if (recursive) - return IsDocumentTypeRecursive(content, docTypeAlias); - return false; - } - - private static bool IsDocumentTypeRecursive(IPublishedContent content, string docTypeAlias) - { - var contentTypeService = UmbracoContext.Current.Application.Services.ContentTypeService; - var type = contentTypeService.GetContentType(content.DocumentTypeAlias); - if (type.Alias.InvariantEquals(docTypeAlias) || content.IsComposedOf(docTypeAlias)) - return true; - return false; - } + { + return content.DocumentTypeAlias.InvariantEquals(docTypeAlias) || (recursive && content.IsComposedOf(docTypeAlias)); + } public static bool IsNull(this IPublishedContent content, string alias, bool recurse) {