1 package net.sourceforge.phpeclipse.xdebug.core;
3 import java.io.ByteArrayInputStream;
4 import java.io.ByteArrayOutputStream;
5 import java.io.OutputStream;
6 import java.util.Arrays;
7 import java.util.Random;
9 import junit.framework.TestCase;
11 public class Base64Test extends TestCase {
12 private static final long SEED = 12345678;
13 private static Random s_random = new Random(SEED);
15 private byte[] createData(int length) throws Exception {
16 byte[] bytes = new byte[length];
17 s_random.nextBytes(bytes);
21 private void runStreamTest(int length) throws Exception {
22 byte[] data = createData(length);
23 ByteArrayOutputStream out_bytes = new ByteArrayOutputStream();
24 OutputStream out = new Base64.OutputStream(out_bytes);
27 byte[] encoded = out_bytes.toByteArray();
28 byte[] decoded = Base64.decode(encoded, 0, encoded.length);
29 assertTrue(Arrays.equals(data, decoded));
31 Base64.InputStream in = new Base64.InputStream(
32 new ByteArrayInputStream(encoded));
33 out_bytes = new ByteArrayOutputStream();
34 byte[] buffer = new byte[3];
35 for (int n = in.read(buffer); n > 0; n = in.read(buffer)) {
36 out_bytes.write(buffer, 0, n);
40 decoded = out_bytes.toByteArray();
41 assertTrue(Arrays.equals(data, decoded));
44 public void testStreams() throws Exception {
45 for (int i = 0; i < 100; ++i) {
48 for (int i = 100; i < 2000; i += 250) {
51 for (int i = 2000; i < 80000; i += 1000) {