test_that("test basic url", { url <- 'https://www.example.com' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "", password = "", host = "www.example.com", port = "", path = "", raw_path = "", query = list(), raw_query = "", fragment = "" )) }) test_that("test complex url", { url <- "https://www.google.com/maps/place/Pennsylvania+Station/@40.7519848,-74.0015045,14.7z/data=!4m5!3m4!1s0x89c259ae15b2adcb:0x7955420634fd7eba!8m2!3d40.750568!4d-73.993519" actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "", password = "", host = "www.google.com", port = "", path = "/maps/place/Pennsylvania+Station/@40.7519848,-74.0015045,14.7z/data=!4m5!3m4!1s0x89c259ae15b2adcb:0x7955420634fd7eba!8m2!3d40.750568!4d-73.993519", raw_path = "/maps/place/Pennsylvania+Station/@40.7519848,-74.0015045,14.7z/data=!4m5!3m4!1s0x89c259ae15b2adcb:0x7955420634fd7eba!8m2!3d40.750568!4d-73.993519", query = list(), raw_query = "", fragment = "" )) }) test_that("test username and password", { url <- "https://user_1:password_1@example.org:8080/dir/../api?q=1#frag" actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "user_1", password = "password_1", host = "example.org", port = "8080", path = "/dir/../api", raw_path = "", query = list(q = "1"), raw_query = "q=1", fragment = "frag" )) }) test_that("test encoded path", { url <- 'https://www.example.com:8080/search%3D1%2B3' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "", password = "", host = "www.example.com", port = "8080", path = "/search=1+3", raw_path = "/search%3D1%2B3", query = list(), raw_query = "", fragment = "" )) }) test_that("test utf-8", { url <- "https://www.google.co.jp/search?q=\u30c9\u30a4\u30c4" actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "", password = "", host = "www.google.co.jp", port = "", path = "/search", raw_path = "", query = list(q= "\u30c9\u30a4\u30c4"), raw_query = "q=%E3%83%89%E3%82%A4%E3%83%84", fragment = "" )) }) test_that("test encoded query", { url <- 'https://www.example.com:8080?var1=foo&var2=ba r&var3=baz+larry' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "", password = "", host = "www.example.com", port = "8080", path = "", raw_path = "", query = list(var1 = "foo", var2 = "ba r", var3 = "baz+larry"), raw_query = "var1=foo&var2=ba%20r&var3=baz%2Blarry", fragment = "" )) }) test_that("test user, password, host combinations", { url <- 'https://user:password@example.com:8080' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "user", password = "password", host = "example.com", port = "8080", path = "", raw_path = "", query = list(), raw_query = "", fragment = "" )) url <- 'https://user:password@example.com' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "user", password = "password", host = "example.com", port = "", path = "", raw_path = "", query = list(), raw_query = "", fragment = "" )) url <- 'https://user@example.com:8080' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "user", password = "", host = "example.com", port = "8080", path = "", raw_path = "", query = list(), raw_query = "", fragment = "" )) url <- 'https://user@example.com' actual <- url_parse(url) expect_equal(actual, list( scheme = "https", user = "user", password = "", host = "example.com", port = "", path = "", raw_path = "", query = list(), raw_query = "", fragment = "" )) })