blob: 9ac70a19c7835070dd2059039f839e35283d7b02 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 xored software, Inc.
*
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* xored software, Inc. - initial API and Implementation (Alex Panchenko)
*******************************************************************************/
package org.eclipse.dltk.debug.dbgp.tests;
import static org.junit.Assert.assertEquals;
import org.eclipse.dltk.dbgp.internal.utils.Base64Helper;
import org.junit.Test;
public class DbgpBase64Tests {
@Test
public void testNullAndEmpty() {
assertEquals("", Base64Helper.encodeString(null));
assertEquals("", Base64Helper.encodeString(""));
assertEquals("", Base64Helper.decodeString(null));
assertEquals("", Base64Helper.decodeString(""));
assertEquals("", Base64Helper.decodeString("\r\n"));
}
@Test
public void testEndode() {
assertEquals("MTIz", Base64Helper.encodeString("123"));
assertEquals("MTIzNDU2Nzg5", Base64Helper.encodeString("123456789"));
}
@Test
public void testDecode() {
assertEquals("123", Base64Helper.decodeString("MTIz"));
assertEquals("123456789", Base64Helper.decodeString("MTIzNDU2Nzg5"));
}
@Test
public void testDecodeChunked() {
assertEquals("123", Base64Helper.decodeString("MTIz"));
assertEquals("123456789", Base64Helper.decodeString("MTIz" + "\n"
+ "NDU2" + "\n" + "Nzg5"));
}
@Test
public void testLongString() {
char[] c = new char[256];
for (int i = 0; i < c.length; ++i) {
c[i] = (char) i;
}
final String input = new String(c);
final String encoded = Base64Helper.encodeString(input);
final int chunkSize = 64;
final int chunkCount = (encoded.length() + chunkSize - 1) / chunkSize;
final StringBuffer chunked = new StringBuffer();
for (int i = 0; i < chunkCount; ++i) {
final int beginIndex = i * chunkSize;
final int endIndex = Math.min(encoded.length(), beginIndex
+ chunkSize);
chunked.append(encoded.substring(beginIndex, endIndex));
chunked.append("\r\n");
}
final String output = Base64Helper.decodeString(chunked.toString());
assertEquals(input, output);
}
}