6e7fda15ddee5144584d077322f6c01cf82581e3
[Sone.git] / src / test / kotlin / net / pterodactylus / sone / freenet / KeyTest.kt
1 package net.pterodactylus.sone.freenet
2
3 import freenet.keys.*
4 import net.pterodactylus.sone.freenet.Key.*
5 import org.hamcrest.MatcherAssert.*
6 import org.hamcrest.Matchers.*
7 import org.junit.*
8
9 /**
10  * Unit test for [Key].
11  */
12 class KeyTest {
13
14         private val uri = FreenetURI("SSK@$routingKey,$cryptoKey,$extra/some-site-12/foo/bar.html")
15         private val key: Key = from(uri)
16
17         @Test
18         fun keyCanBeCreatedFromFreenetUri() {
19                 assertThat(key.routingKey, equalTo(routingKey))
20                 assertThat(key.cryptoKey, equalTo(cryptoKey))
21                 assertThat(key.extra, equalTo(extra))
22         }
23
24         @Test
25         fun keyCanBeConvertedToUsk() {
26                 val uskUri = key.toUsk("other-site", 15, "some", "path.html")
27                 assertThat(uskUri.toString(), equalTo("USK@$routingKey,$cryptoKey,$extra/other-site/15/some/path.html"))
28         }
29
30         @Test
31         fun keyCanBeConvertedToSskWithoutEdition() {
32                 val uskUri = key.toSsk("other-site", "some", "path.html")
33                 assertThat(uskUri.toString(), equalTo("SSK@$routingKey,$cryptoKey,$extra/other-site/some/path.html"))
34         }
35
36         @Test
37         fun keyCanBeConvertedToSskWithEdition() {
38                 val uskUri = key.toSsk("other-site", 15, "some", "path.html")
39                 assertThat(uskUri.toString(), equalTo("SSK@$routingKey,$cryptoKey,$extra/other-site-15/some/path.html"))
40         }
41
42         @Test
43         fun routingKeyIsExtractCorrectly() {
44                 assertThat(routingKey(uri), equalTo(routingKey))
45         }
46
47 }
48
49 private const val routingKey = "NfUYvxDwU9vqb2mh-qdT~DYJ6U0XNbxMGGoLe0aCHJs"
50 private const val cryptoKey = "Miglsgix0VR56ZiPl4NgjnUd~UdrnHqIvXJ3KKHmxmI"
51 private const val extra = "AQACAAE"