fix path links

This commit is contained in:
Jonathan Fisher 2020-11-16 21:02:50 +00:00
parent 907cda5075
commit 43c1f7793e
3 changed files with 34 additions and 8 deletions

View File

@ -32,11 +32,11 @@ class AddressTests {
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()
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()
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()
@ -70,4 +70,19 @@ class AddressTests {
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")
}
}

View File

@ -6,6 +6,7 @@ import oppen.ariane.Ariane
import oppen.toURI
import com.google.common.truth.Truth.assertThat
import oppen.ariane.io.GemState
import oppen.ariane.io.database.ArianeDatabase
import org.junit.Before
import org.junit.Test
import org.junit.runner.RunWith
@ -32,10 +33,9 @@ class GeminiDatasourceTests {
val capsule = capsules.random()
println("Using $capsule for Gemini tests")
capsuleIndex = capsules.indexOf(capsule)
gemini = Datasource.factory(
InstrumentationRegistry.getInstrumentation().targetContext,
db.history()
)
val appContext = InstrumentationRegistry.getInstrumentation().targetContext
val db = ArianeDatabase(appContext)
gemini = Datasource.factory(InstrumentationRegistry.getInstrumentation().targetContext, db.history())
}
@Test

View File

@ -18,8 +18,19 @@ class AddressBuilder {
fun request(link: String): AddressBuilder {
val linkUri = Uri.parse(link)
when {
linkUri.isAbsolute -> uri = linkUri
linkUri.toString().startsWith("//") -> uri = Uri.parse("gemini:$link")
linkUri.isAbsolute -> {
uri = linkUri
}
linkUri.toString().startsWith("//") -> {
uri = Uri.parse("gemini:$link")
}
linkUri.toString().startsWith("/") -> {
val pathLink = "${uri.scheme}://${uri.host}$linkUri"
uri = when {
pathLink.endsWith("/") -> Uri.parse("${pathLink}index.gmi")
else -> Uri.parse(pathLink)
}
}
else -> {
val currentAddress = uri.toString()