Rev 69024 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
## These are tests that require libcurl functionality and a working## Internet connection.if(!capabilities()["libcurl"]) {warning("no libcurl support")q()}## fails some of the time#if(.Platform$OS.type == "windows") q()if(.Platform$OS.type == "unix" &&is.null(nsl("cran.r-project.org"))) q()example(curlGetHeaders, run.donttest = TRUE)tf <- tempfile()download.file("http://cran.r-project.org/", tf, method = "libcurl")file.size(tf)unlink(tf)tf <- tempfile()download.file("ftp://ftp.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat",tf, method = "libcurl")file.size(tf) # 2102unlink(tf)## test url connections on httpstr(readLines(zz <- url("http://cran.r-project.org/", method = "libcurl")))zzstopifnot(identical(summary(zz)$class, "url-libcurl"))close(zz)## https URLhead(readLines(zz <- url("https://httpbin.org", method = "libcurl"),warn = FALSE))close(zz)## redirection (to a https:// URL)head(readLines(zz <- url("http://bugs.r-project.org", method = "libcurl"),warn = FALSE))close(zz)## check graceful failure: warnings leading to error## testUnknownUrlError <- tryCatch(suppressWarnings({## zz <- url("http://foo.bar", "r", method = "libcurl")## }), error=function(e) {## conditionMessage(e) == "cannot open connection"## })## close(zz)## stopifnot(testUnknownUrlError)## tf <- tempfile()## testDownloadFileError <- tryCatch(suppressWarnings({## download.file("http://foo.bar", tf, method="libcurl")## }), error=function(e) {## conditionMessage(e) == "cannot download all files"## })## stopifnot(testDownloadFileError, !file.exists(tf))tf <- tempfile()testDownloadFile404 <- tryCatch(suppressWarnings({download.file("http://httpbin.org/status/404", tf, method="libcurl")}), error=function(e) {conditionMessage(e) == "cannot download all files"})stopifnot(testDownloadFile404, !file.exists(tf))## check specific warnings## testUnknownUrl <- tryCatch({## zz <- url("http://foo.bar", "r", method = "libcurl")## }, warning=function(e) {## grepl("Couldn't resolve host name", conditionMessage(e))## })## close(zz)## stopifnot(testUnknownUrl)test404.1 <- tryCatch({open(zz <- url("http://httpbin.org/status/404", method="libcurl"))}, warning=function(w) {grepl("404 Not Found", conditionMessage(w))})close(zz)stopifnot(test404.1)## via read.table (which closes the connection)tail(read.table(url("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat",method = "libcurl")))tail(read.table(url("ftp://ftp.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat",method = "libcurl")))## check option worksoptions(url.method = "libcurl")zz <- url("http://www.stats.ox.ac.uk/pub/datasets/csb/ch11b.dat")stopifnot(identical(summary(zz)$class, "url-libcurl"))close(zz)head(readLines("https://httpbin.org", warn = FALSE))test404.2 <- tryCatch({open(zz <- url("http://httpbin.org/status/404"))}, warning=function(w) {grepl("404 Not Found", conditionMessage(w))})close(zz)stopifnot(test404.2)showConnections(all = TRUE)