test_that("has_file", {
wd <- normalizePath(getwd(), winslash = "/")
hierarchy <- function(n = 0L) {
do.call(file.path, list(wd, "hierarchy", "a", "b", "c")[seq_len(n + 1L)])
}
stop_path <- hierarchy(1L)
path <- hierarchy(4L)
local_mocked_bindings(is_fs_root = function(x) x == stop_path)
expect_equal(
find_root_file("c", criterion = "b/a", path = path),
file.path(hierarchy(2L), "c")
)
# Absolute paths are stripped
expect_equal(
find_root_file("/x", "y", criterion = "b/a", path = path),
file.path("/x", "y")
)
expect_identical(
find_root_file("c", NA, criterion = "b/a", path = path),
NA_character_
)
expect_identical(
find_root_file("c", character(), criterion = "b/a", path = path),
character()
)
expect_error(
find_root_file(letters[1:2], letters[1:3], criterion = "a", path = path)
)
expect_error(
find_root_file(letters[1:2], character(), criterion = "a", path = path)
)
expect_error(
find_root_file(c("b", "/x"), "c", criterion = "a", path = path),
"absolute and relative"
)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.