Esempio n. 1
0
        public void ReadFilesFromArchive_NumberOfFilesIs1_SearchingForPackageXmlFile()
        {
            // Arrange
            var sut = new PackageExtraction();

            // Act
            var result = sut.ReadFilesFromArchive(GetTestPackagePath(PackageFileName), new[] { "Package.xml" });

            // Assert
            Assert.AreEqual(1, result.Count());
        }
Esempio n. 2
0
        public void FindMissingFiles_1_UnknownFile()
        {
            // Arrange
            var sut = new PackageExtraction();

            // Act
            var result = sut.FindMissingFiles(GetTestPackagePath(PackageFileName), new[] { "DoesNotExists.XYZ" });

            // Assert
            Assert.AreEqual(1, result.Count());
        }
Esempio n. 3
0
        public static void SetMinimumUmbracoVersion(this WikiFile mediaFile)
        {
            var fileType = (FileType)Enum.Parse(typeof(FileType), mediaFile.FileType);

            if (fileType != FileType.package)
            {
                return;
            }

            System.Version minimumUmbracoVersion = null;

            var extractor  = new PackageExtraction();
            var filePath   = IOHelper.MapPath(mediaFile.Path);
            var packageXml = extractor.ReadTextFileFromArchive(filePath, Umbraco.Core.Constants.Packaging.PackageXmlFileName);

            if (string.IsNullOrWhiteSpace(packageXml))
            {
                return;
            }

            var packageXmlDoc = XDocument.Parse(packageXml);

            // The XPath query will detect if the 'requirements' element has the attribute that we're looking for,
            // and if the child elements also exist. [LK:2016-06-12@CGRT16]
            var requirements = packageXmlDoc.XPathSelectElement("/umbPackage/info/package/requirements");

            if (requirements == null)
            {
                return;
            }
            if (requirements.Attribute("type") == null || requirements.Attribute("type").Value.ToLowerInvariant() != "strict")
            {
                return;
            }

            if (requirements.Element("major") == null || requirements.Element("minor") == null || requirements.Element("patch") == null)
            {
                return;
            }

            var major = requirements.Element("major").Value;
            var minor = requirements.Element("minor").Value;
            var patch = requirements.Element("patch").Value;

            System.Version.TryParse(string.Format("{0}.{1}.{2}", major, minor, patch), out minimumUmbracoVersion);

            if (minimumUmbracoVersion != default(System.Version))
            {
                mediaFile.MinimumVersionStrict = minimumUmbracoVersion.ToString(3);
            }
        }