diff --git a/plist-cil.test/BinaryPropertyListWriterTests.cs b/plist-cil.test/BinaryPropertyListWriterTests.cs index 5b6f9d0..22d54ac 100644 --- a/plist-cil.test/BinaryPropertyListWriterTests.cs +++ b/plist-cil.test/BinaryPropertyListWriterTests.cs @@ -53,5 +53,21 @@ namespace plistcil.test writer.Write(root); } } + + [Fact] + public void Roundtrip4Test() + { + byte[] data = File.ReadAllBytes("test-files/plist4.bin"); + NSObject root = PropertyListParser.Parse(data); + + using (MemoryStream actualOutput = new MemoryStream()) + using (Stream expectedOutput = File.OpenRead("test-files/plist4.bin")) + using (ValidatingStream validatingStream = new ValidatingStream(actualOutput, expectedOutput)) + { + BinaryPropertyListWriter writer = new BinaryPropertyListWriter(validatingStream); + writer.ReuseObjectIds = false; + writer.Write(root); + } + } } } diff --git a/plist-cil.test/plist-cil.test.csproj b/plist-cil.test/plist-cil.test.csproj index 72f6c01..cb0a71d 100644 --- a/plist-cil.test/plist-cil.test.csproj +++ b/plist-cil.test/plist-cil.test.csproj @@ -122,6 +122,9 @@ PreserveNewest + + PreserveNewest + PreserveNewest diff --git a/plist-cil.test/test-files/plist4.bin b/plist-cil.test/test-files/plist4.bin new file mode 100644 index 0000000..0c1a127 Binary files /dev/null and b/plist-cil.test/test-files/plist4.bin differ diff --git a/plist-cil/BinaryPropertyListWriter.cs b/plist-cil/BinaryPropertyListWriter.cs index ceb24a9..4f14952 100644 --- a/plist-cil/BinaryPropertyListWriter.cs +++ b/plist-cil/BinaryPropertyListWriter.cs @@ -424,6 +424,7 @@ namespace Claunia.PropertyList || content == "NS.keys" || content == "NS.base" || content == "NS.relative" + || content == "NS.string" || content == "NSURL" || content == "NSDictionary" || content == "NSObject"