4 test_that("parseJSONResponse generates and returns JSON object from server response", {
6 JSONContent <- "{\"bar\":{\"foo\":[10]}}"
7 serverResponse <- list()
8 serverResponse$content <- charToRaw(JSONContent)
9 serverResponse$headers[["Content-Type"]] <- "application/json; charset=utf-8"
10 class(serverResponse) <- c("response")
12 parser <- HttpParser$new()
14 result <- parser$parseJSONResponse(serverResponse)
15 barExists <- !is.null(result$bar)
17 expect_that(barExists, is_true())
18 expect_that(unlist(result$bar$foo), equals(10))
21 test_that(paste("parseResponse generates and returns character vector",
22 "from server response if outputType is text"), {
24 content <- "random text"
25 serverResponse <- list()
26 serverResponse$content <- charToRaw(content)
27 serverResponse$headers[["Content-Type"]] <- "text/plain; charset=utf-8"
28 class(serverResponse) <- c("response")
30 parser <- HttpParser$new()
31 parsedResponse <- parser$parseResponse(serverResponse, "text")
33 expect_that(parsedResponse, equals("random text"))
37 webDAVResponseSample =
38 paste0("<?xml version=\"1.0\" encoding=\"UTF-8\"?><D:multistatus xmlns:",
39 "D=\"DAV:\"><D:response><D:href>/c=aaaaa-bbbbb-ccccccccccccccc</D",
40 ":href><D:propstat><D:prop><D:resourcetype><D:collection xmlns:D=",
41 "\"DAV:\"/></D:resourcetype><D:getlastmodified>Fri, 11 Jan 2018 1",
42 "1:11:11 GMT</D:getlastmodified><D:displayname></D:displayname><D",
43 ":supportedlock><D:lockentry xmlns:D=\"DAV:\"><D:lockscope><D:exc",
44 "lusive/></D:lockscope><D:locktype><D:write/></D:locktype></D:loc",
45 "kentry></D:supportedlock></D:prop><D:status>HTTP/1.1 200 OK</D:s",
46 "tatus></D:propstat></D:response><D:response><D:href>/c=aaaaa-bbb",
47 "bb-ccccccccccccccc/myFile.exe</D:href><D:propstat><D:prop><D:r",
48 "esourcetype></D:resourcetype><D:getlastmodified>Fri, 12 Jan 2018",
49 " 22:22:22 GMT</D:getlastmodified><D:getcontenttype>text/x-c++src",
50 "; charset=utf-8</D:getcontenttype><D:displayname>myFile.exe</D",
51 ":displayname><D:getcontentlength>25</D:getcontentlength><D:getet",
52 "ag>\"123b12dd1234567890\"</D:getetag><D:supportedlock><D:lockent",
53 "ry xmlns:D=\"DAV:\"><D:lockscope><D:exclusive/></D:lockscope><D:",
54 "locktype><D:write/></D:locktype></D:lockentry></D:supportedlock>",
55 "</D:prop><D:status>HTTP/1.1 200 OK</D:status></D:propstat></D:re",
56 "sponse></D:multistatus>")
60 test_that(paste("getFileNamesFromResponse returns file names belonging to specific",
61 "collection parsed from webDAV server response"), {
63 serverResponse <- list()
64 serverResponse$content <- charToRaw(webDAVResponseSample)
65 serverResponse$headers[["Content-Type"]] <- "text/xml; charset=utf-8"
66 class(serverResponse) <- c("response")
67 url <- URLencode("https://webdav/c=aaaaa-bbbbb-ccccccccccccccc")
69 parser <- HttpParser$new()
70 result <- parser$getFileNamesFromResponse(serverResponse, url)
71 expectedResult <- "myFile.exe"
72 resultMatchExpected <- all.equal(result, expectedResult)
74 expect_that(resultMatchExpected, is_true())
77 test_that(paste("getFileSizesFromResponse returns file sizes",
78 "parsed from webDAV server response"), {
80 serverResponse <- list()
81 serverResponse$content <- charToRaw(webDAVResponseSample)
82 serverResponse$headers[["Content-Type"]] <- "text/xml; charset=utf-8"
83 class(serverResponse) <- c("response")
84 url <- URLencode("https://webdav/c=aaaaa-bbbbb-ccccccccccccccc")
86 parser <- HttpParser$new()
87 expectedResult <- "25"
88 result <- parser$getFileSizesFromResponse(serverResponse, url)
89 resultMatchExpected <- result == expectedResult
91 expect_that(resultMatchExpected, is_true())