1 36 package org.columba.ristretto.coder; 37 38 import java.nio.ByteBuffer ; 39 import java.util.Random ; 40 41 import junit.framework.TestCase; 42 43 public class Base64Test extends TestCase { 44 45 49 public Base64Test(String arg0) { 50 super(arg0); 51 } 52 53 public void testDecode1Pack0Pads() { 54 String input = "/4BA"; 55 ByteBuffer decoded = Base64.decode(input); 56 57 assertTrue( decoded.capacity()== 3); 58 assertTrue( decoded.get() == (byte) 0x0ff ); 59 assertTrue( decoded.get()== (byte) 0x080 ); 60 assertTrue( decoded.get() == (byte) 0x040 ); 61 } 62 63 public void testDecode2Pack0Pads() { 64 String input = "/4BA/4BA"; 65 ByteBuffer decoded = Base64.decode(input); 66 67 assertTrue( decoded.capacity() == 6); 68 assertTrue( decoded.get() == (byte) 0x0ff ); 69 assertTrue( decoded.get() == (byte) 0x080 ); 70 assertTrue( decoded.get() == (byte) 0x040 ); 71 assertTrue( decoded.get() == (byte) 0x0ff ); 72 assertTrue( decoded.get() == (byte) 0x080 ); 73 assertTrue( decoded.get() == (byte) 0x040 ); 74 } 75 76 public void testDecode1Pack1Pads() { 77 String input = "/4A="; 78 ByteBuffer decoded = Base64.decode(input); 79 80 assertTrue( decoded.limit() == 2); 81 assertTrue( decoded.get() == (byte) 0x0ff ); 82 assertTrue( decoded.get() == (byte) 0x080 ); 83 } 84 85 public void testDecode1Pack2Pads() { 86 String input = "/w=="; 87 ByteBuffer decoded = Base64.decode(input); 88 89 assertTrue( decoded.limit() == 1); 90 assertTrue( decoded.get() == (byte) 0x0ff ); 91 } 92 93 public void testDecode1Pack2PadsAndGarbageAtEnd() { 94 String input = "/4== asldkfie sdhr oi"; 95 ByteBuffer decoded = Base64.decode(input); 96 97 assertTrue( decoded.limit() == 1); 98 assertTrue( decoded.get() == (byte) 0x0ff ); 99 } 100 101 public void testEncode1Pack0Pads() { 102 byte[] input = {(byte)0x0ff, (byte)0x080, (byte)0x040}; 103 StringBuffer result = Base64.encode(ByteBuffer.wrap(input)); 104 assertTrue(result.length() == 4); 105 assertTrue(result.toString().equals("/4BA")); 106 } 107 108 public void testEncode2Pack0Pads() { 109 byte[] input = {(byte)0x0ff, (byte)0x080, (byte)0x040,(byte)0x0ff, (byte)0x080, (byte)0x040}; 110 StringBuffer result = Base64.encode(ByteBuffer.wrap(input)); 111 assertTrue(result.length() == 8); 112 assertTrue(result.toString().equals("/4BA/4BA")); 113 } 114 115 public void testEncode1Pack1Pads() { 116 byte[] input = {(byte)0x0ff, (byte)0x080}; 117 StringBuffer result = Base64.encode(ByteBuffer.wrap(input)); 118 assertTrue(result.length() == 4); 119 assertTrue(result.toString().equals("/4A=")); 120 } 121 122 public void testEncode1Pack2Pads() { 123 byte[] input = {(byte)0x0ff}; 124 StringBuffer result = Base64.encode(ByteBuffer.wrap(input)); 125 assertTrue(result.length() == 4); 126 assertTrue(result.toString().equals("/w==")); 127 } 128 129 public void testEncodeDecode() { 130 Random random = new Random (); 131 byte[] testInput = new byte[91]; 133 random.nextBytes(testInput); 134 StringBuffer encoded = Base64.encode(ByteBuffer.wrap(testInput)); 135 System.out.println( encoded ); 136 ByteBuffer decoded = Base64.decode(encoded); 137 for( int i=0; i<testInput.length; i++) { 138 assertEquals(testInput[i],decoded.get()); 139 } 140 } 141 142 public void testDecodeMalformed() { 143 String input = "tqEgx9G55r/vILHuwfYgu/27/cfPsNQgwPzH2LXluLO0z7TZLiC18Lryvbogv7XIrcDHIMPWsO26wCEh="; 144 145 ByteBuffer decoded = Base64.decode(input); 146 } 147 148 } 149 | Popular Tags |