Merge "Move apache HTTP tests out of tests/net"
diff --git a/tests/cts/net/Android.bp b/tests/cts/net/Android.bp
index 913380a..528171a 100644
--- a/tests/cts/net/Android.bp
+++ b/tests/cts/net/Android.bp
@@ -21,7 +21,6 @@
libs: [
"voip-common",
- "org.apache.http.legacy",
"android.test.base",
],
@@ -40,14 +39,11 @@
static_libs: [
"FrameworksNetCommonTests",
"TestNetworkStackLib",
- "compatibility-device-util-axt",
"core-tests-support",
"cts-net-utils",
"ctstestrunner-axt",
- "ctstestserver",
"junit",
"junit-params",
- "mockwebserver",
"net-utils-framework-common",
"truth-prebuilt",
],
diff --git a/tests/cts/net/src/android/net/http/cts/ApacheHttpClientTest.java b/tests/cts/net/src/android/net/http/cts/ApacheHttpClientTest.java
deleted file mode 100644
index 8d7dff0..0000000
--- a/tests/cts/net/src/android/net/http/cts/ApacheHttpClientTest.java
+++ /dev/null
@@ -1,95 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * 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 android.net.http.cts;
-
-import org.apache.http.HttpResponse;
-import org.apache.http.client.ClientProtocolException;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
-import org.apache.http.impl.client.DefaultHttpClient;
-
-import android.net.Uri;
-import android.platform.test.annotations.AppModeFull;
-import android.test.AndroidTestCase;
-import android.webkit.cts.CtsTestServer;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.List;
-
-@AppModeFull(reason = "Socket cannot bind in instant app mode")
-public class ApacheHttpClientTest extends AndroidTestCase {
-
- private static final int NUM_DOWNLOADS = 20;
-
- private static final int SMALL_DOWNLOAD_SIZE = 100 * 1024;
-
- private CtsTestServer mWebServer;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mWebServer = new CtsTestServer(mContext);
- }
-
- @Override
- protected void tearDown() throws Exception {
- super.tearDown();
- mWebServer.shutdown();
- }
-
- public void testExecute() throws Exception {
- downloadMultipleFiles();
- }
-
- private void downloadMultipleFiles() throws ClientProtocolException, IOException {
- List<HttpResponse> responses = new ArrayList<HttpResponse>();
- for (int i = 0; i < NUM_DOWNLOADS; i++) {
- HttpClient httpClient = new DefaultHttpClient();
- HttpGet request = new HttpGet(getSmallDownloadUrl(i).toString());
- HttpResponse response = httpClient.execute(request);
- responses.add(response);
- }
-
- for (int i = 0; i < NUM_DOWNLOADS; i++) {
- assertDownloadResponse("Download " + i, SMALL_DOWNLOAD_SIZE, responses.get(i));
- }
- }
-
- private Uri getSmallDownloadUrl(int index) {
- return Uri.parse(mWebServer.getTestDownloadUrl("cts-small-download-" + index,
- SMALL_DOWNLOAD_SIZE));
- }
-
- private void assertDownloadResponse(String message, int expectedNumBytes, HttpResponse response)
- throws IllegalStateException, IOException {
- byte[] buffer = new byte[4096];
- assertEquals(200, response.getStatusLine().getStatusCode());
-
- InputStream stream = response.getEntity().getContent();
- int numBytes = 0;
- while (true) {
- int bytesRead = stream.read(buffer);
- if (bytesRead < 0) {
- break;
- } else {
- numBytes += bytesRead;
- }
- }
- assertEquals(message, expectedNumBytes, numBytes);
- }
-}
diff --git a/tests/cts/net/src/android/net/http/cts/HttpResponseCacheTest.java b/tests/cts/net/src/android/net/http/cts/HttpResponseCacheTest.java
deleted file mode 100644
index 354954e..0000000
--- a/tests/cts/net/src/android/net/http/cts/HttpResponseCacheTest.java
+++ /dev/null
@@ -1,162 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * 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 android.net.http.cts;
-
-import com.google.mockwebserver.MockResponse;
-import com.google.mockwebserver.MockWebServer;
-
-import junit.framework.TestCase;
-
-import android.net.http.HttpResponseCache;
-import android.platform.test.annotations.AppModeFull;
-
-import com.android.compatibility.common.util.FileUtils;
-
-import java.io.File;
-import java.io.InputStream;
-import java.net.CacheRequest;
-import java.net.CacheResponse;
-import java.net.ResponseCache;
-import java.net.URI;
-import java.net.URLConnection;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-
-public final class HttpResponseCacheTest extends TestCase {
-
- private File cacheDir;
- private MockWebServer server;
-
- @Override public void setUp() throws Exception {
- super.setUp();
- server = new MockWebServer();
- String tmp = System.getProperty("java.io.tmpdir");
- cacheDir = new File(tmp, "HttpCache-" + UUID.randomUUID());
- cacheDir.mkdirs();
- // Make the cache directory read / writable.
- FileUtils.setPermissions(cacheDir.getPath(), 0777);
- }
-
- @Override protected void tearDown() throws Exception {
- ResponseCache.setDefault(null);
- server.shutdown();
- super.tearDown();
- }
-
- public void testInstall() throws Exception {
- HttpResponseCache installed = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- assertNotNull(installed);
- assertSame(installed, ResponseCache.getDefault());
- assertSame(installed, HttpResponseCache.getDefault());
- }
-
- public void testSecondEquivalentInstallDoesNothing() throws Exception {
- HttpResponseCache first = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- HttpResponseCache another = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- assertSame(first, another);
- }
-
- public void testInstallClosesPreviouslyInstalled() throws Exception {
- HttpResponseCache first = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- initializeCache(first);
-
- HttpResponseCache another = HttpResponseCache.install(cacheDir, 8 * 1024 * 1024);
- initializeCache(first);
-
- assertNotSame(first, another);
- try {
- first.flush();
- fail();
- } catch (IllegalStateException expected) {
- }
- }
-
- public void testGetInstalledWithWrongTypeInstalled() {
- ResponseCache.setDefault(new ResponseCache() {
- @Override public CacheResponse get(URI uri, String requestMethod,
- Map<String, List<String>> requestHeaders) {
- return null;
- }
- @Override public CacheRequest put(URI uri, URLConnection connection) {
- return null;
- }
- });
- assertNull(HttpResponseCache.getInstalled());
- }
-
- public void testCloseCloses() throws Exception {
- HttpResponseCache cache = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- initializeCache(cache);
-
- cache.close();
- try {
- cache.flush();
- fail();
- } catch (IllegalStateException expected) {
- }
- }
-
- public void testCloseUninstalls() throws Exception {
- HttpResponseCache cache = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- cache.close();
- assertNull(ResponseCache.getDefault());
- }
-
- public void testDeleteUninstalls() throws Exception {
- HttpResponseCache cache = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
- cache.delete();
- assertNull(ResponseCache.getDefault());
- }
-
- /**
- * Make sure that statistics tracking are wired all the way through the
- * wrapper class. http://code.google.com/p/android/issues/detail?id=25418
- */
- @AppModeFull(reason = "Socket cannot bind in instant app mode")
- public void testStatisticsTracking() throws Exception {
- HttpResponseCache cache = HttpResponseCache.install(cacheDir, 10 * 1024 * 1024);
-
- server.enqueue(new MockResponse()
- .addHeader("Cache-Control: max-age=60")
- .setBody("A"));
- server.play();
-
- URLConnection c1 = server.getUrl("/").openConnection();
- InputStream inputStream1 = c1.getInputStream();
- assertEquals('A', inputStream1.read());
- inputStream1.close();
-
- assertEquals(1, cache.getRequestCount());
- assertEquals(1, cache.getNetworkCount());
- assertEquals(0, cache.getHitCount());
-
- URLConnection c2 = server.getUrl("/").openConnection();
- assertEquals('A', c2.getInputStream().read());
-
- URLConnection c3 = server.getUrl("/").openConnection();
- assertEquals('A', c3.getInputStream().read());
- assertEquals(3, cache.getRequestCount());
- assertEquals(1, cache.getNetworkCount());
- assertEquals(2, cache.getHitCount());
- }
-
- private void initializeCache(HttpResponseCache cache) {
- // Ensure the cache is initialized, otherwise various methods are no-ops.
- cache.size();
- }
-}
diff --git a/tests/cts/net/src/android/net/http/cts/SslCertificateTest.java b/tests/cts/net/src/android/net/http/cts/SslCertificateTest.java
deleted file mode 100644
index 95f415c..0000000
--- a/tests/cts/net/src/android/net/http/cts/SslCertificateTest.java
+++ /dev/null
@@ -1,248 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * 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 android.net.http.cts;
-
-import java.math.BigInteger;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.Principal;
-import java.security.PublicKey;
-import java.security.SignatureException;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateExpiredException;
-import java.security.cert.CertificateNotYetValidException;
-import java.security.cert.X509Certificate;
-import java.text.DateFormat;
-import java.util.Date;
-import java.util.Set;
-
-import junit.framework.TestCase;
-import android.net.http.SslCertificate;
-import android.net.http.SslCertificate.DName;
-import android.os.Bundle;
-
-public class SslCertificateTest extends TestCase {
-
- public void testConstructor() {
- // new the SslCertificate instance
- String date = DateFormat.getInstance().format(new Date());
- new SslCertificate("c=129", "e=weji", date, date);
-
- // new the SslCertificate instance
- new SslCertificate(new MockX509Certificate());
-
- }
-
- class MockX509Certificate extends X509Certificate {
-
- @Override
- public void checkValidity() throws CertificateExpiredException,
- CertificateNotYetValidException {
- }
-
- @Override
- public void checkValidity(Date date) throws CertificateExpiredException,
- CertificateNotYetValidException {
- }
-
- @Override
- public int getBasicConstraints() {
- return 0;
- }
-
- @Override
- public Principal getIssuerDN() {
- return new MockPrincipal();
- }
-
- @Override
- public boolean[] getIssuerUniqueID() {
- return null;
- }
-
- @Override
- public boolean[] getKeyUsage() {
- return null;
- }
-
- @Override
- public Date getNotAfter() {
- return new Date(System.currentTimeMillis());
- }
-
- @Override
- public Date getNotBefore() {
- return new Date(System.currentTimeMillis() - 1000);
- }
-
- @Override
- public BigInteger getSerialNumber() {
- return null;
- }
-
- @Override
- public String getSigAlgName() {
- return null;
- }
-
- @Override
- public String getSigAlgOID() {
- return null;
- }
-
- @Override
- public byte[] getSigAlgParams() {
- return null;
- }
-
- @Override
- public byte[] getSignature() {
- return null;
- }
-
- @Override
- public Principal getSubjectDN() {
- return new MockPrincipal();
- }
-
- class MockPrincipal implements Principal {
- public String getName() {
- return null;
- }
- }
- @Override
- public boolean[] getSubjectUniqueID() {
- return null;
- }
-
- @Override
- public byte[] getTBSCertificate() throws CertificateEncodingException {
- return null;
- }
-
- @Override
- public int getVersion() {
- return 0;
- }
-
- @Override
- public byte[] getEncoded() throws CertificateEncodingException {
- return null;
- }
-
- @Override
- public PublicKey getPublicKey() {
- return null;
- }
-
- @Override
- public String toString() {
- return null;
- }
-
- @Override
- public void verify(PublicKey key) throws CertificateException, NoSuchAlgorithmException,
- InvalidKeyException, NoSuchProviderException, SignatureException {
- }
-
- @Override
- public void verify(PublicKey key, String sigProvider) throws CertificateException,
- NoSuchAlgorithmException, InvalidKeyException, NoSuchProviderException,
- SignatureException {
- }
-
- public Set<String> getCriticalExtensionOIDs() {
- return null;
- }
-
- public byte[] getExtensionValue(String oid) {
- return null;
- }
-
- public Set<String> getNonCriticalExtensionOIDs() {
- return null;
- }
-
- public boolean hasUnsupportedCriticalExtension() {
- return false;
- }
- }
-
- public void testState() {
- // set the expected value
-
- Date date1 = new Date(System.currentTimeMillis() - 1000);
- Date date2 = new Date(System.currentTimeMillis());
- SslCertificate ssl = new SslCertificate("c=129", "e=weji", date1, date2);
- Bundle saved = SslCertificate.saveState(ssl);
- assertTrue(saved.size() == 4);
-
- assertNotNull(saved.getString("issued-to"));
- assertNotNull(saved.getString("issued-by"));
- assertNotNull(saved.getString("valid-not-before"));
- assertNotNull(saved.getString("valid-not-after"));
- assertNull(SslCertificate.saveState(null));
-
- SslCertificate restored = SslCertificate.restoreState(saved);
- assertEquals(ssl.getValidNotAfter(), restored.getValidNotAfter());
- assertEquals(ssl.getValidNotBefore(), restored.getValidNotBefore());
- }
-
- public void testSslCertificate() {
-
- final String TO = "c=ccc,o=testOName,ou=testUName,cn=testCName";
- final String BY = "e=aeei,c=adb,o=testOName,ou=testUName,cn=testCName";
- // new the SslCertificate instance
- Date date1 = new Date(System.currentTimeMillis() - 1000);
- Date date2 = new Date(System.currentTimeMillis());
- SslCertificate ssl = new SslCertificate(TO, BY, date1, date2);
- DName issuedTo = ssl.getIssuedTo();
- DName issuedBy = ssl.getIssuedBy();
-
- assertEquals("testCName", issuedTo.getCName());
- assertEquals(TO, issuedTo.getDName());
- assertEquals("testOName", issuedTo.getOName());
- assertEquals("testUName", issuedTo.getUName());
-
- assertEquals("testCName", issuedBy.getCName());
- assertEquals(BY, issuedBy.getDName());
- assertEquals("testOName", issuedBy.getOName());
- assertEquals("testUName", issuedBy.getUName());
-
- assertEquals(date1, ssl.getValidNotBeforeDate());
- assertEquals(date2, ssl.getValidNotAfterDate());
- final String EXPECTED = "Issued to: c=ccc,o=testOName,ou=testUName,cn=testCName;\n"
- + "Issued by: e=aeei,c=adb,o=testOName,ou=testUName,cn=testCName;\n";
- assertEquals(EXPECTED, ssl.toString());
- assertNull(ssl.getX509Certificate());
- }
-
- public void testGetX509Certificate() {
- final String TO = "c=ccc,o=testOName,ou=testUName,cn=testCName";
- final String BY = "e=aeei,c=adb,o=testOName,ou=testUName,cn=testCName";
- Date validNotBefore = new Date(System.currentTimeMillis() - 1000);
- Date validNotAfter = new Date(System.currentTimeMillis());
- SslCertificate ssl = new SslCertificate(TO, BY, validNotBefore, validNotAfter);
- assertNull(ssl.getX509Certificate());
-
- X509Certificate cert = new MockX509Certificate();
- ssl = new SslCertificate(cert);
- assertSame(cert, ssl.getX509Certificate());
- }
-}
diff --git a/tests/cts/net/src/android/net/http/cts/SslCertificate_DNameTest.java b/tests/cts/net/src/android/net/http/cts/SslCertificate_DNameTest.java
deleted file mode 100644
index b0c71e8..0000000
--- a/tests/cts/net/src/android/net/http/cts/SslCertificate_DNameTest.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- * Copyright (C) 2008 The Android Open Source Project
- *
- * 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 android.net.http.cts;
-
-import java.text.DateFormat;
-import java.util.Date;
-
-import junit.framework.TestCase;
-import android.net.http.SslCertificate;
-import android.net.http.SslCertificate.DName;
-
-public class SslCertificate_DNameTest extends TestCase {
-
- public void testDName() {
- final String TO = "c=ccc,o=testOName,ou=testUName,cn=testCName";
- final String BY = "e=aeei,c=adb,o=testOName,ou=testUName,cn=testCName";
- // new the SslCertificate instance
- Date date1 = new Date(System.currentTimeMillis() - 1000);
- Date date2 = new Date(System.currentTimeMillis());
- SslCertificate ssl = new SslCertificate(TO, BY, DateFormat.getInstance().format(
- date1), DateFormat.getInstance().format(date2));
- DName issuedTo = ssl.getIssuedTo();
-
- assertNotNull(issuedTo);
-
- assertEquals("testCName", issuedTo.getCName());
- assertEquals(TO, issuedTo.getDName());
- assertEquals("testOName", issuedTo.getOName());
- assertEquals("testUName", issuedTo.getUName());
- }
-
-}
diff --git a/tests/cts/net/src/android/net/http/cts/SslErrorTest.java b/tests/cts/net/src/android/net/http/cts/SslErrorTest.java
deleted file mode 100644
index 0058c90..0000000
--- a/tests/cts/net/src/android/net/http/cts/SslErrorTest.java
+++ /dev/null
@@ -1,85 +0,0 @@
-/*
- * Copyright (C) 2011 The Android Open Source Project
- *
- * 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 android.net.http.cts;
-
-import android.net.http.SslCertificate;
-import android.net.http.SslError;
-
-
-import java.util.Date;
-
-import junit.framework.TestCase;
-
-public class SslErrorTest extends TestCase {
- private SslCertificate mCertificate;
-
- @Override
- protected void setUp() throws Exception {
- super.setUp();
- mCertificate = new SslCertificate("foo", "bar", new Date(42), new Date(43));
- }
-
- public void testHasError() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate);
- assertTrue(error.hasError(SslError.SSL_EXPIRED));
- assertFalse(error.hasError(SslError.SSL_UNTRUSTED));
- }
-
- public void testAddError() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate);
- assertFalse(error.hasError(SslError.SSL_UNTRUSTED));
- error.addError(SslError.SSL_UNTRUSTED);
- assertTrue(error.hasError(SslError.SSL_UNTRUSTED));
- }
-
- public void testAddErrorIgnoresInvalidValues() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate);
- error.addError(42);
- assertFalse(error.hasError(42));
- }
-
- public void testConstructorIgnoresInvalidValues() {
- SslError error = new SslError(42, mCertificate);
- assertFalse(error.hasError(42));
- }
-
- public void testGetPrimaryError() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate);
- error.addError(SslError.SSL_UNTRUSTED);
- assertEquals(error.getPrimaryError(), SslError.SSL_UNTRUSTED);
- }
-
- public void testGetPrimaryErrorWithEmptySet() {
- SslError error = new SslError(42, mCertificate);
- assertEquals(error.getPrimaryError(), -1);
- }
-
- public void testGetUrl() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate, "foo");
- assertEquals(error.getUrl(), "foo");
- }
-
- public void testGetUrlWithDeprecatedConstructor() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate);
- assertEquals(error.getUrl(), "");
- }
-
- public void testGetCertificate() {
- SslError error = new SslError(SslError.SSL_EXPIRED, mCertificate);
- assertEquals(mCertificate, error.getCertificate());
- }
-}
diff --git a/tests/cts/net/src/android/net/http/cts/X509TrustManagerExtensionsTest.java b/tests/cts/net/src/android/net/http/cts/X509TrustManagerExtensionsTest.java
deleted file mode 100644
index 99de614..0000000
--- a/tests/cts/net/src/android/net/http/cts/X509TrustManagerExtensionsTest.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * 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 android.net.http.cts;
-
-import android.net.http.X509TrustManagerExtensions;
-
-import java.security.KeyStore;
-import java.security.cert.Certificate;
-import java.security.cert.X509Certificate;
-
-import javax.net.ssl.TrustManager;
-import javax.net.ssl.TrustManagerFactory;
-import javax.net.ssl.X509TrustManager;
-
-import junit.framework.TestCase;
-
-public class X509TrustManagerExtensionsTest extends TestCase {
-
- private static X509TrustManager getFirstX509TrustManager(TrustManagerFactory tmf)
- throws Exception {
- for (TrustManager trustManager : tmf.getTrustManagers()) {
- if (trustManager instanceof X509TrustManager) {
- return (X509TrustManager) trustManager;
- }
- }
- fail("Unable to find X509TrustManager");
- return null;
- }
-
- public void testIsUserAddedCertificateDefaults() throws Exception {
- final TrustManagerFactory tmf =
- TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
- tmf.init((KeyStore) null);
- X509TrustManager tm = getFirstX509TrustManager(tmf);
- X509TrustManagerExtensions xtm = new X509TrustManagerExtensions(tm);
- // Verify that all the default system provided CAs are not marked as user added.
- for (Certificate cert : tm.getAcceptedIssuers()) {
- assertFalse(xtm.isUserAddedCertificate((X509Certificate) cert));
- }
- }
-}
diff --git a/tests/cts/net/src/org/apache/http/conn/ssl/cts/AbstractVerifierTest.java b/tests/cts/net/src/org/apache/http/conn/ssl/cts/AbstractVerifierTest.java
deleted file mode 100644
index 5e2a55e..0000000
--- a/tests/cts/net/src/org/apache/http/conn/ssl/cts/AbstractVerifierTest.java
+++ /dev/null
@@ -1,306 +0,0 @@
-/*
- * Copyright (C) 2010 The Android Open Source Project
- *
- * 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.http.conn.ssl.cts;
-
-import javax.security.auth.x500.X500Principal;
-import junit.framework.TestCase;
-
-import org.apache.http.conn.ssl.AbstractVerifier;
-
-import java.lang.Override;
-import java.math.BigInteger;
-import java.security.InvalidKeyException;
-import java.security.NoSuchAlgorithmException;
-import java.security.NoSuchProviderException;
-import java.security.Principal;
-import java.security.PublicKey;
-import java.security.SignatureException;
-import java.security.cert.CertificateEncodingException;
-import java.security.cert.CertificateException;
-import java.security.cert.CertificateExpiredException;
-import java.security.cert.CertificateNotYetValidException;
-import java.security.cert.X509Certificate;
-import java.util.Arrays;
-import java.util.Date;
-import java.util.Set;
-
-/**
- * See also {@link libcore.javax.security.auth.x500.X500PrincipalTest} as it shows some cases
- * we are not checking as they are not allowed by the X500 principal in the first place.
- */
-public final class AbstractVerifierTest extends TestCase {
-
- public void testGetCns() {
- assertCns("");
- assertCns("ou=xxx");
- assertCns("ou=xxx,cn=xxx", "xxx");
- assertCns("ou=xxx+cn=yyy,cn=zzz+cn=abc", "yyy", "zzz", "abc");
- assertCns("cn=a,cn=b", "a", "b");
- assertCns("cn=a c,cn=b", "a c", "b");
- assertCns("cn=a ,cn=b", "a", "b");
- assertCns("cn=Cc,cn=Bb,cn=Aa", "Cc", "Bb", "Aa");
- assertCns("cn=imap.gmail.com", "imap.gmail.com");
- assertCns("l=\"abcn=a,b\", cn=c", "c");
- assertCns("l=\"abcn=a,b\", cn=c", "c");
- assertCns("l=\"abcn=a,b\", cn= c", "c");
- assertCns("cn=<", "<");
- assertCns("cn=>", ">");
- assertCns("cn= >", ">");
- assertCns("cn=a b", "a b");
- assertCns("cn =a b", "a b");
- assertCns("Cn=a b", "a b");
- assertCns("cN=a b", "a b");
- assertCns("CN=a b", "a b");
- assertCns("cn=a#b", "a#b");
- assertCns("cn=#130161", "a");
- assertCns("l=q\t+cn=p", "p");
- assertCns("l=q\n+cn=p", "p");
- assertCns("l=q\n,cn=p", "p");
- assertCns("l=,cn=p", "p");
- assertCns("l=\tq\n,cn=\tp", "\tp");
- }
-
- /** A cn=, generates an empty value, unless it's at the very end */
- public void testEmptyValues() {
- assertCns("l=,cn=+cn=q", "", "q");
- assertCns("l=,cn=,cn=q", "", "q");
- assertCns("l=,cn=");
- assertCns("l=,cn=q,cn= ", "q");
- assertCns("l=,cn=q ,cn= ", "q");
- assertCns("l=,cn=\"\"");
- assertCns("l=,cn=\" \",cn=\" \"", " ", " ");
- assertCns("l=,cn= ,cn= ","");
- assertCns("l=,cn=,cn= ,cn= ", "", "");
- }
-
-
- public void testGetCns_escapedChars() {
- assertCns("cn=\\,", ",");
- assertCns("cn=\\#", "#");
- assertCns("cn=\\+", "+");
- assertCns("cn=\\\"", "\"");
- assertCns("cn=\\\\", "\\");
- assertCns("cn=\\<", "<");
- assertCns("cn=\\>", ">");
- assertCns("cn=\\;", ";");
- assertCns("cn=\\+", "+");
- assertCns("cn=\"\\+\"", "+");
- assertCns("cn=\"\\,\"", ",");
- assertCns("cn= a =", "a =");
- assertCns("cn==", "=");
- }
-
- public void testGetCns_whitespace() {
- assertCns("cn= p", "p");
- assertCns("cn=\np", "p");
- assertCns("cn=\tp", "\tp");
- }
-
- public void testGetCnsWithOid() {
- assertCns("2.5.4.3=a,ou=xxx", "a");
- assertCns("2.5.4.3=\" a \",ou=xxx", " a ");
- assertCns("2.5.5.3=a,ou=xxx,cn=b", "b");
- }
-
- public void testGetCnsWithQuotedStrings() {
- assertCns("cn=\"\\\" a ,=<>#;\"", "\" a ,=<>#;");
- assertCns("cn=abc\\,def", "abc,def");
- assertCns("cn=\"\\\" a ,\\=<>\\#;\"", "\" a ,=<>#;");
- }
-
- public void testGetCnsWithUtf8() {
- assertCns("cn=\"Lu\\C4\\8Di\\C4\\87\"", "\u004c\u0075\u010d\u0069\u0107");
- assertCns("cn=Lu\\C4\\8Di\\C4\\87", "\u004c\u0075\u010d\u0069\u0107");
- assertCns("cn=Lu\\C4\\8di\\c4\\87", "\u004c\u0075\u010d\u0069\u0107");
- assertCns("cn=\"Lu\\C4\\8di\\c4\\87\"", "\u004c\u0075\u010d\u0069\u0107");
- assertCns("cn=\u004c\u0075\u010d\u0069\u0107", "\u004c\u0075\u010d\u0069\u0107");
- // \63=c
- assertExceptionInPrincipal("\\63n=ab");
- assertExceptionInPrincipal("cn=\\a");
- }
-
- public void testGetCnsWithWhitespace() {
- assertCns("ou=a, cn= a b ,o=x", "a b");
- assertCns("cn=\" a b \" ,o=x", " a b ");
- }
-
- private static void assertCns(String dn, String... expected) {
- String[] result = AbstractVerifier.getCNs(createStubCertificate(dn));
- if (expected.length == 0) {
- assertNull(result);
- } else {
- assertNotNull(dn, result);
- assertEquals(dn, Arrays.asList(expected), Arrays.asList(result));
- }
- }
-
- private static void assertExceptionInPrincipal(String dn) {
- try {
- X500Principal principal = new X500Principal(dn);
- fail("Expected " + IllegalArgumentException.class.getName()
- + " because of incorrect input name");
- } catch (IllegalArgumentException e) {
- // Expected.
- }
- }
-
- private static X509Certificate createStubCertificate(final String subjectName) {
- return new X509Certificate() {
- @Override
- public X500Principal getSubjectX500Principal() {
- return new X500Principal(subjectName);
- }
-
- @Override
- public Set<String> getCriticalExtensionOIDs() {
- return null;
- }
-
- @Override
- public byte[] getExtensionValue(String oid) {
- return new byte[0];
- }
-
- @Override
- public Set<String> getNonCriticalExtensionOIDs() {
- return null;
- }
-
- @Override
- public boolean hasUnsupportedCriticalExtension() {
- return false;
- }
-
- @Override
- public byte[] getEncoded() throws CertificateEncodingException {
- return new byte[0];
- }
-
- @Override
- public void verify(PublicKey key)
- throws CertificateException, NoSuchAlgorithmException, InvalidKeyException,
- NoSuchProviderException, SignatureException {
-
- }
-
- @Override
- public void verify(PublicKey key, String sigProvider)
- throws CertificateException, NoSuchAlgorithmException, InvalidKeyException,
- NoSuchProviderException, SignatureException {
-
- }
-
- @Override
- public String toString() {
- return null;
- }
-
- @Override
- public PublicKey getPublicKey() {
- return null;
- }
-
- @Override
- public void checkValidity()
- throws CertificateExpiredException, CertificateNotYetValidException {
-
- }
-
- @Override
- public void checkValidity(Date date)
- throws CertificateExpiredException, CertificateNotYetValidException {
-
- }
-
- @Override
- public int getVersion() {
- return 0;
- }
-
- @Override
- public BigInteger getSerialNumber() {
- return null;
- }
-
- @Override
- public Principal getIssuerDN() {
- return null;
- }
-
- @Override
- public Principal getSubjectDN() {
- return null;
- }
-
- @Override
- public Date getNotBefore() {
- return null;
- }
-
- @Override
- public Date getNotAfter() {
- return null;
- }
-
- @Override
- public byte[] getTBSCertificate() throws CertificateEncodingException {
- return new byte[0];
- }
-
- @Override
- public byte[] getSignature() {
- return new byte[0];
- }
-
- @Override
- public String getSigAlgName() {
- return null;
- }
-
- @Override
- public String getSigAlgOID() {
- return null;
- }
-
- @Override
- public byte[] getSigAlgParams() {
- return new byte[0];
- }
-
- @Override
- public boolean[] getIssuerUniqueID() {
- return new boolean[0];
- }
-
- @Override
- public boolean[] getSubjectUniqueID() {
- return new boolean[0];
- }
-
- @Override
- public boolean[] getKeyUsage() {
- return new boolean[0];
- }
-
- @Override
- public int getBasicConstraints() {
- return 0;
- }
- };
- }
-}
-