diff --git a/plist-cil.test/IssueTest.cs b/plist-cil.test/IssueTest.cs index 25336c0..49b02b4 100644 --- a/plist-cil.test/IssueTest.cs +++ b/plist-cil.test/IssueTest.cs @@ -159,7 +159,8 @@ namespace plistcil.test } /// - /// Makes sure that binary data is line-wrapped correctly when being serialized. + /// Makes sure that binary data is line-wrapped correctly when being serialized, in a scenario + /// where the binary data is not indented (no leading whitespace). /// [Fact] public static void RoundtripDataTest() @@ -168,7 +169,21 @@ namespace plistcil.test var value = XmlPropertyListParser.Parse(new FileInfo(@"test-files/RoundtripBinary.plist")); var actual = value.ToXmlPropertyList(); - Assert.Equal(expected, actual, false, true); + Assert.Equal(expected, actual, ignoreLineEndingDifferences: true); + } + + /// + /// Makes sure that binary data is line-wrapped correctly when being serialized, in a scenario + /// where the binary data is indented. + /// + [Fact] + public static void RoundtripDataTest2() + { + var expected = File.ReadAllText(@"test-files/RoundtripBinaryIndentation.plist"); + var value = XmlPropertyListParser.Parse(new FileInfo(@"test-files/RoundtripBinaryIndentation.plist")); + var actual = value.ToXmlPropertyList(); + + Assert.Equal(expected, actual, ignoreLineEndingDifferences: true); } } } diff --git a/plist-cil.test/plist-cil.test.csproj b/plist-cil.test/plist-cil.test.csproj index 47178f9..e3164b8 100644 --- a/plist-cil.test/plist-cil.test.csproj +++ b/plist-cil.test/plist-cil.test.csproj @@ -112,4 +112,10 @@ + + + PreserveNewest + + + diff --git a/plist-cil.test/test-files/RoundtripBinaryIndentation.plist b/plist-cil.test/test-files/RoundtripBinaryIndentation.plist new file mode 100644 index 0000000..832f9d9 --- /dev/null +++ b/plist-cil.test/test-files/RoundtripBinaryIndentation.plist @@ -0,0 +1,12 @@ + + + + + keyA + + MjAxMy0wMi0wMiAyMDoxNjo0MiBHTVQ6IGhhbmRsZV9tZXNzYWdlOiBBbmQgeW91IHdp + bGwga25vdyBteSBuYW1lIGlzIHRoZSBMb3JkIHdoZW4gSSBsYXkgbXkgdmVuZ2VhbmNl + IHVwb24gdGhlZS4= + + + diff --git a/plist-cil/NSData.cs b/plist-cil/NSData.cs index 743ff67..3f22d91 100644 --- a/plist-cil/NSData.cs +++ b/plist-cil/NSData.cs @@ -159,10 +159,9 @@ namespace Claunia.PropertyList string base64 = GetBase64EncodedData(); foreach (string line in base64.Split('\n')) { - Indent(xml, level); - for (int offset = 0; offset < base64.Length; offset += DataLineLength) { + Indent(xml, level); xml.Append(line.Substring(offset, Math.Min(DataLineLength, line.Length - offset))); xml.Append(NSObject.NEWLINE); }