You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2018/09/09 08:09:32 UTC

[directory-studio] branch master updated: Fix the unfold method for Windws line breaks

This is an automated email from the ASF dual-hosted git repository.

seelmann pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-studio.git


The following commit(s) were added to refs/heads/master by this push:
     new e89604e  Fix the unfold method for Windws line breaks
e89604e is described below

commit e89604e2cef224559fe6cb2898924edd48294237
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
AuthorDate: Sun Sep 9 10:09:16 2018 +0200

    Fix the unfold method for Windws line breaks
---
 .../ldifparser/model/lines/LdifLineBase.java       |  2 +
 .../studio/ldifparser/parser/LdifParserTest.java   | 43 ++++++++++++++++++++++
 2 files changed, 45 insertions(+)

diff --git a/plugins/ldifparser/src/main/java/org/apache/directory/studio/ldifparser/model/lines/LdifLineBase.java b/plugins/ldifparser/src/main/java/org/apache/directory/studio/ldifparser/model/lines/LdifLineBase.java
index 1d5f8ef..6b7e6ee 100644
--- a/plugins/ldifparser/src/main/java/org/apache/directory/studio/ldifparser/model/lines/LdifLineBase.java
+++ b/plugins/ldifparser/src/main/java/org/apache/directory/studio/ldifparser/model/lines/LdifLineBase.java
@@ -170,6 +170,7 @@ public abstract class LdifLineBase implements LdifPart
                             {
                                 newString[pos++] = c;
                                 newString[pos++] = '\r';
+                                i++;
                             }
                             
                             break;
@@ -203,6 +204,7 @@ public abstract class LdifLineBase implements LdifPart
                             {
                                 newString[pos++] = c;
                                 newString[pos++] = '\n';
+                                i++;
                             }
                             
                             break;
diff --git a/plugins/ldifparser/src/test/java/org/apache/directory/studio/ldifparser/parser/LdifParserTest.java b/plugins/ldifparser/src/test/java/org/apache/directory/studio/ldifparser/parser/LdifParserTest.java
index c56e528..7f29000 100644
--- a/plugins/ldifparser/src/test/java/org/apache/directory/studio/ldifparser/parser/LdifParserTest.java
+++ b/plugins/ldifparser/src/test/java/org/apache/directory/studio/ldifparser/parser/LdifParserTest.java
@@ -23,6 +23,7 @@ package org.apache.directory.studio.ldifparser.parser;
 
 import junit.framework.TestCase;
 
+import org.apache.directory.studio.ldifparser.LdifFormatParameters;
 import org.apache.directory.studio.ldifparser.model.LdifFile;
 
 
@@ -39,4 +40,46 @@ public class LdifParserTest extends TestCase
         assertEquals( 0, model.getRecords().length );
     }
 
+
+    public void testParseAndFormatWithLdifWindowsLineBreak()
+    {
+        String ldif = ""
+            + "dn: cn=foo,ou=users,ou=system\r\n"
+            + "cn: foo\r\n"
+            + "description: 12345678901234567890123456789012345678901234567890123456789012345\r\n"
+            + " 678901234567890\r\n"
+            + "description:: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4\r\n"
+            + " OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAK\r\n";
+
+        LdifParser parser = new LdifParser();
+        LdifFile model = parser.parse( ldif );
+
+        assertEquals( 1, model.getRecords().length );
+
+        LdifFormatParameters formatParameters = new LdifFormatParameters( true, 78, "\r\n" );
+        String formatted = model.toFormattedString( formatParameters );
+        assertEquals( ldif, formatted );
+    }
+
+
+    public void testParseAndFormatWithLdifUnixLineBreak()
+    {
+        String ldif = ""
+            + "dn: cn=foo,ou=users,ou=system\n"
+            + "cn: foo\n"
+            + "description: 12345678901234567890123456789012345678901234567890123456789012345\n"
+            + " 678901234567890\n"
+            + "description:: MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4\n"
+            + " OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAK\n";
+
+        LdifParser parser = new LdifParser();
+        LdifFile model = parser.parse( ldif );
+
+        assertEquals( 1, model.getRecords().length );
+
+        LdifFormatParameters formatParameters = new LdifFormatParameters( true, 78, "\n" );
+        String formatted = model.toFormattedString( formatParameters );
+        assertEquals( ldif, formatted );
+    }
+
 }