skip_on_cran()
skip_if_offline(url_parse(hb())$domain)
context("ok: character")
test_that("ok works with character input", {
expect_is(ok, "function")
# good
expect_true(ok(base_url))
# bad
expect_message(z <- ok('http://foo.bar'))
expect_false(z)
})
context("ok: HttpClient")
test_that("ok works with HttpClient input", {
# good
z <- crul::HttpClient$new(hb("/status/200"))
expect_true(ok(z))
# bad
z <- crul::HttpClient$new(hb("/status/404"))
expect_false(ok(z))
})
context("ok: multiple status codes")
test_that("ok works multiple status codes", {
z <- crul::HttpClient$new(hb("/status/200"))
expect_true(ok(z, c(200L, 201L)))
expect_error(ok(z, c(200L, 901L)))
})
context("ok: random user agent")
test_that("ok random user agents", {
ua_val <- NULL
fxn <- function(request) {
ua <- request$options$useragent
ua_val <<- ua
message(paste0("User-agent: ", ua), sep = "\n")
}
z <- crul::HttpClient$new(hb(), hooks = list(request = fxn))
expect_message(ok(z, ua_random = TRUE), 'User-agent:')
# us string is one of the strings in agents
expect_true(ua_val %in% agents)
# agents is length 50 and character
expect_is(agents, "character")
expect_equal(length(agents), 50)
})
context("ok: fails well")
test_that("ok fails well", {
expect_error(ok(5), "no 'ok' method for numeric")
expect_error(ok(mtcars), "no 'ok' method for data.frame")
expect_error(ok(list()), "no 'ok' method for list")
expect_error(ok(), "argument \"x\" is missing")
expect_error(ok(hb("/status/404"), status = 567L),
"not in acceptable set")
# ua_random must be logical
expect_error(ok(hb("/status/404"), ua_random = "adf"))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.