🔀 Merge branch “release-80”
[Sone.git] / src / test / java / net / pterodactylus / sone / freenet / KeyTest.java
1 package net.pterodactylus.sone.freenet;
2
3 import static freenet.support.Base64.encode;
4 import static net.pterodactylus.sone.freenet.Key.from;
5 import static net.pterodactylus.sone.freenet.Key.routingKey;
6 import static org.hamcrest.MatcherAssert.assertThat;
7 import static org.hamcrest.Matchers.is;
8
9 import java.net.MalformedURLException;
10
11 import freenet.keys.FreenetURI;
12
13 import org.junit.Test;
14
15 /**
16  * Unit test for {@link Key}.
17  */
18 public class KeyTest {
19
20         private final FreenetURI uri;
21         private final Key key;
22
23         public KeyTest() throws MalformedURLException {
24                 uri = new FreenetURI(
25                                 "SSK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/some-site-12/foo/bar.html");
26                 key = from(uri);
27         }
28
29         @Test
30         public void keyCanBeCreatedFromFreenetUri() throws MalformedURLException {
31                 assertThat(key.getRoutingKey(),
32                                 is("NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs"));
33                 assertThat(key.getCryptoKey(),
34                                 is("Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI"));
35                 assertThat(key.getExtra(), is("AQACAAE"));
36         }
37
38         @Test
39         public void keyCanBeConvertedToUsk() throws MalformedURLException {
40                 FreenetURI uskUri = key.toUsk("other-site", 15, "some", "path.html");
41                 assertThat(uskUri.toString(),
42                                 is("USK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/other-site/15/some/path.html"));
43         }
44
45         @Test
46         public void keyCanBeConvertedToSskWithoutEdition()
47         throws MalformedURLException {
48                 FreenetURI uskUri = key.toSsk("other-site", "some", "path.html");
49                 assertThat(uskUri.toString(),
50                                 is("SSK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/other-site/some/path.html"));
51         }
52
53         @Test
54         public void keyCanBeConvertedToSskWithEdition()
55         throws MalformedURLException {
56                 FreenetURI uskUri = key.toSsk("other-site", 15, "some", "path.html");
57                 assertThat(uskUri.toString(),
58                                 is("SSK@NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs,Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI,AQACAAE/other-site-15/some/path.html"));
59         }
60
61         @Test
62         public void routingKeyIsExtractCorrectly() {
63                 assertThat(routingKey(uri),
64                                 is("NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs"));
65         }
66
67 }