%%%----------------------------------------------------------------------------- %%% @copyright (C) 1999-2013, Erlang Solutions Ltd %%% @author Oscar Hellström %%% @author Diana Parra Corbacho %%% @doc %%% @end %%%----------------------------------------------------------------------------- -module(fusco_lib_tests). -copyright("2013, Erlang Solutions Ltd."). -include("../include/fusco_types.hrl"). -include("../include/fusco.hrl"). -include_lib("eunit/include/eunit.hrl"). parse_url_test_() -> [ ?_assertEqual(#fusco_url{ host = "host", port = 80, path = "/", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://host")), ?_assertEqual(#fusco_url{ host = "host", port = 80, path = "/", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://host/")), ?_assertEqual(#fusco_url{ host = "host", port = 443, path = "/", is_ssl = true, user = "", password = "" }, fusco_lib:parse_url("https://host")), ?_assertEqual(#fusco_url{ host = "host", port = 443, path = "/", is_ssl = true, user = "", password = "" }, fusco_lib:parse_url("https://host/")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://host:180")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://host:180/")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://host:180/foo")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "joe", password = "erlang" }, fusco_lib:parse_url("http://joe:erlang@host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "joe", password = "erl@ng" }, fusco_lib:parse_url("http://joe:erl%40ng@host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "joe", password = "" }, fusco_lib:parse_url("http://joe@host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://@host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "joe:arm", password = "erlang" }, fusco_lib:parse_url("http://joe%3Aarm:erlang@host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "host", port = 180, path = "/foo/bar", is_ssl = false, user = "joe:arm", password = "erlang/otp" }, fusco_lib:parse_url("http://joe%3aarm:erlang%2Fotp@host:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "::1", port = 80, path = "/foo/bar", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://[::1]/foo/bar")), ?_assertEqual(#fusco_url{ host = "::1", port = 180, path = "/foo/bar", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://[::1]:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "::1", port = 180, path = "/foo/bar", is_ssl = false, user = "joe", password = "erlang" }, fusco_lib:parse_url("http://joe:erlang@[::1]:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "1080:0:0:0:8:800:200c:417a", port = 180, path = "/foo/bar", is_ssl = false, user = "joe", password = "erlang" }, fusco_lib:parse_url("http://joe:erlang@[1080:0:0:0:8:800:200C:417A]:180/foo/bar")), ?_assertEqual(#fusco_url{ host = "www.example.com", port = 80, path = "/?a=b", is_ssl = false, user = "", password = "" }, fusco_lib:parse_url("http://www.example.com?a=b")) ].