Nothing
test_that("full_path gives correct values", {
skip_on_cran()
if (is_windows()) {
# Will be something like "C:"
drive <- substring(getwd(), 1, 2)
} else {
# Use "" so that file.path("", "a") will return "/a"
drive <- ""
}
expect_identical(full_path("/a/b"), file.path(drive, "a/b"))
expect_identical(full_path("/a/b/"), file.path(drive, "a/b"))
expect_identical(full_path("/"), file.path(drive, ""))
expect_identical(full_path("a"), file.path(getwd(), "a"))
expect_identical(full_path("a/b"), file.path(getwd(), "a/b"))
expect_identical(full_path("a/../b/c"), file.path(getwd(), "b/c"))
expect_identical(
full_path(
"../../../../../../../../../../../../../../../../../../../../../../../a"),
file.path(drive, "a"))
expect_identical(full_path("/../.././a"), file.path(drive, "a"))
expect_identical(full_path("/a/./b/../c"), file.path(drive, "a/c"))
expect_identical(full_path("~nonexistent_user"), file.path(getwd(), "~nonexistent_user"))
expect_identical(
full_path("~/a/../b"),
# On Windows, path.expand() can return a path with backslashes
gsub("\\", "/", path.expand("~/b"), fixed = TRUE)
)
expect_identical(full_path("a//b"), file.path(getwd(), "a/b"))
expect_identical(full_path("/a//b"), file.path(drive, "a/b"))
})
test_that("full_path gives correct values, windows", {
skip_other_platforms("windows")
# Backslash separators
expect_identical(full_path("f:\\a/b"), "f:/a/b")
expect_identical(full_path("a\\b"), file.path(getwd(), "a/b"))
expect_identical(full_path("a\\\\b"), file.path(getwd(), "a/b"))
expect_identical(full_path("\\\\a\\b"), "//a/b")
expect_identical(full_path("\\\\a/b/..\\c"), "//a/c")
# Drives
expect_identical(full_path("f:/a/b"), "f:/a/b")
expect_identical(full_path("f:/a/b/../../.."), "f:/")
expect_identical(full_path("f:/../a"), "f:/a")
expect_identical(full_path("f:/"), "f:/")
expect_identical(full_path("f:"), "f:/")
# Leading double slashes. Server name always has trailing slash ("//server/"),
# like drives do ("f:/"). But dirs on the server don't have a trailing slash.
expect_identical(full_path("//a"), "//a/")
expect_identical(full_path("//a/"), "//a/")
expect_identical(full_path("//a/b"), "//a/b")
expect_identical(full_path("//a/b/.."), "//a/")
# Can't go .. to remove the server name
expect_identical(full_path("//a/b/../.."), "//a/")
expect_identical(full_path("//a/../b"), "//a/b")
expect_error(full_path("//"))
expect_error(full_path("///"))
expect_error(full_path("///a"))
})
test_that("full_path gives correct values, unix", {
skip_other_platforms("unix")
# Leading double slashes should collapse
expect_identical(full_path("//"), "/")
expect_identical(full_path("///a/"), "/a")
})
test_that("do_echo_cmd", {
skip_other_platforms("unix")
expect_output(
withr::with_options(
list(width = 20),
do_echo_cmd("command", rep("a r g x", 3))
),
"Running command \\\n 'a r g x' \\\n 'a r g x' \\\n 'a r g x'",
fixed = TRUE
)
})
test_that("sh_quote_smart", {
cases <- list(
list(c("foo", "bar")),
list(character()),
list("foo"),
list(""),
list("foo/bar123_-"),
list("foo bar", shQuote("foo bar")),
list(c("foo", "1 2"), c("foo", shQuote("1 2")))
)
for (c in cases) expect_equal(sh_quote_smart(c[[1]]), c[[length(c)]])
})
test_that("base64", {
expect_equal(base64_encode(charToRaw("foobar")), "Zm9vYmFy")
expect_equal(base64_encode(charToRaw(" ")), "IA==")
expect_equal(base64_encode(charToRaw("")), "")
x <- charToRaw(paste(sample(letters, 10000, replace = TRUE), collapse = ""))
expect_equal(base64_decode(base64_encode(x)), x)
for (i in 5:32) {
mtcars2 <- unserialize(base64_decode(base64_encode(
serialize(mtcars[1:i, ], NULL))))
expect_identical(mtcars[1:i,], mtcars2)
}
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.