Ensure resolveTo fails as expected.
Change UNC paths not to be misinterpreted on *nix.
This commit is contained in:
@@ -2,7 +2,6 @@ package test.io
|
||||
|
||||
import java.io.*
|
||||
import org.junit.Test as test
|
||||
import kotlin.test.assertEquals
|
||||
import kotlin.io.walkTopDown
|
||||
import kotlin.test.*
|
||||
|
||||
@@ -91,8 +90,8 @@ class FilesTest {
|
||||
val file7 = File("C:\\Users\\Me\\Documents")
|
||||
assertEquals("..", file6.relativeTo(file7))
|
||||
assertEquals("Documents", file7.relativeTo(file6))
|
||||
val file8 = File("//my.host/home/user/documents/vip")
|
||||
val file9 = File("//my.host/home/other/images/nice")
|
||||
val file8 = File("""\\my.host\home/user/documents/vip""")
|
||||
val file9 = File("""\\my.host\home/other/images/nice""")
|
||||
assertEquals("../../../user/documents/vip".separatorsToSystem(), file8.relativeTo(file9))
|
||||
assertEquals("../../../other/images/nice".separatorsToSystem(), file9.relativeTo(file8))
|
||||
val file10 = File("foo/bar")
|
||||
@@ -101,6 +100,22 @@ class FilesTest {
|
||||
assertEquals("..", file11.relativeTo(file10))
|
||||
}
|
||||
|
||||
@test fun relativeToFails() {
|
||||
val absolute = File("/foo/bar/baz")
|
||||
val relative = File("foo/bar")
|
||||
val networkShare1 = File("""\\my.host\share1/folder""")
|
||||
val networkShare2 = File("""\\my.host\share2/folder""")
|
||||
|
||||
val allFiles = listOf(absolute, relative, networkShare1, networkShare2)
|
||||
for (file in allFiles) {
|
||||
for (base in allFiles) {
|
||||
if (file != base) {
|
||||
assertFailsWith<IllegalArgumentException>("file: $file, base: $base") { file.relativeTo(base) }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@test fun relativeTo() {
|
||||
assertEquals("kotlin", File("src/kotlin".separatorsToSystem()).relativeTo(File("src")))
|
||||
assertEquals("", File("dir").relativeTo(File("dir")))
|
||||
|
||||
Reference in New Issue
Block a user