Files
n8n-openai-adapter/test/elixir/uri_test.exs
T

113 lines
5.0 KiB
Elixir

defmodule URITest do
use ExUnit.Case
test :url_encode do
expected = "%26%3C%3E%22+%E3%82%86%E3%82%93%E3%82%86%E3%82%93"
list_expected = binary_to_list expected
assert_equal expected, URI.url_encode(<<38,60,62,34,32,227,130,134,227,
130,147,227,130,134,227,130,147>>)
assert_equal list_expected, URI.url_encode([38,60,62,34,32,12422,12435,12422,12435])
end
test :encode_query do
assert_equal "foo=bar&baz=quux", URI.encode_query([{:foo, :bar}, {:baz, :quux}])
assert_equal "foo=bar&baz=quux", URI.encode_query([{"foo", "bar"}, {"baz", "quux"}])
assert_equal "foo=bar&baz=quux", URI.encode_query([{'foo', 'bar'}, {'baz', 'quux'}])
end
test :encode_query_mixed do
assert_equal "foo=bar", URI.encode_query([{"foo", :bar}])
assert_equal "foo=bar", URI.encode_query([{'foo', :bar}])
assert_equal "foo=bar", URI.encode_query([{"foo", 'bar'}])
assert_equal "foo=bar", URI.encode_query([{'foo', "bar"}])
assert_equal "foo=bar", URI.encode_query([{:foo, "bar"}])
assert_equal "foo=bar", URI.encode_query([{:foo, 'bar'}])
end
test :parse_http do
assert_equal [scheme: "http", host: "foo.com", path: "/path/to/something",
query: "foo=bar&bar=foo", fragment: "fragment", port: 80,
authority: "foo.com", userinfo: nil],
URI.parse("http://foo.com/path/to/something?foo=bar&bar=foo#fragment")
end
test :parse_https do
assert_equal [scheme: "https", host: "foo.com", authority: "foo.com",
query: nil, fragment: nil, port: 443, path: nil, userinfo: nil],
URI.parse("https://foo.com")
end
test :parse_file do
assert_equal [scheme: "file", host: nil, path: "/foo/bar/baz", userinfo: nil,
query: nil, fragment: nil, port: nil, authority: nil],
URI.parse("file:///foo/bar/baz")
end
test :parse_ftp do
assert_equal [scheme: "ftp", host: "private.ftp-servers.example.com",
userinfo: "user001:secretpassword", authority: "user001:secretpassword@private.ftp-servers.example.com",
path: "/mydirectory/myfile.txt", query: nil, fragment: nil,
port: 21],
URI.parse("ftp://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt")
end
test :parse_sftp do
assert_equal [scheme: "sftp", host: "private.ftp-servers.example.com",
userinfo: "user001:secretpassword", authority: "user001:secretpassword@private.ftp-servers.example.com",
path: "/mydirectory/myfile.txt", query: nil, fragment: nil,
port: 22],
URI.parse("sftp://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt")
end
test :parse_tftp do
assert_equal [scheme: "tftp", host: "private.ftp-servers.example.com",
userinfo: "user001:secretpassword", authority: "user001:secretpassword@private.ftp-servers.example.com",
path: "/mydirectory/myfile.txt", query: nil, fragment: nil,
port: 69],
URI.parse("tftp://user001:secretpassword@private.ftp-servers.example.com/mydirectory/myfile.txt")
end
test :parse_ldap do
assert_equal [scheme: "ldap", host: nil, authority: nil, userinfo: nil,
path: "/dc=example,dc=com", query: "?sub?(givenName=John)",
fragment: nil, port: 389],
URI.parse("ldap:///dc=example,dc=com??sub?(givenName=John)")
assert_equal [scheme: "ldap", host: "ldap.example.com", authority: "ldap.example.com",
userinfo: nil, path: "/cn=John%20Doe,dc=example,dc=com", fragment: nil,
port: 389, query: nil],
URI.parse("ldap://ldap.example.com/cn=John%20Doe,dc=example,dc=com")
end
test :parse_list do
assert_equal [scheme: "http", host: "foo.com", authority: "foo.com",
query: nil, fragment: nil, port: 80, path: nil, userinfo: nil],
URI.parse('http://foo.com')
end
test :parse_splits_authority do
assert_equal [scheme: "http", host: "foo.com", path: nil,
query: nil, fragment: nil, port: 4444,
authority: "foo:bar@foo.com:4444",
userinfo: "foo:bar"],
URI.parse("http://foo:bar@foo.com:4444")
assert_equal [scheme: "https", host: "foo.com", path: nil,
query: nil, fragment: nil, port: 443,
authority: "foo:bar@foo.com", userinfo: "foo:bar"],
URI.parse("https://foo:bar@foo.com")
assert_equal [scheme: "http", host: "foo.com", path: nil,
query: nil, fragment: nil, port: 4444,
authority: "foo.com:4444",
userinfo: nil],
URI.parse("http://foo.com:4444")
end
test :parse_bad_uris do
assert URI.parse("https:??@?F?@#>F//23/")
assert URI.parse("")
assert URI.parse(":https")
assert URI.parse("https")
end
end