blob: cfc7a0e1b8b691bf6a962f9c4ce3645a832f251b [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009, 2015 EclipseSource and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* EclipseSource - initial API and implementation
******************************************************************************/
package org.eclipse.rap.rwt.internal.util;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.Arrays;
import org.eclipse.rap.rwt.internal.util.EncodingUtil;
import org.junit.Test;
public class EncodingUtil_Test {
@Test
public void testEscapeDoubleQuoted() {
String stringToEscape = "First line.\nSecond \"middle\" line.\nThird line.";
String expected = "First line.\nSecond \\\"middle\\\" line.\nThird line.";
String result = EncodingUtil.escapeDoubleQuoted( stringToEscape );
assertEquals( expected, result );
stringToEscape = "First line.\nSecond \\middle\\ line.\nThird line.";
expected = "First line.\nSecond \\\\middle\\\\ line.\nThird line.";
result = EncodingUtil.escapeDoubleQuoted( stringToEscape );
assertEquals( expected, result );
}
@Test
public void testReplaceNewLines_emptyString() {
assertSame( "", EncodingUtil.replaceNewLines( "" ) );
}
@Test
public void testReplaceNewLines_withoutNewlines() {
assertSame( "foo bar", EncodingUtil.replaceNewLines( "foo bar" ) );
}
@Test
public void testReplaceNewLines_unixLineBreaks() {
String stringToReplace = "First line.\nSecond line.\nThird line.";
String expected = "First line.\\nSecond line.\\nThird line.";
String result = EncodingUtil.replaceNewLines( stringToReplace );
assertEquals( expected, result );
}
@Test
public void testReplaceNewLines_windowsLineBreaks() {
String stringToReplace = "First line.\r\nSecond line.\r\nThird line.";
String expected = "First line.\\nSecond line.\\nThird line.";
String result = EncodingUtil.replaceNewLines( stringToReplace );
assertEquals( expected, result );
}
@Test
public void testReplaceNewLines_oldMacLineBreaks() {
String stringToReplace = "First line.\rSecond line.\rThird line.";
String expected = "First line.\\nSecond line.\\nThird line.";
String result = EncodingUtil.replaceNewLines( stringToReplace );
assertEquals( expected, result );
}
@Test
public void testReplaceNewLines_edgeCases() {
assertEquals( "\\nfoo", EncodingUtil.replaceNewLines( "\nfoo" ) );
assertEquals( "\\nfoo", EncodingUtil.replaceNewLines( "\r\nfoo" ) );
assertEquals( "foo\\n", EncodingUtil.replaceNewLines( "foo\n" ) );
assertEquals( "foo\\n", EncodingUtil.replaceNewLines( "foo\r\n" ) );
assertEquals( "\\n", EncodingUtil.replaceNewLines( "\n" ) );
assertEquals( "\\n", EncodingUtil.replaceNewLines( "\r\n" ) );
}
@Test
public void testReplaceNewLines_withReplacement() {
String stringToReplace = "First line.\r\nSecond line.\r\nThird line.";
String expected = "First line. Second line. Third line.";
String result = EncodingUtil.replaceNewLines( stringToReplace, " " );
assertEquals( expected, result );
}
@Test
public void testSplitNewlines() {
String input = "";
String[] expected = new String[] { "" };
String[] result = EncodingUtil.splitNewLines( input );
assertTrue( Arrays.equals( expected, result ) );
input = "First line.\nSecond line.\nThird line.";
expected = new String[] { "First line.", "Second line.", "Third line." };
result = EncodingUtil.splitNewLines( input );
assertTrue( Arrays.equals( expected, result ) );
input = "First line.\rSecond line.\rThird line.";
result = EncodingUtil.splitNewLines( input );
assertTrue( Arrays.equals( expected, result ) );
input = "First line.\r\nSecond line.\r\nThird line.";
result = EncodingUtil.splitNewLines( input );
assertTrue( Arrays.equals( expected, result ) );
input = "First line.\r\nSecond line.\r\nThird line.\r\n";
expected = new String[] { "First line.", "Second line.", "Third line.", "" };
result = EncodingUtil.splitNewLines( input );
assertTrue( Arrays.equals( expected, result ) );
}
@Test
public void testEscapeLeadingTrailingSpaces() {
String stringToEscape = " All rights reserved. ";
String expected = "  All rights reserved.   ";
String result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = "All rights reserved. ";
expected = "All rights reserved. ";
result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = " All rights reserved.";
expected = "  All rights reserved.";
result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = "All rights reserved.";
expected = "All rights reserved.";
result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = " \n All rights reserved. \n ";
expected = " \n All rights reserved. \n ";
result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = " ";
expected = "  ";
result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = "";
expected = "";
result = EncodingUtil.escapeLeadingTrailingSpaces( stringToEscape );
assertEquals( expected, result );
}
@Test
public void testReplaceWhiteSpaces() {
String stringToEscape = "test1 test2";
String expected = "test1 test2";
String result = EncodingUtil.replaceWhiteSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = "test1 test2";
expected = "test1  test2";
result = EncodingUtil.replaceWhiteSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = "test1 test2";
expected = "test1   test2";
result = EncodingUtil.replaceWhiteSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = " test";
expected = " test";
result = EncodingUtil.replaceWhiteSpaces( stringToEscape );
assertEquals( expected, result );
stringToEscape = " test ";
expected = "  test  ";
result = EncodingUtil.replaceWhiteSpaces( stringToEscape );
assertEquals( expected, result );
}
@Test
public void testEscapeSpecialCharacters() {
String stringToEscape = "abc\u2028abc\u2029abc";
String expected = "abcabcabc";
String result = EncodingUtil.removeNonDisplayableChars( stringToEscape );
assertEquals( expected, result );
}
@Test
public void testTruncateAtZero() {
char[] stringToTruncate = new char[] { 'h', 'e', 'l', 0, 'l', 'o' };
String expected = "hel";
String result
= EncodingUtil.truncateAtZero( String.valueOf( stringToTruncate ) );
assertEquals( expected, result );
}
}