📄 base64test.java
字号:
/*
* Copyright 2001-2004 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.commons.codec.binary;
import java.util.Arrays;
import java.util.Random;
import junit.framework.TestCase;
/**
* @version $Id: Base64Test.java,v 1.15 2004/04/19 01:14:29 ggregory Exp $
* @author Apache Software Foundation
*/
public class Base64Test extends TestCase {
/**
* Construct a new instance of this test case.
*
* @param name Name of the test case
*/
public Base64Test(String name) {
super(name);
}
/**
* Test the Base64 implementation
*/
public void testBase64() {
String content = "Hello World";
String encodedContent;
encodedContent = new String(Base64.encodeBase64(content.getBytes()));
assertTrue("encoding hello world", encodedContent.equals("SGVsbG8gV29ybGQ="));
}
/**
* Tests conditional true branch for "marker0" test.
*/
public void testDecodePadMarkerIndex2() {
assertEquals("A", new String(Base64.decodeBase64("QQ==".getBytes())));
}
/**
* Tests conditional branches for "marker1" test.
*/
public void testDecodePadMarkerIndex3() {
assertEquals("AA", new String(Base64.decodeBase64("QUE=".getBytes())));
assertEquals("AAA", new String(Base64.decodeBase64("QUFB".getBytes())));
}
public void testDecodePadOnly() {
assertTrue(Base64.decodeBase64("====".getBytes()).length == 0);
assertEquals("", new String(Base64.decodeBase64("====".getBytes())));
}
public void testDecodePadOnlyChunked() {
assertTrue(Base64.decodeBase64("====\n".getBytes()).length == 0);
assertEquals("", new String(Base64.decodeBase64("====\n".getBytes())));
}
// encode/decode random arrays from size 0 to size 11
public void testEncodeDecodeSmall() {
for(int i=0;i<12;i++) {
byte[] data = new byte[i];
this.getRandom().nextBytes(data);
byte[] enc = Base64.encodeBase64(data);
assertTrue("\"" + (new String(enc)) + "\" is Base64 data.",Base64.isArrayByteBase64(enc) );
byte[] data2 = Base64.decodeBase64(enc);
assertTrue(toString(data) + " equals " + toString(data2), Arrays.equals(data,data2));
}
}
// encode/decode a large random array
public void testEncodeDecodeRandom() {
for(int i=1;i<5;i++) {
byte[] data = new byte[this.getRandom().nextInt(10000)+1];
this.getRandom().nextBytes(data);
byte[] enc = Base64.encodeBase64(data);
assertTrue(Base64.isArrayByteBase64(enc));
byte[] data2 = Base64.decodeBase64(enc);
assertTrue(Arrays.equals(data,data2));
}
}
/**
* Tests RFC 2045 section 2.1 CRLF definition.
*/
public void testRfc2045Section2Dot1CrLfDefinition() {
assertTrue(Arrays.equals(new byte[] {13, 10}, Base64.CHUNK_SEPARATOR));
}
/**
* Tests RFC 2045 section 6.8 chuck size definition.
*/
public void testRfc2045Section6Dot8ChunkSizeDefinition() {
assertEquals(76, Base64.CHUNK_SIZE);
}
public void testSingletons() {
assertEquals("AA==",new String(Base64.encodeBase64(new byte[] { (byte)0 })));
assertEquals("AQ==",new String(Base64.encodeBase64(new byte[] { (byte)1 })));
assertEquals("Ag==",new String(Base64.encodeBase64(new byte[] { (byte)2 })));
assertEquals("Aw==",new String(Base64.encodeBase64(new byte[] { (byte)3 })));
assertEquals("BA==",new String(Base64.encodeBase64(new byte[] { (byte)4 })));
assertEquals("BQ==",new String(Base64.encodeBase64(new byte[] { (byte)5 })));
assertEquals("Bg==",new String(Base64.encodeBase64(new byte[] { (byte)6 })));
assertEquals("Bw==",new String(Base64.encodeBase64(new byte[] { (byte)7 })));
assertEquals("CA==",new String(Base64.encodeBase64(new byte[] { (byte)8 })));
assertEquals("CQ==",new String(Base64.encodeBase64(new byte[] { (byte)9 })));
assertEquals("Cg==",new String(Base64.encodeBase64(new byte[] { (byte)10 })));
assertEquals("Cw==",new String(Base64.encodeBase64(new byte[] { (byte)11 })));
assertEquals("DA==",new String(Base64.encodeBase64(new byte[] { (byte)12 })));
assertEquals("DQ==",new String(Base64.encodeBase64(new byte[] { (byte)13 })));
assertEquals("Dg==",new String(Base64.encodeBase64(new byte[] { (byte)14 })));
assertEquals("Dw==",new String(Base64.encodeBase64(new byte[] { (byte)15 })));
assertEquals("EA==",new String(Base64.encodeBase64(new byte[] { (byte)16 })));
assertEquals("EQ==",new String(Base64.encodeBase64(new byte[] { (byte)17 })));
assertEquals("Eg==",new String(Base64.encodeBase64(new byte[] { (byte)18 })));
assertEquals("Ew==",new String(Base64.encodeBase64(new byte[] { (byte)19 })));
assertEquals("FA==",new String(Base64.encodeBase64(new byte[] { (byte)20 })));
assertEquals("FQ==",new String(Base64.encodeBase64(new byte[] { (byte)21 })));
assertEquals("Fg==",new String(Base64.encodeBase64(new byte[] { (byte)22 })));
assertEquals("Fw==",new String(Base64.encodeBase64(new byte[] { (byte)23 })));
assertEquals("GA==",new String(Base64.encodeBase64(new byte[] { (byte)24 })));
assertEquals("GQ==",new String(Base64.encodeBase64(new byte[] { (byte)25 })));
assertEquals("Gg==",new String(Base64.encodeBase64(new byte[] { (byte)26 })));
assertEquals("Gw==",new String(Base64.encodeBase64(new byte[] { (byte)27 })));
assertEquals("HA==",new String(Base64.encodeBase64(new byte[] { (byte)28 })));
assertEquals("HQ==",new String(Base64.encodeBase64(new byte[] { (byte)29 })));
assertEquals("Hg==",new String(Base64.encodeBase64(new byte[] { (byte)30 })));
assertEquals("Hw==",new String(Base64.encodeBase64(new byte[] { (byte)31 })));
assertEquals("IA==",new String(Base64.encodeBase64(new byte[] { (byte)32 })));
assertEquals("IQ==",new String(Base64.encodeBase64(new byte[] { (byte)33 })));
assertEquals("Ig==",new String(Base64.encodeBase64(new byte[] { (byte)34 })));
assertEquals("Iw==",new String(Base64.encodeBase64(new byte[] { (byte)35 })));
assertEquals("JA==",new String(Base64.encodeBase64(new byte[] { (byte)36 })));
assertEquals("JQ==",new String(Base64.encodeBase64(new byte[] { (byte)37 })));
assertEquals("Jg==",new String(Base64.encodeBase64(new byte[] { (byte)38 })));
assertEquals("Jw==",new String(Base64.encodeBase64(new byte[] { (byte)39 })));
assertEquals("KA==",new String(Base64.encodeBase64(new byte[] { (byte)40 })));
assertEquals("KQ==",new String(Base64.encodeBase64(new byte[] { (byte)41 })));
assertEquals("Kg==",new String(Base64.encodeBase64(new byte[] { (byte)42 })));
assertEquals("Kw==",new String(Base64.encodeBase64(new byte[] { (byte)43 })));
assertEquals("LA==",new String(Base64.encodeBase64(new byte[] { (byte)44 })));
assertEquals("LQ==",new String(Base64.encodeBase64(new byte[] { (byte)45 })));
assertEquals("Lg==",new String(Base64.encodeBase64(new byte[] { (byte)46 })));
assertEquals("Lw==",new String(Base64.encodeBase64(new byte[] { (byte)47 })));
assertEquals("MA==",new String(Base64.encodeBase64(new byte[] { (byte)48 })));
assertEquals("MQ==",new String(Base64.encodeBase64(new byte[] { (byte)49 })));
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -