X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2FKeyTest.java;fp=src%2Ftest%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ffreenet%2FKeyTest.java;h=8fff7bdd97ab160375d5c9680f89b5c9e7e1364f;hb=fdffe49b10613e1d9caacdf62ab99bca06edf3e1;hp=0000000000000000000000000000000000000000;hpb=f67d0cbb1bc328c0072fe5f795ffb31cf1b987bb;p=Sone.git diff --git a/src/test/java/net/pterodactylus/sone/freenet/KeyTest.java b/src/test/java/net/pterodactylus/sone/freenet/KeyTest.java new file mode 100644 index 0000000..8fff7bd --- /dev/null +++ b/src/test/java/net/pterodactylus/sone/freenet/KeyTest.java @@ -0,0 +1,69 @@ +package net.pterodactylus.sone.freenet; + +import static freenet.support.Base64.encode; +import static net.pterodactylus.sone.freenet.Key.from; +import static net.pterodactylus.sone.freenet.Key.routingKey; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; + +import java.net.MalformedURLException; + +import freenet.keys.FreenetURI; + +import org.junit.Test; + +/** + * Unit test for {@link Key}. + * + * @author David ‘Bombe’ Roden + */ +public class KeyTest { + + private final FreenetURI uri; + private final Key key; + + public KeyTest() throws MalformedURLException { + uri = new FreenetURI( + "SSK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/some-site-12/foo/bar.html"); + key = from(uri); + } + + @Test + public void keyCanBeCreatedFromFreenetUri() throws MalformedURLException { + assertThat(key.getRoutingKey(), + is("NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs")); + assertThat(key.getCryptoKey(), + is("Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI")); + assertThat(key.getExtra(), is("AQACAAE")); + } + + @Test + public void keyCanBeConvertedToUsk() throws MalformedURLException { + FreenetURI uskUri = key.toUsk("other-site", 15, "some", "path.html"); + assertThat(uskUri.toString(), + is("USK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/other-site/15/some/path.html")); + } + + @Test + public void keyCanBeConvertedToSskWithoutEdition() + throws MalformedURLException { + FreenetURI uskUri = key.toSsk("other-site", "some", "path.html"); + assertThat(uskUri.toString(), + is("SSK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/other-site/some/path.html")); + } + + @Test + public void keyCanBeConvertedToSskWithEdition() + throws MalformedURLException { + FreenetURI uskUri = key.toSsk("other-site", 15, "some", "path.html"); + assertThat(uskUri.toString(), + is("SSK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/other-site-15/some/path.html")); + } + + @Test + public void routingKeyIsExtractCorrectly() { + assertThat(routingKey(uri), + is("NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs")); + } + +}