diff --git a/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs b/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
index a465d0762a..10e595e86f 100644
--- a/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
+++ b/src/Umbraco.Tests/Services/Importing/ImportResources.Designer.cs
@@ -85,6 +85,34 @@ namespace Umbraco.Tests.Services.Importing {
}
}
+ ///
+ /// Looks up a localized string similar to <?xml version="1.0" encoding="utf-8" ?>
+ ///<DocumentType>
+ /// <Info>
+ /// <Name>test</Name>
+ /// <Alias>test</Alias>
+ /// <Icon>folder.gif</Icon>
+ /// <Thumbnail>folder.png</Thumbnail>
+ /// <Description>
+ /// </Description>
+ /// <AllowAtRoot>False</AllowAtRoot>
+ /// <AllowedTemplates>
+ /// <Template>test</Template>
+ /// </AllowedTemplates>
+ /// <DefaultTemplate>test</DefaultTemplate>
+ /// </Info>
+ /// <Structure>
+ /// <DocumentType>test</DocumentType>
+ /// </Structure>
+ /// <GenericProperties>
+ /// <GenericProperty> [rest of string was truncated]";.
+ ///
+ internal static string SingleDocType {
+ get {
+ return ResourceManager.GetString("SingleDocType", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to <?xml version="1.0" encoding="UTF-8" standalone="no"?>
///<umbPackage>
diff --git a/src/Umbraco.Tests/Services/Importing/ImportResources.resx b/src/Umbraco.Tests/Services/Importing/ImportResources.resx
index cc7d59a7eb..d86d23cd49 100644
--- a/src/Umbraco.Tests/Services/Importing/ImportResources.resx
+++ b/src/Umbraco.Tests/Services/Importing/ImportResources.resx
@@ -130,4 +130,7 @@
xsltsearch-package.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
+ singledoctype.xml;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;utf-8
+
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs b/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
index 5dc1a697a2..60a74bb962 100644
--- a/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
+++ b/src/Umbraco.Tests/Services/Importing/PackageImportTests.cs
@@ -206,5 +206,22 @@ namespace Umbraco.Tests.Services.Importing
Assert.That(templates.Any(), Is.True);
Assert.That(templates.Count(), Is.EqualTo(numberOfTemplates));
}
+
+ [Test]
+ public void PackagingService_Can_Import_Single_DocTypr()
+ {
+ // Arrange
+ string strXml = ImportResources.SingleDocType;
+ var docTypeElement = XElement.Parse(strXml);
+ var packagingService = ServiceContext.PackagingService;
+
+ // Act
+ var contentTypes = packagingService.ImportContentTypes(docTypeElement);
+
+ // Assert
+ Assert.That(contentTypes.Any(), Is.True);
+ Assert.That(contentTypes.Any(x => x.HasIdentity == false), Is.False);
+ Assert.That(contentTypes.Count(), Is.EqualTo(1));
+ }
}
}
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Services/Importing/SingleDocType.xml b/src/Umbraco.Tests/Services/Importing/SingleDocType.xml
new file mode 100644
index 0000000000..7323520a70
--- /dev/null
+++ b/src/Umbraco.Tests/Services/Importing/SingleDocType.xml
@@ -0,0 +1,34 @@
+
+
+
+ test
+ test
+ folder.gif
+ folder.png
+
+
+ False
+
+ test
+
+ test
+
+
+ test
+
+
+
+ test
+ test
+ b4471851-82b6-4c75-afa4-39fa9c6a75e9
+ fbaf13a8-4036-41f2-93a3-974f678c312a
+
+
+ False
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/Umbraco.Tests/Umbraco.Tests.csproj b/src/Umbraco.Tests/Umbraco.Tests.csproj
index 5254f18d0f..15e93fd48c 100644
--- a/src/Umbraco.Tests/Umbraco.Tests.csproj
+++ b/src/Umbraco.Tests/Umbraco.Tests.csproj
@@ -490,6 +490,7 @@
+
Designer
diff --git a/src/Umbraco.Web/umbraco.presentation/content.cs b/src/Umbraco.Web/umbraco.presentation/content.cs
index 3117fee330..f8e56483ed 100644
--- a/src/Umbraco.Web/umbraco.presentation/content.cs
+++ b/src/Umbraco.Web/umbraco.presentation/content.cs
@@ -964,19 +964,6 @@ namespace umbraco
HttpContext.Current.Items.Remove(XmlContextContentItemKey);
}
- ///
- /// Invalidates the disk content cache file. Effectively just deletes it.
- ///
- [Obsolete("This method is obsolete in version 4.1 and above, please use DeleteXmlCache", true)]
- private void ClearDiskCacheAsync()
- {
- // Queue file deletion
- // We queue this function, because there can be a write process running at the same time
- // and we don't want this method to block web request
- ThreadPool.QueueUserWorkItem(
- delegate { DeleteXmlCache(); });
- }
-
///
/// Load content from either disk or database
///
diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs
index 9282dd97da..b3cf7688b5 100644
--- a/src/umbraco.cms/businesslogic/Packager/Installer.cs
+++ b/src/umbraco.cms/businesslogic/Packager/Installer.cs
@@ -421,7 +421,12 @@ namespace umbraco.cms.businesslogic.packager
#endregion
#region DocumentTypes
- var docTypeElement = rootElement.Descendants("DocumentTypes").FirstOrDefault();
+ //Check whether the root element is a doc type rather then a complete package
+ var docTypeElement = rootElement.Name.LocalName.Equals("DocumentType") ||
+ rootElement.Name.LocalName.Equals("DocumentTypes")
+ ? rootElement
+ : rootElement.Descendants("DocumentTypes").FirstOrDefault();
+
if (docTypeElement != null)
{
var contentTypes = packagingService.ImportContentTypes(docTypeElement, currentUser.Id);
@@ -692,7 +697,11 @@ namespace umbraco.cms.businesslogic.packager
#endregion
#region Install DocumentTypes
- var docTypeElement = rootElement.Descendants("DocumentTypes").FirstOrDefault();
+ //Check whether the root element is a doc type rather then a complete package
+ var docTypeElement = rootElement.Name.LocalName.Equals("DocumentType") ||
+ rootElement.Name.LocalName.Equals("DocumentTypes")
+ ? rootElement
+ : rootElement.Descendants("DocumentTypes").FirstOrDefault();
if (docTypeElement != null)
{
var contentTypes = packagingService.ImportContentTypes(docTypeElement, currentUser.Id);