Nothing
test_that("init", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
expect_true(file.exists(tmp))
})
test_that("add / list / find / delete", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
cat("f1\n", file = f1 <- tempfile())
sha256 <- shasum256(f1)
new <- pc$add(f1, path = "f/b", package = "p", url = "u",
etag = "e", sha256 = sha256)
path <- file.path("f", "b")
fullpath <- file.path(tmp, path)
exp <- list(fullpath = fullpath, path = path, package = "p", url = "u",
etag = "e", sha256 = sha256)
expect_equal(as.list(new), exp)
expect_equal(as.list(pc$list()), exp)
expect_equal(as.list(pc$find(package = "p")), exp)
pc$copy_to(f2 <- tempfile(), package = "p")
expect_true(file.exists(f2))
expect_equal(shasum256(f2), sha256)
pc$delete(package = "p")
empty <- data.frame(
stringsAsFactors = FALSE,
fullpath = character(), path = character(), package = character(),
url = character(), etag = character(), sha256 = character()
)
expect_equal(pc$list(), empty)
pc$find(package = "p")
expect_equal(pc$find(package = "p"), empty)
})
test_that("add_url", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
url <- http$url("/etag/foobar")
new <- pc$add_url(url, "f/b", package = "p",
http_headers = c("accept-encoding" = ""))
path <- file.path("f", "b")
fullpath <- file.path(tmp, path)
exp <- list(fullpath = fullpath, path = path, package = "p", url = url,
etag = "foobar", sha256 = shasum256(fullpath))
expect_equal(as.list(new), exp)
})
test_that("copy_or_add, positive", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
cat("f1\n", file = f1 <- tempfile())
sha256 <- shasum256(f1)
new <- pc$add(f1, path = "f/b", package = "p", url = "u",
etag = "e", sha256 = sha256)
attr(new, "action") <- "Had"
hit <- pc$copy_or_add(f1 <- tempfile(), url = "u", path = "f/b",
package = "p")
expect_true(file.exists(f1))
expect_equal(readLines(f1, warn = FALSE), "f1")
expect_equal(new, hit)
})
test_that("copy_or_add, negative", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
cat("f1\n", file = f1 <- tempfile())
sha256 <- shasum256(f1)
new <- pc$add(f1, path = "f/b", package = "p", url = "u",
etag = "e", sha256 = sha256)
url <- http$url("/etag/foobar")
hit <- pc$copy_or_add(url = url, f1 <- tempfile(), path = "f/b",
package = "p2", http_headers = c("accept-encoding" = ""))
path <- file.path("f", "b")
fullpath <- file.path(tmp, path)
exp <- list(fullpath = fullpath, path = path, package = "p2", url = url,
etag = "foobar", sha256 = shasum256(fullpath))
attr(exp, "action") <- "Got"
expect_equal(as.list(hit), exp)
expect_true(file.exists(f1))
expect_true(any(grepl("url\"*:.*/etag/foobar",
readLines(f1, warn = FALSE))))
hit2 <- pc$find(url = url)
attr(hit2, "action") <- "Got"
expect_equal(hit2, hit)
})
test_that("update_or_add, not in cache", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
url <- http$url("/etag/foobar")
hit <- pc$update_or_add(url = url, f1 <- tempfile(), path = "f/b",
package = "p", http_headers = c("accept-encoding" = ""))
path <- file.path("f", "b")
fullpath <- file.path(tmp, path)
exp <- list(fullpath = fullpath, path = path, package = "p", url = url,
etag = "foobar", sha256 = shasum256(fullpath))
attr(exp, "action") <- "Got"
expect_equal(as.list(hit), exp)
expect_true(file.exists(f1))
expect_true(any(grepl("url\"*:.*/etag/foobar",
readLines(f1, warn = FALSE))))
hit2 <- pc$find(url = url)
attr(hit2, "action") <- "Got"
expect_equal(hit2, hit)
})
test_that("update_or_add, cache is too old", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
cat("f1\n", file = f1 <- tempfile())
url <- http$url("/etag/foobar")
sha256 <- shasum256(f1)
pc$add(f1, path = "f/b", package = "p", url = url, etag = "e", sha256 = sha256)
hit <- pc$update_or_add(url = url, f1 <- tempfile(), path = "f/b",
package = "p", http_headers = c("accept-encoding" = ""))
path <- file.path("f", "b")
fullpath <- file.path(tmp, path)
exp <- list(fullpath = fullpath, path = path, package = "p", url = url,
etag = "foobar", sha256 = shasum256(fullpath))
attr(exp, "action") <- "Got"
expect_equal(as.list(hit), exp)
expect_true(file.exists(f1))
expect_true(any(grepl("url\"*:.*/etag/foobar",
readLines(f1, warn = FALSE))))
hit2 <- pc$find(url = url, etag = "foobar")
attr(hit2, "action") <- "Got"
expect_equal(hit2, hit)
})
test_that("update_or_add, cache is current", {
pc <- package_cache$new(tmp <- tempfile())
on.exit(unlink(tmp, recursive = TRUE))
cat("f1\n", file = f1 <- tempfile())
url <- http$url("/etag/foobar")
sha256 <- shasum256(f1)
pc$add(f1, path = "f/b", package = "p", url = url, etag = "foobar",
sha256 = sha256)
hit <- pc$update_or_add(url = url, f1 <- tempfile(), path = "f/b",
package = "p", http_headers = c("accept-encoding" = ""))
path <- file.path("f", "b")
fullpath <- file.path(tmp, path)
exp <- list(fullpath = fullpath, path = path, package = "p", url = url,
etag = "foobar", sha256 = sha256)
attr(exp, "action") <- "Current"
expect_equal(as.list(hit), exp)
expect_true(file.exists(f1))
expect_equal(readLines(f1), "f1")
hit2 <- pc$find(url = url)
attr(hit2, "action") <- "Current"
expect_equal(hit2, hit)
})
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.