package org.limewire.security.certificate; import java.io.IOException; import java.security.KeyStore; import java.security.KeyStoreException; import java.security.cert.Certificate; import junit.framework.Test; import org.apache.http.client.HttpClient; import org.apache.http.impl.client.DefaultHttpClient; import org.limewire.util.BaseTestCase; import com.google.inject.AbstractModule; import com.google.inject.Guice; import com.google.inject.Injector; public class CertificateVerifierTest extends BaseTestCase { Injector injector = null; public CertificateVerifierTest(String name) { super(name); } public static Test suite() { return buildTestSuite(CertificateVerifierTest.class); } @Override public void setUp() throws Exception { injector = Guice.createInjector(new LimeWireSecurityCertificateModule(), new AbstractModule() { @Override protected void configure() { bind(HttpClient.class).to(DefaultHttpClient.class); } }); } public void testIsValidCertificatePass() throws IOException, KeyStoreException { CertificateVerifier cv = injector.getInstance(CertificateVerifier.class); KeyStoreProvider ksp = injector.getInstance(KeyStoreProvider.class); ksp.invalidateKeyStore(); KeyStore ks = ksp.getKeyStore(); Certificate certificate = ks.getCertificate("promotion.limewire.com"); // We know this is a valid cert, it came from the damn key store... assertTrue(cv.isValid(certificate)); } public void testIsValidCertificateFail() throws IOException, KeyStoreException { CertificateVerifier cv = injector.getInstance(CertificateVerifier.class); KeyStoreProvider ksp = injector.getInstance(KeyStoreProvider.class); ksp.invalidateKeyStore(); KeyStore ks = ksp.getKeyStore(); Certificate certificate = ks.getCertificate("unsigned.limewire.com"); // We know this is a valid cert, but it shouldn't be valid since it's not signed... assertFalse(cv.isValid(certificate)); } }