mirror of https://git.sr.ht/~oppen/ariane
88 lines
2.9 KiB
Kotlin
88 lines
2.9 KiB
Kotlin
package oppen.ariane.io.gemini
|
|
|
|
import android.net.Uri
|
|
import oppen.ariane.Ariane
|
|
import com.google.common.truth.Truth.assertThat
|
|
import org.junit.Test
|
|
|
|
class AddressTests {
|
|
|
|
@Test
|
|
fun uriApiTests(){
|
|
var uri = Uri.parse(Ariane.DEFAULT_HOME_CAPSULE)
|
|
|
|
assertThat(uri.toString()).isEqualTo("gemini://gemini.circumlunar.space/~oppen/index.gmi")
|
|
assertThat(uri.isAbsolute).isTrue()
|
|
assertThat(uri.isHierarchical).isTrue()
|
|
assertThat(uri.isRelative).isFalse()
|
|
|
|
val lastSegment = uri.lastPathSegment
|
|
assertThat(lastSegment).isEqualTo("index.gmi")
|
|
|
|
uri = Uri.parse(uri.pathSegments.joinToString("/"))
|
|
assertThat(uri.toString()).isEqualTo("~oppen/index.gmi")
|
|
assertThat(uri.isRelative).isTrue()
|
|
}
|
|
|
|
@Test
|
|
fun arianeUriTests(){
|
|
val builder = AddressBuilder()
|
|
var uri = builder.request("gemini://gemini.circumlunar.space/~oppen/index.gmi").uri()
|
|
|
|
assertThat(uri.toString()).isEqualTo("gemini://gemini.circumlunar.space/~oppen/index.gmi")
|
|
assertThat(uri.path).isEqualTo("/~oppen/index.gmi")
|
|
|
|
uri = builder.request("hello/index.gmi").uri()
|
|
|
|
assertThat(uri.toString()).isEqualTo("gemini://gemini.circumlunar.space/~oppen/hello/index.gmi")
|
|
|
|
uri = builder.request("world/index.gmi").uri()
|
|
assertThat(uri.toString()).isEqualTo("gemini://gemini.circumlunar.space/~oppen/hello/world/index.gmi")
|
|
|
|
uri = builder.request("./foo/index.gmi").uri()
|
|
assertThat(uri.toString()).isEqualTo("gemini://gemini.circumlunar.space/~oppen/hello/world/foo/index.gmi")
|
|
|
|
uri = builder.request("bar/").uri()
|
|
assertThat(uri.toString()).isEqualTo("gemini://gemini.circumlunar.space/~oppen/hello/world/foo/bar/index.gmi")
|
|
|
|
}
|
|
|
|
|
|
//https://todo.sr.ht/~oppen/ariane/28
|
|
@Test
|
|
fun userTicketUriTests(){
|
|
val builder = AddressBuilder()
|
|
|
|
builder.request("gemini://mycapsule.com")
|
|
val relativeWithGmi = builder.request("art/index.gmi").uri()
|
|
assertThat(relativeWithGmi.toString()).isEqualTo("gemini://mycapsule.com/art/index.gmi")
|
|
|
|
builder.request("gemini://mycapsule.com")
|
|
val relativeWithoutGmi = builder.request("art/").uri()
|
|
assertThat(relativeWithoutGmi.toString()).isEqualTo("gemini://mycapsule.com/art/index.gmi")
|
|
|
|
}
|
|
|
|
@Test
|
|
fun doubleSlashTest(){
|
|
val builder = AddressBuilder()
|
|
|
|
val uri = builder.request("//mycapsule.com").uri()
|
|
assertThat(uri.toString()).isEqualTo("gemini://mycapsule.com")
|
|
}
|
|
|
|
@Test
|
|
fun pathTest(){
|
|
val builder = AddressBuilder()
|
|
var uri = builder
|
|
.request("gemini://mycapsule.com")
|
|
.request("hello/")
|
|
.uri()
|
|
assertThat(uri.toString()).isEqualTo("gemini://mycapsule.com/hello/index.gmi")
|
|
|
|
uri = builder.request("/world/").uri()
|
|
|
|
assertThat(uri.toString()).isEqualTo("gemini://mycapsule.com/world/index.gmi")
|
|
|
|
}
|
|
} |