/usr/share/doc/r-cran-crul/tests/testthat/test-post.R is in r-cran-crul 0.5.0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 | context("request: post")
test_that("post request works", {
skip_on_cran()
cli <- HttpClient$new(url = "https://httpbin.org")
aa <- cli$post("post")
expect_is(aa, "HttpResponse")
expect_is(aa$handle, 'curl_handle')
expect_is(aa$content, "raw")
expect_is(aa$method, "character")
expect_equal(aa$method, "post")
expect_is(aa$parse, "function")
expect_is(aa$parse(), "character")
expect_true(aa$success())
expect_null(aa$request$fields)
})
test_that("post request with body", {
skip_on_cran()
cli <- HttpClient$new(url = "https://httpbin.org")
aa <- cli$post("post", body = list(hello = "world"))
expect_is(aa, "HttpResponse")
expect_is(aa$handle, 'curl_handle')
expect_is(aa$content, "raw")
expect_is(aa$method, "character")
expect_equal(aa$method, "post")
expect_is(aa$parse, "function")
expect_is(aa$parse(), "character")
expect_true(aa$success())
expect_named(aa$request$fields, "hello")
expect_equal(aa$request$fields[[1]], "world")
})
test_that("post request with file upload", {
skip_on_cran()
# txt file
## as file
file <- upload(system.file("CITATION"))
cli <- HttpClient$new(url = "https://httpbin.org")
aa <- cli$post("post", body = list(a = file))
expect_is(aa, "HttpResponse")
expect_is(aa$content, "raw")
expect_null(aa$request$options$readfunction)
out <- jsonlite::fromJSON(aa$parse("UTF-8"))
expect_named(out$files, "a")
expect_match(out$files$a, "bibentry")
## as data
aa2 <- cli$post("post", body = file)
expect_is(aa2, "HttpResponse")
expect_is(aa2$content, "raw")
expect_is(aa2$request$options$readfunction, "function")
out <- jsonlite::fromJSON(aa2$parse("UTF-8"))
expect_equal(length(out$files), 0)
expect_is(out$data, "character")
expect_match(out$data, "bibentry")
# binary file: jpeg
file <- upload(file.path(Sys.getenv("R_DOC_DIR"), "html/logo.jpg"))
cli <- HttpClient$new(url = "https://httpbin.org")
aa <- cli$post("post", body = list(a = file))
expect_is(aa, "HttpResponse")
expect_is(aa$content, "raw")
expect_named(aa$request$fields, "a")
out <- jsonlite::fromJSON(aa$parse("UTF-8"))
expect_named(out$files, "a")
expect_match(out$files$a, "data:image/jpeg")
})
|