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);
}