KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > commons > codec > binary > Base64Test


1 /*
2  * Copyright 2001-2004 The Apache Software Foundation.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */

16
17 package org.apache.commons.codec.binary;
18
19
20 import java.util.Arrays JavaDoc;
21 import java.util.Random JavaDoc;
22
23 import junit.framework.TestCase;
24
25 /**
26  * @version $Id: Base64Test.java,v 1.15 2004/04/19 01:14:29 ggregory Exp $
27  * @author Apache Software Foundation
28  */

29 public class Base64Test extends TestCase {
30
31     /**
32      * Construct a new instance of this test case.
33      *
34      * @param name Name of the test case
35      */

36     public Base64Test(String JavaDoc name) {
37         super(name);
38     }
39
40
41     /**
42      * Test the Base64 implementation
43      */

44     public void testBase64() {
45         String JavaDoc content = "Hello World";
46         String JavaDoc encodedContent;
47         encodedContent = new String JavaDoc(Base64.encodeBase64(content.getBytes()));
48         assertTrue("encoding hello world", encodedContent.equals("SGVsbG8gV29ybGQ="));
49     }
50
51     /**
52      * Tests conditional true branch for "marker0" test.
53      */

54     public void testDecodePadMarkerIndex2() {
55         assertEquals("A", new String JavaDoc(Base64.decodeBase64("QQ==".getBytes())));
56     }
57     
58     /**
59      * Tests conditional branches for "marker1" test.
60      */

61     public void testDecodePadMarkerIndex3() {
62         assertEquals("AA", new String JavaDoc(Base64.decodeBase64("QUE=".getBytes())));
63         assertEquals("AAA", new String JavaDoc(Base64.decodeBase64("QUFB".getBytes())));
64     }
65     
66     public void testDecodePadOnly() {
67         assertTrue(Base64.decodeBase64("====".getBytes()).length == 0);
68         assertEquals("", new String JavaDoc(Base64.decodeBase64("====".getBytes())));
69     }
70     
71     public void testDecodePadOnlyChunked() {
72         assertTrue(Base64.decodeBase64("====\n".getBytes()).length == 0);
73         assertEquals("", new String JavaDoc(Base64.decodeBase64("====\n".getBytes())));
74     }
75     
76     // encode/decode random arrays from size 0 to size 11
77
public void testEncodeDecodeSmall() {
78         for(int i=0;i<12;i++) {
79             byte[] data = new byte[i];
80             this.getRandom().nextBytes(data);
81             byte[] enc = Base64.encodeBase64(data);
82             assertTrue("\"" + (new String JavaDoc(enc)) + "\" is Base64 data.",Base64.isArrayByteBase64(enc) );
83             byte[] data2 = Base64.decodeBase64(enc);
84             assertTrue(toString(data) + " equals " + toString(data2), Arrays.equals(data,data2));
85         }
86     }
87
88     // encode/decode a large random array
89
public void testEncodeDecodeRandom() {
90         for(int i=1;i<5;i++) {
91             byte[] data = new byte[this.getRandom().nextInt(10000)+1];
92             this.getRandom().nextBytes(data);
93             byte[] enc = Base64.encodeBase64(data);
94             assertTrue(Base64.isArrayByteBase64(enc));
95             byte[] data2 = Base64.decodeBase64(enc);
96             assertTrue(Arrays.equals(data,data2));
97         }
98     }
99
100     /**
101      * Tests RFC 2045 section 2.1 CRLF definition.
102      */

103     public void testRfc2045Section2Dot1CrLfDefinition() {
104         assertTrue(Arrays.equals(new byte[] {13, 10}, Base64.CHUNK_SEPARATOR));
105     }
106
107     /**
108      * Tests RFC 2045 section 6.8 chuck size definition.
109      */

110     public void testRfc2045Section6Dot8ChunkSizeDefinition() {
111         assertEquals(76, Base64.CHUNK_SIZE);
112     }
113
114     public void testSingletons() {
115         assertEquals("AA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0 })));
116         assertEquals("AQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)1 })));
117         assertEquals("Ag==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)2 })));
118         assertEquals("Aw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)3 })));
119         assertEquals("BA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)4 })));
120         assertEquals("BQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)5 })));
121         assertEquals("Bg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)6 })));
122         assertEquals("Bw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)7 })));
123         assertEquals("CA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)8 })));
124         assertEquals("CQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)9 })));
125         assertEquals("Cg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)10 })));
126         assertEquals("Cw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)11 })));
127         assertEquals("DA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)12 })));
128         assertEquals("DQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)13 })));
129         assertEquals("Dg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)14 })));
130         assertEquals("Dw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)15 })));
131         assertEquals("EA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)16 })));
132         assertEquals("EQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)17 })));
133         assertEquals("Eg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)18 })));
134         assertEquals("Ew==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)19 })));
135         assertEquals("FA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)20 })));
136         assertEquals("FQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)21 })));
137         assertEquals("Fg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)22 })));
138         assertEquals("Fw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)23 })));
139         assertEquals("GA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)24 })));
140         assertEquals("GQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)25 })));
141         assertEquals("Gg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)26 })));
142         assertEquals("Gw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)27 })));
143         assertEquals("HA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)28 })));
144         assertEquals("HQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)29 })));
145         assertEquals("Hg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)30 })));
146         assertEquals("Hw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)31 })));
147         assertEquals("IA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)32 })));
148         assertEquals("IQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)33 })));
149         assertEquals("Ig==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)34 })));
150         assertEquals("Iw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)35 })));
151         assertEquals("JA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)36 })));
152         assertEquals("JQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)37 })));
153         assertEquals("Jg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)38 })));
154         assertEquals("Jw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)39 })));
155         assertEquals("KA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)40 })));
156         assertEquals("KQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)41 })));
157         assertEquals("Kg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)42 })));
158         assertEquals("Kw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)43 })));
159         assertEquals("LA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)44 })));
160         assertEquals("LQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)45 })));
161         assertEquals("Lg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)46 })));
162         assertEquals("Lw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)47 })));
163         assertEquals("MA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)48 })));
164         assertEquals("MQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)49 })));
165         assertEquals("Mg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)50 })));
166         assertEquals("Mw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)51 })));
167         assertEquals("NA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)52 })));
168         assertEquals("NQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)53 })));
169         assertEquals("Ng==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)54 })));
170         assertEquals("Nw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)55 })));
171         assertEquals("OA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)56 })));
172         assertEquals("OQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)57 })));
173         assertEquals("Og==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)58 })));
174         assertEquals("Ow==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)59 })));
175         assertEquals("PA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)60 })));
176         assertEquals("PQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)61 })));
177         assertEquals("Pg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)62 })));
178         assertEquals("Pw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)63 })));
179         assertEquals("QA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)64 })));
180         assertEquals("QQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)65 })));
181         assertEquals("Qg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)66 })));
182         assertEquals("Qw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)67 })));
183         assertEquals("RA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)68 })));
184         assertEquals("RQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)69 })));
185         assertEquals("Rg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)70 })));
186         assertEquals("Rw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)71 })));
187         assertEquals("SA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)72 })));
188         assertEquals("SQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)73 })));
189         assertEquals("Sg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)74 })));
190         assertEquals("Sw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)75 })));
191         assertEquals("TA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)76 })));
192         assertEquals("TQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)77 })));
193         assertEquals("Tg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)78 })));
194         assertEquals("Tw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)79 })));
195         assertEquals("UA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)80 })));
196         assertEquals("UQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)81 })));
197         assertEquals("Ug==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)82 })));
198         assertEquals("Uw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)83 })));
199         assertEquals("VA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)84 })));
200         assertEquals("VQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)85 })));
201         assertEquals("Vg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)86 })));
202         assertEquals("Vw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)87 })));
203         assertEquals("WA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)88 })));
204         assertEquals("WQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)89 })));
205         assertEquals("Wg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)90 })));
206         assertEquals("Ww==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)91 })));
207         assertEquals("XA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)92 })));
208         assertEquals("XQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)93 })));
209         assertEquals("Xg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)94 })));
210         assertEquals("Xw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)95 })));
211         assertEquals("YA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)96 })));
212         assertEquals("YQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)97 })));
213         assertEquals("Yg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)98 })));
214         assertEquals("Yw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)99 })));
215         assertEquals("ZA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)100 })));
216         assertEquals("ZQ==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)101 })));
217         assertEquals("Zg==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)102 })));
218         assertEquals("Zw==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)103 })));
219         assertEquals("aA==",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)104 })));
220     }
221
222     public void testSingletonsChunked() {
223         assertEquals("AA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)0 })));
224         assertEquals("AQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)1 })));
225         assertEquals("Ag==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)2 })));
226         assertEquals("Aw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)3 })));
227         assertEquals("BA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)4 })));
228         assertEquals("BQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)5 })));
229         assertEquals("Bg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)6 })));
230         assertEquals("Bw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)7 })));
231         assertEquals("CA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)8 })));
232         assertEquals("CQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)9 })));
233         assertEquals("Cg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)10 })));
234         assertEquals("Cw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)11 })));
235         assertEquals("DA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)12 })));
236         assertEquals("DQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)13 })));
237         assertEquals("Dg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)14 })));
238         assertEquals("Dw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)15 })));
239         assertEquals("EA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)16 })));
240         assertEquals("EQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)17 })));
241         assertEquals("Eg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)18 })));
242         assertEquals("Ew==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)19 })));
243         assertEquals("FA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)20 })));
244         assertEquals("FQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)21 })));
245         assertEquals("Fg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)22 })));
246         assertEquals("Fw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)23 })));
247         assertEquals("GA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)24 })));
248         assertEquals("GQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)25 })));
249         assertEquals("Gg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)26 })));
250         assertEquals("Gw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)27 })));
251         assertEquals("HA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)28 })));
252         assertEquals("HQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)29 })));
253         assertEquals("Hg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)30 })));
254         assertEquals("Hw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)31 })));
255         assertEquals("IA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)32 })));
256         assertEquals("IQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)33 })));
257         assertEquals("Ig==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)34 })));
258         assertEquals("Iw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)35 })));
259         assertEquals("JA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)36 })));
260         assertEquals("JQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)37 })));
261         assertEquals("Jg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)38 })));
262         assertEquals("Jw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)39 })));
263         assertEquals("KA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)40 })));
264         assertEquals("KQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)41 })));
265         assertEquals("Kg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)42 })));
266         assertEquals("Kw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)43 })));
267         assertEquals("LA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)44 })));
268         assertEquals("LQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)45 })));
269         assertEquals("Lg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)46 })));
270         assertEquals("Lw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)47 })));
271         assertEquals("MA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)48 })));
272         assertEquals("MQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)49 })));
273         assertEquals("Mg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)50 })));
274         assertEquals("Mw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)51 })));
275         assertEquals("NA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)52 })));
276         assertEquals("NQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)53 })));
277         assertEquals("Ng==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)54 })));
278         assertEquals("Nw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)55 })));
279         assertEquals("OA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)56 })));
280         assertEquals("OQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)57 })));
281         assertEquals("Og==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)58 })));
282         assertEquals("Ow==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)59 })));
283         assertEquals("PA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)60 })));
284         assertEquals("PQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)61 })));
285         assertEquals("Pg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)62 })));
286         assertEquals("Pw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)63 })));
287         assertEquals("QA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)64 })));
288         assertEquals("QQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)65 })));
289         assertEquals("Qg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)66 })));
290         assertEquals("Qw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)67 })));
291         assertEquals("RA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)68 })));
292         assertEquals("RQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)69 })));
293         assertEquals("Rg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)70 })));
294         assertEquals("Rw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)71 })));
295         assertEquals("SA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)72 })));
296         assertEquals("SQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)73 })));
297         assertEquals("Sg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)74 })));
298         assertEquals("Sw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)75 })));
299         assertEquals("TA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)76 })));
300         assertEquals("TQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)77 })));
301         assertEquals("Tg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)78 })));
302         assertEquals("Tw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)79 })));
303         assertEquals("UA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)80 })));
304         assertEquals("UQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)81 })));
305         assertEquals("Ug==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)82 })));
306         assertEquals("Uw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)83 })));
307         assertEquals("VA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)84 })));
308         assertEquals("VQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)85 })));
309         assertEquals("Vg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)86 })));
310         assertEquals("Vw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)87 })));
311         assertEquals("WA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)88 })));
312         assertEquals("WQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)89 })));
313         assertEquals("Wg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)90 })));
314         assertEquals("Ww==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)91 })));
315         assertEquals("XA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)92 })));
316         assertEquals("XQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)93 })));
317         assertEquals("Xg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)94 })));
318         assertEquals("Xw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)95 })));
319         assertEquals("YA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)96 })));
320         assertEquals("YQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)97 })));
321         assertEquals("Yg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)98 })));
322         assertEquals("Yw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)99 })));
323         assertEquals("ZA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)100 })));
324         assertEquals("ZQ==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)101 })));
325         assertEquals("Zg==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)102 })));
326         assertEquals("Zw==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)103 })));
327         assertEquals("aA==\r\n",new String JavaDoc(Base64.encodeBase64Chunked(new byte[] { (byte)104 })));
328     }
329
330     public void testTriplets() {
331         assertEquals("AAAA",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)0 })));
332         assertEquals("AAAB",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)1 })));
333         assertEquals("AAAC",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)2 })));
334         assertEquals("AAAD",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)3 })));
335         assertEquals("AAAE",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)4 })));
336         assertEquals("AAAF",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)5 })));
337         assertEquals("AAAG",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)6 })));
338         assertEquals("AAAH",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)7 })));
339         assertEquals("AAAI",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)8 })));
340         assertEquals("AAAJ",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)9 })));
341         assertEquals("AAAK",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)10 })));
342         assertEquals("AAAL",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)11 })));
343         assertEquals("AAAM",new String JavaDoc(Base64.encodeBase64(new byte[] { (byte)0, (byte)0, (byte)12 })));
344         assertEquals("AAAN",new