test/java/util/Base64/TestBase64.java

Print this page

        

*** 21,31 **** * questions. */ /** * @test 4235519 8004212 8005394 8007298 8006295 8006315 8006530 8007379 8008925 ! * 8014217 8025003 * @summary tests java.util.Base64 */ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; --- 21,31 ---- * questions. */ /** * @test 4235519 8004212 8005394 8007298 8006295 8006315 8006530 8007379 8008925 ! * 8014217 8025003 8026330 * @summary tests java.util.Base64 */ import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream;
*** 45,60 **** if (args.length > 1) { numRuns = Integer.parseInt(args[0]); numBytes = Integer.parseInt(args[1]); } ! test(Base64.getEncoder(), Base64.getDecoder(), ! numRuns, numBytes); ! test(Base64.getUrlEncoder(), Base64.getUrlDecoder(), ! numRuns, numBytes); ! test(Base64.getMimeEncoder(), Base64.getMimeDecoder(), ! numRuns, numBytes); Random rnd = new java.util.Random(); byte[] nl_1 = new byte[] {'\n'}; byte[] nl_2 = new byte[] {'\n', '\r'}; byte[] nl_3 = new byte[] {'\n', '\r', '\n'}; --- 45,57 ---- if (args.length > 1) { numRuns = Integer.parseInt(args[0]); numBytes = Integer.parseInt(args[1]); } ! test(Base64.getEncoder(), Base64.getDecoder(), numRuns, numBytes); ! test(Base64.getUrlEncoder(), Base64.getUrlDecoder(), numRuns, numBytes); ! test(Base64.getMimeEncoder(), Base64.getMimeDecoder(), numRuns, numBytes); Random rnd = new java.util.Random(); byte[] nl_1 = new byte[] {'\n'}; byte[] nl_2 = new byte[] {'\n', '\r'}; byte[] nl_3 = new byte[] {'\n', '\r', '\n'};
*** 140,149 **** --- 137,150 ---- Random rnd = new java.util.Random(); enc.encode(new byte[0]); dec.decode(new byte[0]); + for (boolean withoutPadding : new boolean[] { false, true}) { + if (withoutPadding) { + enc = enc.withoutPadding(); + } for (int i=0; i<numRuns; i++) { for (int j=1; j<numBytes; j++) { byte[] orig = new byte[j]; rnd.nextBytes(orig);
*** 151,167 **** byte[] encoded = enc.encode(orig); byte[] decoded = dec.decode(encoded); checkEqual(orig, decoded, "Base64 array encoding/decoding failed!"); ! // compare to sun.misc.BASE64Encoder byte[] encoded2 = sunmisc.encode(orig).getBytes("ASCII"); ! checkEqual(normalize(encoded), ! normalize(encoded2), "Base64 enc.encode() does not match sun.misc.base64!"); ! // remove padding '=' to test non-padding decoding case if (encoded[encoded.length -2] == '=') encoded2 = Arrays.copyOf(encoded, encoded.length -2); else if (encoded[encoded.length -1] == '=') encoded2 = Arrays.copyOf(encoded, encoded.length -1); --- 152,173 ---- byte[] encoded = enc.encode(orig); byte[] decoded = dec.decode(encoded); checkEqual(orig, decoded, "Base64 array encoding/decoding failed!"); ! if (withoutPadding) { ! if (encoded[encoded.length - 1] == '=') ! throw new RuntimeException( ! "Base64 enc.encode().withoutPadding() has padding!"); ! } // compare to sun.misc.BASE64Encoder + byte[] encoded2 = sunmisc.encode(orig).getBytes("ASCII"); ! if (!withoutPadding) { // don't test for withoutPadding() ! checkEqual(normalize(encoded), normalize(encoded2), "Base64 enc.encode() does not match sun.misc.base64!"); ! } // remove padding '=' to test non-padding decoding case if (encoded[encoded.length -2] == '=') encoded2 = Arrays.copyOf(encoded, encoded.length -2); else if (encoded[encoded.length -1] == '=') encoded2 = Arrays.copyOf(encoded, encoded.length -1);
*** 302,311 **** --- 308,318 ---- "Base64 dec.decode(src, dst) failed!"); } } } + } private static final byte[] ba_null = null; private static final String str_null = null; private static final ByteBuffer bb_null = null;