From fd3540f92da009e7c638163fa50d4929e3723ba8 Mon Sep 17 00:00:00 2001 From: Shannon Deminick Date: Wed, 3 Apr 2013 20:40:06 +0600 Subject: [PATCH 1/2] Removes unused private method --- src/Umbraco.Web/umbraco.presentation/content.cs | 17 ++--------------- 1 file changed, 2 insertions(+), 15 deletions(-) diff --git a/src/Umbraco.Web/umbraco.presentation/content.cs b/src/Umbraco.Web/umbraco.presentation/content.cs index dea4b544d0..0bfdf43767 100644 --- a/src/Umbraco.Web/umbraco.presentation/content.cs +++ b/src/Umbraco.Web/umbraco.presentation/content.cs @@ -558,12 +558,12 @@ namespace umbraco Action.RunActionHandlers(d, ActionPublish.Instance); } } - - [Obsolete("Method obsolete in version 4.1 and later, please use UpdateDocumentCache", true)] + /// /// Updates the document cache async. /// /// The document id. + [Obsolete("Method obsolete in version 4.1 and later, please use UpdateDocumentCache", true)] public virtual void UpdateDocumentCacheAsync(int documentId) { ThreadPool.QueueUserWorkItem(delegate { UpdateDocumentCache(documentId); }); @@ -977,19 +977,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 /// From e207b1f1e161758010dfcd59f237d31e68e67c2b Mon Sep 17 00:00:00 2001 From: Morten Christensen Date: Wed, 3 Apr 2013 18:26:54 -0200 Subject: [PATCH 2/2] Adds new test case for single doc type imports. Corrects issue with installing/importing single or multiple doc types, which is not part of the usual complete package xml. --- .../Importing/ImportResources.Designer.cs | 28 +++++++++++++++ .../Services/Importing/ImportResources.resx | 3 ++ .../Services/Importing/PackageImportTests.cs | 17 ++++++++++ .../Services/Importing/SingleDocType.xml | 34 +++++++++++++++++++ src/Umbraco.Tests/Umbraco.Tests.csproj | 1 + .../businesslogic/Packager/Installer.cs | 13 +++++-- 6 files changed, 94 insertions(+), 2 deletions(-) create mode 100644 src/Umbraco.Tests/Services/Importing/SingleDocType.xml 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 + 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 ad98224325..5d4b8e86fe 100644 --- a/src/Umbraco.Tests/Umbraco.Tests.csproj +++ b/src/Umbraco.Tests/Umbraco.Tests.csproj @@ -426,6 +426,7 @@ + Designer diff --git a/src/umbraco.cms/businesslogic/Packager/Installer.cs b/src/umbraco.cms/businesslogic/Packager/Installer.cs index 7d8503073e..6d355dbfd2 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);