test_that("basic HTTP methods work", {
skip_if_not_installed("webfakes")
withr::local_options(rsconnect.http = "libcurl")
test_http_GET()
test_http_POST_JSON()
test_http_POST_empty()
test_http_POST_file()
test_http_headers()
})
test_that("can trace JSON", {
skip_if_not_installed("webfakes")
withr::local_options(rsconnect.http.trace.json = TRUE)
service <- httpbin_service()
json_app <- webfakes::new_app()
json_app$use(webfakes::mw_json())
json_app$post("/", function(req, res) {
res$set_status(200L)$send_json(req$json)
})
app <- webfakes::new_app_process(json_app)
service <- parseHttpUrl(app$url())
expect_snapshot({
. <- POST_JSON(service, list(), "", list(a = 1, b = 2))
})
})
test_that("can get and set cookies", {
skip_on_cran()
skip_if_not_installed("webfakes")
# uses live httpbin since webfakes doesn't support cookie endpoints
service <- parseHttpUrl("http://httpbin.org/")
# Setting
skip_on_http_failure(GET(service, list(), "cookies/set", query = "a=1"))
cookies <- getCookies(service$host)
expect_equal(cookies$name, "a")
expect_equal(cookies$value, "1")
# Overwriting
skip_on_http_failure(GET(service, list(), "cookies/set", query = "a=2&b=1"))
cookies <- getCookies(service$host)
expect_equal(cookies$name, c("b", "a"))
expect_equal(cookies$value, c("1", "2"))
# Preserved across calls
skip_on_http_failure(out <- GET(service, list(), "cookies"))
expect_equal(out$cookies, list(a = "2", b = "1"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.