test_that("can parse media type", {
# no params
expect_equal(parse_media("text/plain"), list(type = "text/plain"))
# single param
expect_equal(
parse_media("text/plain; charset=utf-8"),
list(type = "text/plain", charset = "utf-8")
)
# single param with quotes
expect_equal(
parse_media("text/plain; charset=\"utf-8\""),
list(type = "text/plain", charset = "utf-8")
)
# quoted param containing ;
expect_equal(
parse_media("text/plain; charset=\";\""),
list(type = "text/plain", charset = ";")
)
expect_equal(parse_media(""), list(type = NA_character_))
})
test_that("can parse authenticate header", {
header <- paste0(
'Bearer realm="example",',
'error="invalid_token",',
'error_description="The access token expired"'
)
out <- parse_www_authenticate(header)
expect_equal(out$scheme, "Bearer")
expect_equal(out$realm, "example")
expect_equal(out$error_description, "The access token expired")
})
test_that("can parse links", {
header <- paste0(
'<https://example.com/1>; rel="next",',
'<https://example.com/2>; rel="last"'
)
expect_equal(
parse_link(header),
list(
list(url = "https://example.com/1", rel = "next"),
list(url = "https://example.com/2", rel = "last")
)
)
})
# Helpers -----------------------------------------------------------------
test_that("parse_in_half handles common cases", {
parsed <- parse_in_half(c("a=b", "c=d", "e", "=f", "g=", "h=i=j"), "=")
expect_equal(parsed$left, c("a", "c", "e", "", "g", "h"))
expect_equal(parsed$right, c("b", "d", "", "f", "", "i=j"))
})
test_that("parse_in_half handles problematic inputs", {
expect_equal(
parse_in_half(character(0), "="),
list(left = character(0), right = character(0))
)
expect_equal(
parse_in_half("", "="),
list(left = "", right = "")
)
expect_equal(
parse_in_half(NA, "="),
list(left = NA_character_, right = NA_character_)
)
})
test_that("parse_in_half always returns two pieces", {
expect_equal(parse_in_half("a", " "), list(left = "a", right = ""))
expect_equal(parse_in_half("a b", " "), list(left = "a", right = "b"))
expect_equal(parse_in_half("a b c", " "), list(left = "a", right = "b c"))
})
test_that("parse_name_equals_value handles empty values", {
expect_equal(parse_name_equals_value("a"), c(a = ""))
})
test_that("parse_match converts missing matches to NULL", {
expect_equal(
parse_match("abbbd", "(a)(b+)(c*)(d)"),
list("a", "bbb", NULL, "d"
))
})
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.