ejabberd-contrib/ejabberd_auth_http/deps/fusco/test/fusco_lib_tests.erl

208 lines
7.5 KiB
Erlang

%%%-----------------------------------------------------------------------------
%%% @copyright (C) 1999-2013, Erlang Solutions Ltd
%%% @author Oscar Hellström <oscar@hellstrom.st>
%%% @author Diana Parra Corbacho <diana.corbacho@erlang-solutions.com>
%%% @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"))
].