package com.dmdirc.tls; import java.io.IOException; import java.io.InputStream; import java.nio.file.Files; import java.nio.file.Path; import java.security.GeneralSecurityException; import java.security.KeyStore; import java.security.cert.X509Certificate; import java.util.Set; import org.junit.Before; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; /** * Tests for {@link CertificateExceptionManager}. * *
These test use two certificates stored in a keystore. They were generated using: * *
* keytool -genkey -validity 18250 -keystore "keystore.ks" -storepass "dmdirc" -keypass "dmdirc" -alias "test1" -dname "CN=Test1, O=DMDirc, C=GB" * keytool -genkey -validity 18250 -keystore "keystore.ks" -storepass "dmdirc" -keypass "dmdirc" -alias "test2" -dname "CN=Test2, O=DMDirc, C=GB" **/ public class CertificateExceptionManagerTest { @Rule public TemporaryFolder tempFolderRule = new TemporaryFolder(); private Path keyStorePath; private CertificateExceptionManager manager; @Before public void setup() throws IOException { keyStorePath = tempFolderRule.newFile("certs.keystore").toPath(); manager = new CertificateExceptionManager(keyStorePath); } @Test public void testGetCertsNoFile() { assertTrue(manager.getExceptedCertificates().isEmpty()); } @Test public void testAddCert() throws GeneralSecurityException, IOException { final X509Certificate cert = getCertificate(1); assertTrue(manager.addExceptedCertificate(cert)); assertTrue(Files.exists(keyStorePath)); final Set