⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 base64test.java

📁 一个很实用的东东
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
/*
 * 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 + -