context("Request")
test_that("Request basic stuff", {
expect_is(Request, "R6ClassGenerator")
aa <- Request$new()
expect_is(aa, "R6")
expect_is(aa, "Request")
# vars
expect_null(aa$disk)
expect_null(aa$hash)
expect_null(aa$headers)
expect_null(aa$host)
expect_null(aa$method)
expect_null(aa$opts)
expect_null(aa$path)
expect_null(aa$query)
expect_null(aa$scheme)
expect_null(aa$uri)
expect_false(aa$skip_port_stripping)
# methods
expect_is(aa$from_hash, "function")
expect_is(aa$to_hash, "function")
})
test_that("Request usage", {
url <- hb("/post")
body <- list(foo = "bar")
headers <- list(
`User-Agent` = "libcurl/7.54.0 r-curl/3.2 crul/0.5.2",
`Accept-Encoding` = "gzip, deflate",
Accept = "application/json, text/xml, application/xml, */*"
)
aa <- Request$new("POST", url, body, headers)
expect_is(aa$body, "character")
expect_equal(aa$body, "foo=bar")
expect_is(aa$method, "character")
expect_equal(aa$method, "post")
expect_is(aa$uri, "character")
expect_equal(aa$uri, hb("/post"))
expect_is(aa$host, "character")
expect_is(aa$path, "character")
expect_equal(aa$path, "post")
expect_is(aa$headers, "list")
expect_true("User-Agent" %in% names(aa$headers))
h <- aa$to_hash()
expect_is(h, "list")
zz <- aa$from_hash(h)
expect_is(zz, "Request")
# hash in aa is a list
aa$hash <- NULL
# equal but not identical
expect_equal(zz, aa)
})
test_that("Request fails well", {
expect_error(Request$new(a = 5), "unused argument")
z <- Request$new()
expect_error(z$foo(), "attempt to apply non-function")
expect_error(z$from_hash(), "missing")
expect_error(z$to_hash(4), "unused argument")
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.