Method renaming and zip allowed
This commit is contained in:
@@ -1,50 +1,50 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name="CopyUmbracoFilesToWebRoot" BeforeTargets="AfterBuild">
|
||||
<PropertyGroup>
|
||||
<UmbracoFilesFolder>$(MSBuildThisFileDirectory)..\UmbracoFiles\</UmbracoFilesFolder>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<UmbracoFiles Include="$(UmbracoFilesFolder)**\*" />
|
||||
</ItemGroup>
|
||||
<Copy SourceFiles="%(UmbracoFiles.FullPath)" DestinationFiles="%(RecursiveDir)%(Filename)%(Extension)" Condition="!Exists('%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
</Target>
|
||||
<Target Name="AddUmbracoFilesToOutput">
|
||||
<!-- With help from: http://blog.samstephens.co.nz/2010-10-18/msbuild-including-extra-files-multiple-builds/ -->
|
||||
<ItemGroup>
|
||||
<CustomFilesToInclude Include=".\App_Browsers\**\*">
|
||||
<Dir>App_Browsers</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\App_Code\**\*">
|
||||
<Dir>App_Code</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\App_Plugins\**\*">
|
||||
<Dir>App_Plugins</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\bin\amd64\**\*">
|
||||
<Dir>bin\amd64</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\bin\x86\**\*">
|
||||
<Dir>bin\x86</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\Config\Splashes\**\*">
|
||||
<Dir>Config\Splashes</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Target Name="CopyUmbracoFilesToWebRoot" BeforeTargets="AfterBuild">
|
||||
<PropertyGroup>
|
||||
<UmbracoFilesFolder>$(MSBuildThisFileDirectory)..\UmbracoFiles\</UmbracoFilesFolder>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<UmbracoFiles Include="$(UmbracoFilesFolder)**\*" />
|
||||
</ItemGroup>
|
||||
<Copy SourceFiles="%(UmbracoFiles.FullPath)" DestinationFiles="%(RecursiveDir)%(Filename)%(Extension)" Condition="!Exists('%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
</Target>
|
||||
<Target Name="AddUmbracoFilesToOutput">
|
||||
<!-- With help from: http://blog.samstephens.co.nz/2010-10-18/msbuild-including-extra-files-multiple-builds/ -->
|
||||
<ItemGroup>
|
||||
<CustomFilesToInclude Include=".\App_Browsers\**\*">
|
||||
<Dir>App_Browsers</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\App_Code\**\*">
|
||||
<Dir>App_Code</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\App_Plugins\**\*">
|
||||
<Dir>App_Plugins</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\bin\amd64\**\*">
|
||||
<Dir>bin\amd64</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\bin\x86\**\*">
|
||||
<Dir>bin\x86</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\Config\Splashes\**\*">
|
||||
<Dir>Config\Splashes</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\data\**\*">
|
||||
<Dir>data</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\umbraco\**\*">
|
||||
<Dir>umbraco</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\umbraco_client\**\*">
|
||||
<Dir>umbraco_client</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\Global.asax">
|
||||
<Dir>.</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<FilesForPackagingFromProject Include="@(CustomFilesToInclude)">
|
||||
<DestinationRelativePath>%(CustomFilesToInclude.Dir)\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
|
||||
</FilesForPackagingFromProject>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
<CustomFilesToInclude Include=".\umbraco\**\*">
|
||||
<Dir>umbraco</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\umbraco_client\**\*">
|
||||
<Dir>umbraco_client</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<CustomFilesToInclude Include=".\Global.asax">
|
||||
<Dir>.</Dir>
|
||||
</CustomFilesToInclude>
|
||||
<FilesForPackagingFromProject Include="@(CustomFilesToInclude)">
|
||||
<DestinationRelativePath>%(CustomFilesToInclude.Dir)\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
|
||||
</FilesForPackagingFromProject>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
</Project>
|
||||
@@ -1,56 +1,53 @@
|
||||
using System.Xml.Linq;
|
||||
|
||||
namespace Umbraco.Core
|
||||
{
|
||||
public static partial class Constants
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the constants used for Umbraco packages in the package.config xml
|
||||
/// </summary>
|
||||
public static class Packaging
|
||||
{
|
||||
public const string UmbPackageNodeName = "umbPackage";
|
||||
public const string DataTypesNodeName = "DataTypes";
|
||||
public const string PackageXmlFileName = "package.xml";
|
||||
public const string UmbracoPackageExtention = ".umb";
|
||||
public const string DataTypeNodeName = "DataType";
|
||||
public const string LanguagesNodeName = "Languages";
|
||||
public const string FilesNodeName = "files";
|
||||
public const string StylesheetsNodeName = "Stylesheets";
|
||||
public const string TemplatesNodeName = "Templates";
|
||||
public const string NameNodeName = "Name";
|
||||
public const string TemplateNodeName = "Template";
|
||||
public const string AliasNodeNameSmall = "alias";
|
||||
public const string AliasNodeNameCapital = "Alias";
|
||||
public const string DictionaryItemsNodeName = "DictionaryItems";
|
||||
public const string DictionaryItemNodeName = "DictionaryItem";
|
||||
public const string MacrosNodeName = "Macros";
|
||||
public const string DocumentSetNodeName = "DocumentSet";
|
||||
public const string DocumentTypesNodeName = "DocumentTypes";
|
||||
public const string DocumentTypeNodeName = "DocumentType";
|
||||
public const string FileNodeName = "file";
|
||||
public const string OrgNameNodeName = "orgName";
|
||||
public const string OrgPathNodeName = "orgPath";
|
||||
public const string GuidNodeName = "guid";
|
||||
public const string StylesheetNodeName = "styleSheet";
|
||||
public const string MacroNodeName = "macro";
|
||||
public const string InfoNodeName = "info";
|
||||
public const string PackageRequirementsMajorXpath = "./package/requirements/major";
|
||||
public const string PackageRequirementsMinorXpath = "./package/requirements/minor";
|
||||
public const string PackageRequirementsPatchXpath = "./package/requirements/patch";
|
||||
public const string PackageNameXpath = "./package/name";
|
||||
public const string PackageVersionXpath = "./package/version";
|
||||
public const string PackageUrlXpath = "./package/url";
|
||||
public const string PackageLicenseXpath = "./package/license";
|
||||
public const string AuthorNameXpath = "./author/name";
|
||||
public const string AuthorWebsiteXpath = "./author/website";
|
||||
public const string ReadmeXpath = "./readme";
|
||||
public const string ControlNodeName = "control";
|
||||
public const string ActionNodeName = "Action";
|
||||
public const string ActionsNodeName = "Actions";
|
||||
public const string UndoNodeAttribute = "undo";
|
||||
public const string RunatNodeAttribute = "runat";
|
||||
|
||||
}
|
||||
}
|
||||
namespace Umbraco.Core
|
||||
{
|
||||
public static partial class Constants
|
||||
{
|
||||
/// <summary>
|
||||
/// Defines the constants used for Umbraco packages in the package.config xml
|
||||
/// </summary>
|
||||
public static class Packaging
|
||||
{
|
||||
public static readonly string UmbPackageNodeName = "umbPackage";
|
||||
public static readonly string DataTypesNodeName = "DataTypes";
|
||||
public static readonly string PackageXmlFileName = "package.xml";
|
||||
public static readonly string UmbracoPackageExtention = ".umb";
|
||||
public static readonly string DataTypeNodeName = "DataType";
|
||||
public static readonly string LanguagesNodeName = "Languages";
|
||||
public static readonly string FilesNodeName = "files";
|
||||
public static readonly string StylesheetsNodeName = "Stylesheets";
|
||||
public static readonly string TemplatesNodeName = "Templates";
|
||||
public static readonly string NameNodeName = "Name";
|
||||
public static readonly string TemplateNodeName = "Template";
|
||||
public static readonly string AliasNodeNameSmall = "alias";
|
||||
public static readonly string AliasNodeNameCapital = "Alias";
|
||||
public static readonly string DictionaryItemsNodeName = "DictionaryItems";
|
||||
public static readonly string DictionaryItemNodeName = "DictionaryItem";
|
||||
public static readonly string MacrosNodeName = "Macros";
|
||||
public static readonly string DocumentSetNodeName = "DocumentSet";
|
||||
public static readonly string DocumentTypesNodeName = "DocumentTypes";
|
||||
public static readonly string DocumentTypeNodeName = "DocumentType";
|
||||
public static readonly string FileNodeName = "file";
|
||||
public static readonly string OrgNameNodeName = "orgName";
|
||||
public static readonly string OrgPathNodeName = "orgPath";
|
||||
public static readonly string GuidNodeName = "guid";
|
||||
public static readonly string StylesheetNodeName = "styleSheet";
|
||||
public static readonly string MacroNodeName = "macro";
|
||||
public static readonly string InfoNodeName = "info";
|
||||
public static readonly string PackageRequirementsMajorXpath = "./package/requirements/major";
|
||||
public static readonly string PackageRequirementsMinorXpath = "./package/requirements/minor";
|
||||
public static readonly string PackageRequirementsPatchXpath = "./package/requirements/patch";
|
||||
public static readonly string PackageNameXpath = "./package/name";
|
||||
public static readonly string PackageVersionXpath = "./package/version";
|
||||
public static readonly string PackageUrlXpath = "./package/url";
|
||||
public static readonly string PackageLicenseXpath = "./package/license";
|
||||
public static readonly string AuthorNameXpath = "./author/name";
|
||||
public static readonly string AuthorWebsiteXpath = "./author/website";
|
||||
public static readonly string ReadmeXpath = "./readme";
|
||||
public static readonly string ControlNodeName = "control";
|
||||
public static readonly string ActionNodeName = "Action";
|
||||
public static readonly string ActionsNodeName = "Actions";
|
||||
public static readonly string UndoNodeAttribute = "undo";
|
||||
public static readonly string RunatNodeAttribute = "runat";
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -10,7 +10,6 @@ namespace Umbraco.Core.Packaging
|
||||
{
|
||||
public string ReadTextFileFromArchive(string packageFilePath, string fileToRead, out string directoryInPackage)
|
||||
{
|
||||
|
||||
string retVal = null;
|
||||
bool fileFound = false;
|
||||
string foundDir = null;
|
||||
@@ -56,11 +55,15 @@ namespace Umbraco.Core.Packaging
|
||||
throw new ArgumentException(string.Format("Package file: {0} could not be found", packageFilePath));
|
||||
}
|
||||
|
||||
string extension = Path.GetExtension(packageFilePath).ToLower();
|
||||
|
||||
var alowedExtension = new[] {".umb", ".zip"};
|
||||
|
||||
// Check if the file is a valid package
|
||||
if (Path.GetExtension(packageFilePath).Equals(".umb", StringComparison.InvariantCultureIgnoreCase) == false)
|
||||
if (alowedExtension.All(ae => ae.Equals(extension) == false))
|
||||
{
|
||||
throw new ArgumentException(
|
||||
"Error - file isn't a package (doesn't have a .umb extension). Check if the file automatically got named '.zip' upon download.");
|
||||
string.Format("Error - file isn't a package. only extentions: \"{0}\" is allowed", string.Join(", ", alowedExtension)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Binary file not shown.
@@ -11,6 +11,7 @@ namespace Umbraco.Tests.Services
|
||||
public class PackageInstallerServiceTest : BaseServiceTest
|
||||
{
|
||||
private const string DOCUMENT_TYPE_PICKER_UMB = "Document_Type_Picker_1.1.umb";
|
||||
private const string NETMESTER_BEST_PRACTICE_BASE_UMB = "Netmester.BestPractice.Base_0.0.0.1.umb";
|
||||
private const string TEST_PACKAGES_DIR_NAME = "Packages";
|
||||
|
||||
[SetUp]
|
||||
@@ -45,13 +46,28 @@ namespace Umbraco.Tests.Services
|
||||
var path = GetTestPackagePath(DOCUMENT_TYPE_PICKER_UMB);
|
||||
|
||||
// Act
|
||||
var importIssues = ServiceContext.PackageInstallerService.FindPackageImportIssues(path);
|
||||
var importIssues = ServiceContext.PackageInstallerService.GetPreInstallWarnings(path);
|
||||
|
||||
// Assert
|
||||
Assert.IsNotNull(importIssues);
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public void PackageInstallerService_TestSomethingnew()
|
||||
{
|
||||
// Arrange
|
||||
var path = GetTestPackagePath(NETMESTER_BEST_PRACTICE_BASE_UMB);
|
||||
|
||||
// Act
|
||||
var importIssues = ServiceContext.PackageInstallerService.GetPreInstallWarnings(path);
|
||||
|
||||
// Assert
|
||||
Assert.IsNotNull(importIssues);
|
||||
}
|
||||
|
||||
|
||||
|
||||
[Test]
|
||||
public void PackageInstallerService_TestSomethingthered()
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user