test_that("can add and remove options", {
req <- request("http://example.com")
req <- req %>% req_options(x = 1)
expect_equal(req$options, list(x = 1))
req <- req %>% req_options(x = NULL)
expect_equal(req$options, list())
})
test_that("can add header called req", {
req <- request("http://example.com")
req <- req %>% req_options(req = 1)
expect_equal(req$options, list(req = 1))
})
test_that("can set user agent", {
ua <- function(...) {
request("http://example.com") %>%
req_user_agent(...) %>%
.$options %>%
.$useragent
}
expect_match(ua(), "libcurl")
expect_equal(ua("abc"), "abc")
# non-R-ish library version for curl, #416
with_mocked_bindings(
curl_system_version = function(...) "8.4.0-DEV",
code = expect_match(ua(), "libcurl/8.4.0-DEV")
)
})
test_that("can set timeout", {
req <- request_test("/delay/:secs", secs = 1) %>% req_timeout(0.1)
expect_error(req_perform(req), "timed out")
})
test_that("validates inputs", {
expect_snapshot(error = TRUE, {
request_test() %>% req_timeout("x")
request_test() %>% req_timeout(0)
})
})
test_that("can request verbose record of request", {
req <- request_test("/post") %>% req_body_raw("This is some text")
# Snapshot test of what can be made reproducible
req1 <- req %>%
req_headers("Host" = "http://example.com") %>%
req_headers(`Accept-Encoding` = "gzip") %>%
req_user_agent("verbose") %>%
req_verbose(header_resp = FALSE, body_req = TRUE)
expect_snapshot_output(invisible(req_perform(req1)))
# Lightweight test for everything else
req2 <- req %>% req_verbose(info = TRUE, body_resp = TRUE)
expect_output(req_perform(req2))
})
test_that("req_proxy gives helpful errors", {
req <- request_test("/get")
expect_snapshot(error = TRUE, {
req %>% req_proxy(port = "abc")
req %>% req_proxy("abc", auth = "bsc")
})
})
test_that("auth_flags gives correct constant", {
expect_equal(auth_flags("digest"), 2)
expect_equal(auth_flags("ntlm"), 8)
expect_equal(auth_flags("any"), -17)
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.