ariane/app/src/androidTest/java/oppen/ariane/io/gemini/AddressTests.kt

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")
}
}