wkd-java/wkd-java/src/test/java/pgp/wkd/WKDAddressTest.java

80 lines
2.9 KiB
Java

// SPDX-FileCopyrightText: 2022 Paul Schaub <vanitasvitae@fsfe.org>
//
// SPDX-License-Identifier: Apache-2.0
package pgp.wkd;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.net.URI;
import java.util.Arrays;
import org.junit.jupiter.api.Test;
public class WKDAddressTest {
@Test
public void testAdvancedFromUserId() {
String userId = "Joe Doe <Joe.Doe@Example.ORG> [Work Address]";
URI expectedURI = URI.create("https://openpgpkey.example.org/.well-known/openpgpkey/example.org/hu/iy9q119eutrkn8s1mk4r39qejnbu3n5q?l=Joe.Doe");
WKDAddress address = WKDAddressHelper.wkdAddressFromUserId(userId);
URI actual = address.getAdvancedMethodURI();
assertEquals(expectedURI, actual);
}
@Test
public void testDirectFromUserId() {
String userId = "<alice@pgpainless.org>";
URI expected = URI.create("https://pgpainless.org/.well-known/openpgpkey/hu/kei1q4tipxxu1yj79k9kfukdhfy631xe?l=alice");
WKDAddress address = WKDAddressHelper.wkdAddressFromUserId(userId);
URI actual = address.getDirectMethodURI();
assertEquals(expected, actual);
}
@Test
public void testDirectFromEmail() {
String mailAddress = "Joe.Doe@Example.ORG";
URI expected = URI.create("https://example.org/.well-known/openpgpkey/hu/iy9q119eutrkn8s1mk4r39qejnbu3n5q?l=Joe.Doe");
WKDAddress address = WKDAddress.fromEmail(mailAddress);
URI actual = address.getDirectMethodURI();
assertEquals(expected, actual);
}
@Test
public void testAdvancedFromEmail() {
String mailAddress = "Joe.Doe@Example.ORG";
URI expected = URI.create("https://openpgpkey.example.org/.well-known/openpgpkey/example.org/hu/iy9q119eutrkn8s1mk4r39qejnbu3n5q?l=Joe.Doe");
WKDAddress address = WKDAddress.fromEmail(mailAddress);
URI actual = address.getAdvancedMethodURI();
assertEquals(expected, actual);
}
@Test
public void testFromInvalidUserid() {
for (String brokenUserId : Arrays.asList(
"Alice <alice>",
"Alice <alice@example.org",
"Alice",
"John Doe <john doe@example.org>",
"John Doe <john.doe@example org>",
"John Doe <john<example.org>",
"John Doe [The Real One]",
"<John Doe",
"Don Joeh>")) {
assertThrows(IllegalArgumentException.class, () -> WKDAddressHelper.wkdAddressFromUserId(brokenUserId));
}
}
@Test
public void testFromInvalidEmail() {
for (String brokenEmail : Arrays.asList("john.doe", "@example.org", "john doe@example.org", "john.doe@example org")) {
assertThrows(IllegalArgumentException.class, () -> WKDAddress.fromEmail(brokenEmail));
}
}
}