Nothing
library(testthat)
credential <- retrieve_credential_testing()
delay_after_download_file <- 1.0 # In seconds
test_that("download instrument", {
testthat::skip_on_cran()
on.exit(base::unlink(returned_object$file_name))
expected_outcome_message <- "Preparing to download the file `.+`."
suppressMessages({
returned_object <-
redcap_instrument_download(
redcap_uri = credential$redcap_uri,
token = credential$token,
verbose = TRUE
)
})
# start_time <- Sys.time() - lubridate::seconds(1) #Knock off a second in case there's small time imprecisions
start_time <- Sys.time() - 10 #Knock off ten seconds in case there are small time imprecisions.
expected_outcome_message <- "text/html; charset=UTF-8 successfully downloaded in .+? seconds, and saved as instruments\\.pdf\\."
#Test the values of the returned object.
expect_true(returned_object$success)
expect_equal(returned_object$status_code, expected=200L)
expect_match(returned_object$outcome_message, regexp=expected_outcome_message, perl=TRUE)
expect_equal(length(returned_object$record_id), 0L)
expect_true(returned_object$elapsed_seconds>0, "The `elapsed_seconds` should be a positive number.")
expect_equal(returned_object$raw_text, expected="", ignore_attr = TRUE) # dput(returned_object$raw_text)
expect_equal(returned_object$file_name, "instruments.pdf", label="The name of the downloaded file should be correct.")
})
test_that("download instrument conflict -Error", {
testthat::skip_on_cran()
expected_outcome_message_1 <- "*text/html; charset=UTF-8 successfully downloaded in \\d+(\\.\\d+\\W|\\W)seconds\\, and saved as instruments\\.pdf"
expected_outcome_message_2 <- "The operation was halted because the file `instruments\\.pdf`\\s+already exists and `overwrite` is FALSE\\. Please check the directory if you believe this is a mistake\\."
tryCatch({
# The first run should work.
returned_object_1 <-
redcap_instrument_download(
redcap_uri = credential$redcap_uri,
token = credential$token,
verbose = FALSE
)
Sys.sleep(delay_after_download_file)
#Test the values of the returned object.
expect_true(returned_object_1$success)
expect_equal(returned_object_1$status_code, expected=200L)
# The second run should fail (b/c the file already exists).
expect_error(
returned_object_2 <-
redcap_instrument_download(
redcap_uri = credential$redcap_uri,
token = credential$token,
overwrite = FALSE,
verbose = FALSE
),
regexp = expected_outcome_message_2
)
Sys.sleep(delay_after_download_file)
expect_false(exists("returned_object_2"))
}, finally = base::unlink(returned_object_1$file_name)
)
})
test_that("bad token -Error", {
testthat::skip_on_cran()
expected_outcome_message <- "file NOT downloaded."
returned_object <-
redcap_instrument_download(
redcap_uri = credential$redcap_uri,
token = "BAD00000000000000000000000000000",
verbose = FALSE
)
testthat::expect_false(returned_object$success)
testthat::expect_equal(returned_object$status_code, 403L)
testthat::expect_equal(returned_object$raw_text, "ERROR: You do not have permissions to use the API")
})
rm(credential)
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.