skip_on_cran()
skip_if_offline(url_parse(hb())$domain)

context("paths")

test_that("paths work", {
  cli <- HttpClient$new(url = hb())
  aa <- cli$get(path = 'get')

  expect_is(aa, "HttpResponse")
  urlsp <- strsplit(aa$url, "/")[[1]]
  expect_equal(urlsp[length(urlsp)], "get")
  expect_equal(aa$status_code, 200)
})

test_that("path - multiple route paths work", {
  cli <- HttpClient$new(url = hb())
  bb <- cli$get('status/200')

  expect_is(bb, "HttpResponse")
  urlsp <- strsplit(bb$url, "/")[[1]]
  expect_equal(urlsp[4:5], c('status', '200'))
  expect_equal(bb$status_code, 200)
})

test_that("path - paths don't work if paths already on URL", {
  cli <- HttpClient$new(url = hb("/get/adsfasdf"))
  bb <- cli$get('stuff')

  expect_is(bb, "HttpResponse")
  expect_equal(bb$status_code, 404)
  expect_true(grepl("stuff", bb$url))
  expect_false(grepl("adsfasdf", bb$url))
})

test_that("path - work with routes that have spaces", {
  skip_on_os("windows")

  cli <- HttpClient$new(url = "http://www.marinespecies.org")
  bb <- cli$get('rest/AphiaRecordsByName/Platanista gangetica')

  expect_is(bb, "HttpResponse")
  urlsp <- strsplit(bb$url, "/")[[1]]
  expect_equal(urlsp[length(urlsp)], 'Platanista%20gangetica')
})
