Files
Umbraco-CMS/tests/Umbraco.Tests/PublishedContent/PublishedContentExtensionTests.cs

105 lines
4.0 KiB
C#
Raw Normal View History

2018-06-29 19:52:40 +02:00
using System.Collections.Generic;
using NUnit.Framework;
using Umbraco.Cms.Core.Models;
using Umbraco.Cms.Core.Models.PublishedContent;
using Umbraco.Cms.Core.Web;
using Umbraco.Cms.Tests.Common.Testing;
using Umbraco.Extensions;
2018-06-29 19:52:40 +02:00
using Umbraco.Tests.Testing;
namespace Umbraco.Tests.PublishedContent
{
[TestFixture]
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerFixture)]
public class PublishedContentExtensionTests : PublishedContentTestBase
{
2020-02-09 18:53:37 +01:00
private IUmbracoContext _ctx;
2018-06-29 19:52:40 +02:00
private string _xmlContent = "";
private bool _createContentTypes = true;
private Dictionary<string, PublishedContentType> _contentTypes;
protected override string GetXmlContent(int templateId)
{
return _xmlContent;
}
[Test]
public void IsDocumentType_NonRecursive_ActualType_ReturnsTrue()
{
InitializeInheritedContentTypes();
var publishedContent = _ctx.Content.GetById(1100);
2018-06-29 19:52:40 +02:00
Assert.That(publishedContent.IsDocumentType("inherited", false));
}
[Test]
public void IsDocumentType_NonRecursive_BaseType_ReturnsFalse()
{
InitializeInheritedContentTypes();
var publishedContent = _ctx.Content.GetById(1100);
2018-06-29 19:52:40 +02:00
Assert.That(publishedContent.IsDocumentType("base", false), Is.False);
}
[Test]
public void IsDocumentType_Recursive_ActualType_ReturnsTrue()
{
InitializeInheritedContentTypes();
var publishedContent = _ctx.Content.GetById(1100);
2018-06-29 19:52:40 +02:00
Assert.That(publishedContent.IsDocumentType("inherited", true));
}
[Test]
public void IsDocumentType_Recursive_BaseType_ReturnsTrue()
{
InitializeInheritedContentTypes();
ContentTypesCache.GetPublishedContentTypeByAlias = null;
var publishedContent = _ctx.Content.GetById(1100);
2018-06-29 19:52:40 +02:00
Assert.That(publishedContent.IsDocumentType("base", true));
}
[Test]
public void IsDocumentType_Recursive_InvalidBaseType_ReturnsFalse()
{
InitializeInheritedContentTypes();
var publishedContent = _ctx.Content.GetById(1100);
2018-06-29 19:52:40 +02:00
Assert.That(publishedContent.IsDocumentType("invalidbase", true), Is.False);
}
private void InitializeInheritedContentTypes()
{
_ctx = GetUmbracoContext("/", 1, null, true);
if (_createContentTypes)
{
var contentTypeService = ServiceContext.ContentTypeService;
var baseType = new ContentType(ShortStringHelper, -1) { Alias = "base", Name = "Base" };
2018-06-29 19:52:40 +02:00
const string contentTypeAlias = "inherited";
var inheritedType = new ContentType(ShortStringHelper, baseType, contentTypeAlias) { Alias = contentTypeAlias, Name = "Inherited" };
2018-06-29 19:52:40 +02:00
contentTypeService.Save(baseType);
contentTypeService.Save(inheritedType);
_contentTypes = new Dictionary<string, PublishedContentType>
{
{ baseType.Alias, new PublishedContentType(baseType, null) },
{ inheritedType.Alias, new PublishedContentType(inheritedType, null) }
};
ContentTypesCache.GetPublishedContentTypeByAlias = alias => _contentTypes[alias];
_createContentTypes = false;
}
ContentTypesCache.GetPublishedContentTypeByAlias = alias => _contentTypes[alias];
_xmlContent = @"<?xml version=""1.0"" encoding=""utf-8""?>
<!DOCTYPE root[
<!ELEMENT inherited ANY>
<!ATTLIST inherited id ID #REQUIRED>
]>
<root id=""-1"">
<inherited id=""1100"" parentID=""-1"" level=""1"" writerID=""0"" creatorID=""0"" nodeType=""1044"" template=""1"" sortOrder=""1"" createDate=""2012-06-12T14:13:17"" updateDate=""2012-07-20T18:50:43"" nodeName=""Home"" urlName=""home"" writerName=""admin"" creatorName=""admin"" path=""-1,1046"" isDoc=""""/>
</root>";
}
}
}