with_dir_tree(list("foo/bar" = "test"), { skip_on_os("windows") link_create(path_abs("foo/bar"), "foo2") link_create("foo/bar", "relbar") link_create("foo", "relfoo") describe("is_file", { it("returns true for files, false for non-files, NA if no object exists", { expect_true(is_file("foo/bar")) expect_false(is_file("foo")) expect_false(is_file("foo2", follow = FALSE)) expect_true(is_file("foo2", follow = TRUE)) expect_equal(is_file("baz"), c(baz = FALSE)) .old_wd <- setwd("foo") expect_false(is_file("../relbar", follow = FALSE)) expect_true(is_file("../relbar", follow = TRUE)) setwd(.old_wd) }) }) describe("is_dir", { it("returns true for dirs, false for non-dirs, NA if no object exists", { expect_true(is_dir("foo")) expect_false(is_dir("foo/bar")) expect_false(is_dir("foo2", follow = FALSE)) expect_false(is_dir("foo2", follow = TRUE)) expect_equal(is_dir("baz"), c(baz = FALSE)) .old_wd <- setwd("foo") expect_false(is_dir("../relfoo", follow = FALSE)) expect_true(is_dir("../relfoo", follow = TRUE)) setwd(.old_wd) }) }) describe("is_link", { it("returns true for links, false for non-links, NA if no object exists", { expect_true(is_link("foo2")) expect_false(is_link("foo")) expect_false(is_link("foo/bar")) expect_equal(is_link("baz"), c(baz = FALSE)) }) }) describe("is_file_empty", { it("returns true for empty files and false for others", { file_create("blah") expect_true(is_file_empty("blah")) expect_false(is_file_empty("foo/bar")) expect_false(is_file_empty("baz")) }) }) }) with_dir_tree(list("foo/bar" = "test"), { describe("is_absolute_path", { it("detects windows absolute paths", { expect_true(is_absolute_path("c:\\")) expect_true(is_absolute_path("c:/")) expect_true(is_absolute_path("P:/")) expect_true(is_absolute_path("P:\\")) expect_true(is_absolute_path("\\\\server\\mountpoint\\")) expect_true(is_absolute_path("\\foo")) expect_true(is_absolute_path("\\foo\\bar")) }) it("detects posix absolute paths", { expect_false(is_absolute_path("")) expect_false(is_absolute_path("foo/bar")) expect_false(is_absolute_path("./foo/bar")) expect_false(is_absolute_path("../foo/bar")) expect_true(is_absolute_path("/")) expect_true(is_absolute_path("/foo")) expect_true(is_absolute_path("/foo/bar")) expect_true(is_absolute_path("~/foo/bar")) }) }) })