diff --git a/modules/org.restlet.test/pom.xml b/modules/org.restlet.test/pom.xml
index 43bcc17a54..f3a06bb16b 100644
--- a/modules/org.restlet.test/pom.xml
+++ b/modules/org.restlet.test/pom.xml
@@ -214,5 +214,11 @@
2.4-SNAPSHOT
+
+ org.restlet.dev
+ org.restlet.ext.nio
+ 2.4-SNAPSHOT
+
+
diff --git a/modules/org.restlet.test/src/main/java/org/restlet/test/engine/EngineTestSuite.java b/modules/org.restlet.test/src/main/java/org/restlet/test/engine/EngineTestSuite.java
index 0db1da87c9..9699910d2c 100644
--- a/modules/org.restlet.test/src/main/java/org/restlet/test/engine/EngineTestSuite.java
+++ b/modules/org.restlet.test/src/main/java/org/restlet/test/engine/EngineTestSuite.java
@@ -31,9 +31,7 @@
import org.restlet.test.engine.connector.ConnectorsTestSuite;
import org.restlet.test.engine.connector.HttpInboundRequestTestCase;
import org.restlet.test.engine.io.BioUtilsTestCase;
-import org.restlet.test.engine.io.BufferTestCase;
import org.restlet.test.engine.io.ReaderInputStreamTestCase;
-import org.restlet.test.engine.util.Base64TestCase;
/**
* Suite of unit tests for the Restlet Framework.
@@ -56,8 +54,6 @@ public EngineTestSuite() {
super("Engine package");
addTestSuite(AlphaNumericComparatorTestCase.class);
addTestSuite(AnnotationUtilsTestCase.class);
- addTestSuite(Base64TestCase.class);
- addTestSuite(BufferTestCase.class);
addTestSuite(BioUtilsTestCase.class);
addTestSuite(CookiesTestCase.class);
addTestSuite(ContentTypeTestCase.class);
diff --git a/modules/org.restlet.test/src/main/java/org/restlet/test/engine/HeaderTestCase.java b/modules/org.restlet.test/src/main/java/org/restlet/test/engine/HeaderTestCase.java
index d0fa8ae821..d573e3d27a 100644
--- a/modules/org.restlet.test/src/main/java/org/restlet/test/engine/HeaderTestCase.java
+++ b/modules/org.restlet.test/src/main/java/org/restlet/test/engine/HeaderTestCase.java
@@ -26,6 +26,7 @@
import java.io.IOException;
import java.util.ArrayList;
+import java.util.Base64;
import java.util.Date;
import java.util.List;
@@ -39,7 +40,6 @@
import org.restlet.engine.header.HeaderUtils;
import org.restlet.engine.header.PreferenceReader;
import org.restlet.engine.header.TokenReader;
-import org.restlet.engine.util.Base64;
import org.restlet.engine.util.DateUtils;
import org.restlet.representation.Representation;
import org.restlet.test.RestletTestCase;
@@ -100,11 +100,10 @@ public void testExtracting() {
ArrayList headers = new ArrayList();
String md5hash = "aaaaaaaaaaaaaaaa";
// encodes to "YWFhYWFhYWFhYWFhYWFhYQ==", the "==" at the end is padding
- String encodedWithPadding = Base64.encode(md5hash.getBytes(), false);
+ String encodedWithPadding = Base64.getEncoder().encodeToString(md5hash.getBytes());
String encodedNoPadding = encodedWithPadding.substring(0, 22);
- Header header = new Header(HeaderConstants.HEADER_CONTENT_MD5,
- encodedWithPadding);
+ Header header = new Header(HeaderConstants.HEADER_CONTENT_MD5, encodedWithPadding);
headers.add(header);
// extract Content-MD5 header with padded Base64 encoding, make sure it
diff --git a/modules/org.restlet.test/src/main/java/org/restlet/test/engine/util/Base64TestCase.java b/modules/org.restlet.test/src/main/java/org/restlet/test/engine/util/Base64TestCase.java
deleted file mode 100644
index 1871d97f0c..0000000000
--- a/modules/org.restlet.test/src/main/java/org/restlet/test/engine/util/Base64TestCase.java
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Copyright 2005-2017 Restlet
- *
- * The contents of this file are subject to the terms of one of the following
- * open source licenses: Apache 2.0 or or EPL 1.0 (the "Licenses"). You can
- * select the license that you prefer but you may not use this file except in
- * compliance with one of these Licenses.
- *
- * You can obtain a copy of the Apache 2.0 license at
- * http://www.opensource.org/licenses/apache-2.0
- *
- * You can obtain a copy of the EPL 1.0 license at
- * http://www.opensource.org/licenses/eclipse-1.0
- *
- * See the Licenses for the specific language governing permissions and
- * limitations under the Licenses.
- *
- * Alternatively, you can obtain a royalty free commercial license with less
- * limitations, transferable or non-transferable, directly at
- * http://restlet.com/products/restlet-framework
- *
- * Restlet is a registered trademark of Restlet S.A.S.
- */
-
-package org.restlet.test.engine.util;
-
-import java.io.UnsupportedEncodingException;
-import java.util.Arrays;
-
-import org.restlet.engine.util.Base64;
-import org.restlet.test.RestletTestCase;
-
-/**
- * Base64 test case.
- *
- * @author Ray Waldin.
- */
-public class Base64TestCase extends RestletTestCase {
-
- public void roundTrip(byte[] bytes, boolean newlines) throws Exception {
- assert (Arrays.equals(Base64.decode(Base64.encode(bytes, newlines)),
- bytes));
- }
-
- public void test() throws Exception {
- byte[] b = ("Man is distinguished, not only by his reason, but by this singular passion from "
- + "other animals, which is a lust of the mind, that by a perseverance of delight "
- + "in the continued and indefatigable generation of knowledge, exceeds the short "
- + "vehemence of any carnal pleasure.").getBytes();
- String s = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz\n"
- + "IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg\n"
- + "dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu\n"
- + "dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo\n"
- + "ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=";
- String base64 = Base64.encode(b, true);
-
- assertEquals(s, base64);
- roundTrip(b, true);
- assertEquals(new String(b), new String(Base64.decode(base64)));
- assertEquals("scott:tiger",
- new String(Base64.decode("c2NvdHQ6dGlnZXI=")));
- }
-
- public void testParsing() throws UnsupportedEncodingException {
- String header = "MGRjM2VhZWQtOWRiNi00NGQ0LWI3NDktNjI5MzgyMDdiNWIwOjBiYWU3MmFiLWFmZjYtNGFhZS1iYmU1LTkxxNjNmNjBkMQ==";
-
- try {
- Base64.decode(header);
- fail("Values that aren't multiple of 4 are not allowed");
- } catch (IllegalArgumentException iae) {
- // OK
- }
- }
-}
diff --git a/modules/org.restlet/src/test/java/org/restlet/engine/util/Base64Test.java b/modules/org.restlet/src/test/java/org/restlet/engine/util/Base64Test.java
deleted file mode 100644
index ef183fb40a..0000000000
--- a/modules/org.restlet/src/test/java/org/restlet/engine/util/Base64Test.java
+++ /dev/null
@@ -1,49 +0,0 @@
-package org.restlet.engine.util;
-
-import junit.framework.TestCase;
-
-public class Base64Test extends TestCase {
-
- private static final String REFERENCE_HUMAN_READABLE_TEXT = "Man is distinguished, not only by his reason, but by this singular passion from " +
- "other animals, which is a lust of the mind, that by a perseverance of delight " +
- "in the continued and indefatigable generation of knowledge, exceeds the short " +
- "vehemence of any carnal pleasure.";
- private static final byte[] REFERENCE_TEXT_AS_BYTES_ARRAY = REFERENCE_HUMAN_READABLE_TEXT.getBytes();
-
- private static final String REFERENCE_TEXT_ENCODED = "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz" +
- "IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg" +
- "dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu" +
- "dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo" +
- "ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=";
-
- private static final String REFERENCE_TEXT_ENCODED_WITH_NEWLINES_FORMATTING =
- "TWFuIGlzIGRpc3Rpbmd1aXNoZWQsIG5vdCBvbmx5IGJ5IGhpcyByZWFzb24sIGJ1dCBieSB0aGlz\n" +
- "IHNpbmd1bGFyIHBhc3Npb24gZnJvbSBvdGhlciBhbmltYWxzLCB3aGljaCBpcyBhIGx1c3Qgb2Yg\n" +
- "dGhlIG1pbmQsIHRoYXQgYnkgYSBwZXJzZXZlcmFuY2Ugb2YgZGVsaWdodCBpbiB0aGUgY29udGlu\n" +
- "dWVkIGFuZCBpbmRlZmF0aWdhYmxlIGdlbmVyYXRpb24gb2Yga25vd2xlZGdlLCBleGNlZWRzIHRo\n" +
- "ZSBzaG9ydCB2ZWhlbWVuY2Ugb2YgYW55IGNhcm5hbCBwbGVhc3VyZS4=";
-
-
- public void test_restlet_base64_encoding_without_newlines_should_be_equal_jdk_base64_encoding() {
- assertEquals(REFERENCE_TEXT_ENCODED, Base64.encode(REFERENCE_TEXT_AS_BYTES_ARRAY, false));
- assertEquals(REFERENCE_TEXT_ENCODED, java.util.Base64.getEncoder().encodeToString(REFERENCE_TEXT_AS_BYTES_ARRAY));
- }
-
- public void test_restlet_base64_encoding_with_newlines_should_be_equal_jdk_mime_base64_encoding() {
- assertEquals(REFERENCE_TEXT_ENCODED_WITH_NEWLINES_FORMATTING, Base64.encode(REFERENCE_TEXT_AS_BYTES_ARRAY, true));
- }
-
- public void test_restlet_base64_decoding_should_be_equal_jdk_base64_decoding() {
- byte[] rf_decoded_bytes = Base64.decode(REFERENCE_TEXT_ENCODED);
- byte[] jdk_decoded_bytes = java.util.Base64.getDecoder().decode(REFERENCE_TEXT_ENCODED);
-
- assertEquals(REFERENCE_TEXT_AS_BYTES_ARRAY.length, rf_decoded_bytes.length);
- assertEquals(REFERENCE_TEXT_AS_BYTES_ARRAY.length, jdk_decoded_bytes.length);
-
- for (int i = 0; i < REFERENCE_TEXT_AS_BYTES_ARRAY.length; i++) {
- assertEquals(REFERENCE_TEXT_AS_BYTES_ARRAY[i], rf_decoded_bytes[i]);
- assertEquals(REFERENCE_TEXT_AS_BYTES_ARRAY[i], jdk_decoded_bytes[i]);
- }
- }
-
-}