diff --git a/src/Umbraco.Core/Packaging/PackageMigrationResource.cs b/src/Umbraco.Core/Packaging/PackageMigrationResource.cs
index 14cffc041f..8f777d2b0a 100644
--- a/src/Umbraco.Core/Packaging/PackageMigrationResource.cs
+++ b/src/Umbraco.Core/Packaging/PackageMigrationResource.cs
@@ -45,10 +45,11 @@ namespace Umbraco.Cms.Core.Packaging
}
public static ZipArchive GetEmbeddedPackageDataManifest(Type planType, out XDocument packageXml)
- {
- Stream stream = GetEmbeddedPackageStream(planType);
+ => GetPackageDataManifest(GetEmbeddedPackageStream(planType), out packageXml);
- var zip = new ZipArchive(stream, ZipArchiveMode.Read);
+ public static ZipArchive GetPackageDataManifest(Stream packageZipStream, out XDocument packageXml)
+ {
+ var zip = new ZipArchive(packageZipStream, ZipArchiveMode.Read);
ZipArchiveEntry packageXmlEntry = zip.GetEntry("package.xml");
if (packageXmlEntry == null)
{
@@ -56,7 +57,10 @@ namespace Umbraco.Cms.Core.Packaging
}
using (Stream packageXmlStream = packageXmlEntry.Open())
- using (var xmlReader = XmlReader.Create(packageXmlStream))
+ using (var xmlReader = XmlReader.Create(packageXmlStream, new XmlReaderSettings
+ {
+ IgnoreWhitespace = true
+ }))
{
packageXml = XDocument.Load(xmlReader);
}
diff --git a/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs b/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs
index ca0b3dc9e4..3ee9b1375c 100644
--- a/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs
+++ b/src/Umbraco.Tests.Integration/Umbraco.Core/Packaging/CreatedPackagesRepositoryTests.cs
@@ -207,10 +207,10 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Packaging
string packageXmlPath = PackageBuilder.ExportPackage(def);
- using (var stream = File.OpenRead(packageXmlPath))
+ using (var packageZipStream = File.OpenRead(packageXmlPath))
+ using (ZipArchive zipArchive = PackageMigrationResource.GetPackageDataManifest(packageZipStream, out XDocument packageXml))
{
- var xml = XDocument.Load(stream);
- var dictionaryItems = xml.Root.Element("DictionaryItems");
+ var dictionaryItems = packageXml.Root.Element("DictionaryItems");
Assert.IsNotNull(dictionaryItems);
var rootItems = dictionaryItems.Elements("DictionaryItem").ToList();
Assert.AreEqual(2, rootItems.Count);
@@ -247,12 +247,14 @@ namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Packaging
def = PackageBuilder.GetById(def.Id); // re-get
Assert.IsNotNull(def.PackagePath);
- using (var packageXmlStream = File.OpenRead(packageXmlPath))
+ using (FileStream packageZipStream = File.OpenRead(packageXmlPath))
+ using (ZipArchive zipArchive = PackageMigrationResource.GetPackageDataManifest(packageZipStream, out XDocument packageXml))
{
- var xml = XDocument.Load(packageXmlStream);
- Assert.AreEqual("umbPackage", xml.Root.Name.ToString());
+ Assert.AreEqual("umbPackage", packageXml.Root.Name.ToString());
- Assert.AreEqual($"Text pagetextPage", xml.Element("umbPackage").Element("Templates").ToString(SaveOptions.DisableFormatting));
+ Assert.AreEqual(
+ $"Text pagetextPage",
+ packageXml.Element("umbPackage").Element("Templates").ToString(SaveOptions.DisableFormatting));
// TODO: There's a whole lot more assertions to be done