/******************************************************************************* * Copyright (c) 2008 xored software, Inc. * * 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: * 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); } }