From 7ec63ad491c0241982a7bdc6b665553fccb9711a Mon Sep 17 00:00:00 2001 From: Shannon Date: Sun, 20 Dec 2015 20:17:57 +0100 Subject: [PATCH] fixes some macro unit tests (some still need fixing though) --- .../Strings/ContentBaseExtensions.cs | 4 +- src/Umbraco.Tests/Macros/MacroTests.cs | 40 ++++++++----------- .../umbraco/webservices/Developer.asmx.cs | 1 - src/umbraco.cms/businesslogic/macro/Macro.cs | 14 +------ .../businesslogic/macro/MacroModel.cs | 6 +-- 5 files changed, 20 insertions(+), 45 deletions(-) diff --git a/src/Umbraco.Core/Strings/ContentBaseExtensions.cs b/src/Umbraco.Core/Strings/ContentBaseExtensions.cs index 8a8d69a7c7..29ef235f2b 100644 --- a/src/Umbraco.Core/Strings/ContentBaseExtensions.cs +++ b/src/Umbraco.Core/Strings/ContentBaseExtensions.cs @@ -23,7 +23,7 @@ namespace Umbraco.Core.Strings if (content == null) throw new ArgumentNullException("content"); if (urlSegmentProviders == null) throw new ArgumentNullException("urlSegmentProviders"); - var url = urlSegmentProviders.Select(p => p.GetUrlSegment(content)).First(u => u != null); + var url = urlSegmentProviders.Select(p => p.GetUrlSegment(content)).FirstOrDefault(u => u != null); url = url ?? new DefaultUrlSegmentProvider().GetUrlSegment(content); // be safe return url; } @@ -41,7 +41,7 @@ namespace Umbraco.Core.Strings if (culture == null) throw new ArgumentNullException("culture"); if (urlSegmentProviders == null) throw new ArgumentNullException("urlSegmentProviders"); - var url = urlSegmentProviders.Select(p => p.GetUrlSegment(content, culture)).First(u => u != null); + var url = urlSegmentProviders.Select(p => p.GetUrlSegment(content, culture)).FirstOrDefault(u => u != null); url = url ?? new DefaultUrlSegmentProvider().GetUrlSegment(content, culture); // be safe return url; } diff --git a/src/Umbraco.Tests/Macros/MacroTests.cs b/src/Umbraco.Tests/Macros/MacroTests.cs index 526d64cddb..9ab51b107b 100644 --- a/src/Umbraco.Tests/Macros/MacroTests.cs +++ b/src/Umbraco.Tests/Macros/MacroTests.cs @@ -78,38 +78,33 @@ namespace Umbraco.Tests.Macros Assert.AreEqual(converted.Result, prop.GetValue(ctrl)); } - [TestCase("text.xslt", "", "", "", "XSLT")] - [TestCase("", "razor-script.cshtml", "", "", "Script")] - [TestCase("", "~/Views/MacroPartials/test.cshtml", "", "", "PartialView")] - [TestCase("", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml", "", "", "PartialView")] - [TestCase("", "", "~/usercontrols/menu.ascx", "", "UserControl")] - [TestCase("", "", "~/usercontrols/Header.ASCX", "", "UserControl")] - [TestCase("", "", "MyNamespace.MyCustomControl", "MyAssembly", "CustomControl")] - [TestCase("", "", "", "", "Unknown")] - public void Determine_Macro_Type(string xslt, string scriptFile, string scriptType, string scriptAssembly, string expectedType) + [TestCase("text.xslt", "", "", "Xslt")] + [TestCase("", "~/Views/MacroPartials/test.cshtml", "", "PartialView")] + [TestCase("", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml", "", "PartialView")] + [TestCase("", "", "~/usercontrols/menu.ascx", "UserControl")] + [TestCase("", "", "~/usercontrols/Header.ASCX", "UserControl")] + [TestCase("", "", "", "Unknown")] + public void Determine_Macro_Type(string xslt, string scriptFile, string scriptType, string expectedType) { var expected = Enum.Parse(expectedType); Assert.AreEqual(expected, Macro.FindMacroType(xslt, scriptFile, scriptType)); } - [TestCase("text.xslt", "", "", "", "~/xslt/text.xslt")] - [TestCase("", "razor-script.cshtml", "", "", "~/macroScripts/razor-script.cshtml")] - [TestCase("", "~/Views/MacroPartials/test.cshtml", "", "", "~/Views/MacroPartials/test.cshtml")] - [TestCase("", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml", "", "", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml")] - [TestCase("", "", "~/usercontrols/menu.ascx", "", "~/usercontrols/menu.ascx")] - public void Get_Macro_File(string xslt, string scriptFile, string scriptType, string scriptAssembly, string expectedResult) + [TestCase("text.xslt", "", "", "~/xslt/text.xslt")] + [TestCase("", "razor-script.cshtml", "", "~/macroScripts/razor-script.cshtml")] + [TestCase("", "~/Views/MacroPartials/test.cshtml", "", "~/Views/MacroPartials/test.cshtml")] + [TestCase("", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml", "", "~/App_Plugins/MyPackage/Views/MacroPartials/test.cshtml")] + [TestCase("", "", "~/usercontrols/menu.ascx", "~/usercontrols/menu.ascx")] + public void Get_Macro_File(string xslt, string scriptFile, string scriptType, string expectedResult) { - var model = new MacroModel("Test", "test", scriptAssembly, scriptType, xslt, 0, false, false); + var model = new MacroModel("Test", "test", "", scriptType, xslt, 0, false, false); var file = macro.GetMacroFile(model); Assert.AreEqual(expectedResult, file); } - [TestCase("XSLT", true)] - [TestCase("Script", true)] + [TestCase("Xslt", true)] [TestCase("PartialView", true)] [TestCase("UserControl", true)] - [TestCase("CustomControl", false)] - [TestCase("Python", true)] [TestCase("Unknown", false)] public void Macro_Is_File_Based(string macroType, bool expectedResult) { @@ -119,12 +114,9 @@ namespace Umbraco.Tests.Macros Assert.AreEqual(expectedResult, macro.MacroIsFileBased(model)); } - [TestCase("XSLT", true)] - [TestCase("Script", true)] + [TestCase("Xslt", true)] [TestCase("PartialView", true)] [TestCase("UserControl", false)] - [TestCase("CustomControl", false)] - [TestCase("Python", true)] [TestCase("Unknown", false)] public void Can_Cache_As_String(string macroType, bool expectedResult) { diff --git a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs index c322068236..290850967a 100644 --- a/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs +++ b/src/Umbraco.Web/umbraco.presentation/umbraco/webservices/Developer.asmx.cs @@ -50,7 +50,6 @@ namespace umbraco.webservices macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "useInEditor", m.UseInEditor.ToString())); macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "alias", m.Alias)); macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "name", m.Name)); - macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "assembly", m.Assembly)); macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "type", m.Type)); macro.Attributes.Append(XmlHelper.AddAttribute(xmlDoc, "xslt", m.Xslt)); var properties = xmlDoc.CreateElement("properties"); diff --git a/src/umbraco.cms/businesslogic/macro/Macro.cs b/src/umbraco.cms/businesslogic/macro/Macro.cs index 64bbd6accf..a716c134a1 100644 --- a/src/umbraco.cms/businesslogic/macro/Macro.cs +++ b/src/umbraco.cms/businesslogic/macro/Macro.cs @@ -89,17 +89,6 @@ namespace umbraco.cms.businesslogic.macro set { MacroEntity.Name = value; } } - /// - /// If the macro is a wrapper for a custom control, this is the assemly name from which to load the macro - /// - /// specified like: /bin/mydll (without the .dll extension) - /// - public string Assembly - { - get { return MacroEntity.ControlAssembly; } - set { MacroEntity.ControlAssembly = value; } - } - /// /// The relative path to the usercontrol or the assembly type of the macro when using .Net custom controls /// @@ -268,13 +257,12 @@ namespace umbraco.cms.businesslogic.macro try { m.Alias = alias; - m.Assembly = XmlHelper.GetNodeValue(n.SelectSingleNode("scriptAssembly")); m.Type = XmlHelper.GetNodeValue(n.SelectSingleNode("scriptType")); m.Xslt = XmlHelper.GetNodeValue(n.SelectSingleNode("xslt")); m.RefreshRate = int.Parse(XmlHelper.GetNodeValue(n.SelectSingleNode("refreshRate"))); // we need to validate if the usercontrol is missing the tilde prefix requirement introduced in v6 - if (string.IsNullOrEmpty(m.Assembly) && string.IsNullOrEmpty(m.Type) == false && m.Type.StartsWith("~") == false) + if (string.IsNullOrEmpty(m.Type) == false && m.Type.StartsWith("~") == false) { m.Type = "~/" + m.Type; } diff --git a/src/umbraco.cms/businesslogic/macro/MacroModel.cs b/src/umbraco.cms/businesslogic/macro/MacroModel.cs index 3de5cd578a..2a619b7f5e 100644 --- a/src/umbraco.cms/businesslogic/macro/MacroModel.cs +++ b/src/umbraco.cms/businesslogic/macro/MacroModel.cs @@ -16,10 +16,7 @@ namespace umbraco.cms.businesslogic.macro public string Alias { get; set; } public string MacroControlIdentifier { get; set; } public MacroTypes MacroType { get; set; } - - [Obsolete("This is no longer used, we should remove it in v8, CustomControl macros are gone")] - public string TypeAssembly { get; set; } - + public string TypeName { get; set; } public string Xslt { get; set; } public string ScriptName { get; set; } @@ -49,7 +46,6 @@ namespace umbraco.cms.businesslogic.macro Id = m.Id; Name = m.Name; Alias = m.Alias; - TypeAssembly = m.Assembly; TypeName = m.Type; Xslt = m.Xslt; ScriptName = m.ScriptingFile;