context("content_id")
test_that("content_id parses compressed file connection correctly", {
## Windows CI platforms will check out package from git, and
## in the process alter the line endings and thus the hash
## of the uncompressed vostok.icecore.co2. The .gz version
## is not effected by Windows git line-ending conversion.
f <- system.file("extdata", "vostok.icecore.co2.gz",
package = "contentid", mustWork = TRUE
)
## We will uncompress the compressed version to get the original
## expected content uri on all platforms
con <- file(f, open = "", raw = FALSE)
## This id should match that of the uncompressed content (on any platform!)
id <- content_id(con)
expect_identical(
id,
paste0("hash://sha256/",
"9412325831dab22aeebdd674b6eb53",
"ba6b7bdd04bb99a4dbb21ddff646287e37")
)
})
test_that("content_id streams url connections", {
skip_on_cran()
skip_if_offline()
url <- "https://zenodo.org/api/files/5967f986-b599-4492-9a08-94ce32323dc2/vostok.icecore.co2"
id <- content_id(url)
expect_identical(
id,
paste0("hash://sha256/",
"9412325831dab22aeebdd674b6eb53",
"ba6b7bdd04bb99a4dbb21ddff646287e37")
)
})
test_that("content_id works with direct path", {
skip_on_cran()
skip_if_offline()
## Note this time we leave compressed so hash should be different
## then the above examples
f <- system.file("extdata", "vostok.icecore.co2.gz",
package = "contentid", mustWork = TRUE
)
id <- content_id(f)
expect_identical(
id,
paste0("hash://sha256/",
"9362a6102437bff5ea508988426d527",
"4a8addfdb11a603d016a7b305cf66868f")
)
})
test_that("content_id error handling", {
x <- expect_warning(content_id_("https://httpbin.org/404"), "404")
x <- expect_warning(content_id_("https://httpbin.org/401"), "401")
expect_true(is.na(x))
f <- file(system.file("extdata", "vostok.icecore.co2.gz",
package = "contentid", mustWork = TRUE)
)
x <- content_id_(f)
## File already read, connection is now invalid, should throw a warning!
x <- content_id_(f)
expect_true(is.na(x))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.