34 lines
1.3 KiB
Kotlin
34 lines
1.3 KiB
Kotlin
package com.example.aiapp
|
|
|
|
import kotlin.test.Test
|
|
import kotlin.test.assertEquals
|
|
|
|
class FilesNavigationTest {
|
|
@Test
|
|
fun `back walks through the common ancestor toward the project`() {
|
|
val project = "/home/bob/repos/project"
|
|
assertEquals("/", nextDirectoryToward("/etc", project))
|
|
assertEquals("/home", nextDirectoryToward("/", project))
|
|
assertEquals("/home/bob", nextDirectoryToward("/home", project))
|
|
assertEquals("/home/bob/repos", nextDirectoryToward("/home/bob", project))
|
|
assertEquals(project, nextDirectoryToward("/home/bob/repos", project))
|
|
assertEquals(null, nextDirectoryToward(project, project))
|
|
}
|
|
|
|
@Test
|
|
fun `back leaves a project descendant one directory at a time`() {
|
|
assertEquals(
|
|
"/home/bob/repos/project/src",
|
|
nextDirectoryToward("/home/bob/repos/project/src/main", "/home/bob/repos/project"),
|
|
)
|
|
}
|
|
|
|
@Test
|
|
fun `paths inside the machine home use tilde notation`() {
|
|
assertEquals("~", tildePath("/home/bob", "/home/bob"))
|
|
assertEquals("~/repos/project", tildePath("/home/bob/repos/project", "/home/bob/"))
|
|
assertEquals("/home/bobby/project", tildePath("/home/bobby/project", "/home/bob"))
|
|
assertEquals("/etc", tildePath("/etc", "/home/bob"))
|
|
}
|
|
}
|