You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lua-uri/test/_util.lua

93 lines
2.8 KiB

require "uri-test"
local Util = require "uri._util"
module("test.util", lunit.testcase, package.seeall)
function test_metadata ()
is("uri._util", Util._NAME)
end
function test_uri_encode ()
is("%7Cabc%E5", Util.uri_encode("|abc\229"))
is("a%62%63", Util.uri_encode("abc", "b-d"))
assert_nil(Util.uri_encode(nil))
end
function test_uri_decode ()
is("|abc\229", Util.uri_decode("%7Cabc%e5"))
is("@AB", Util.uri_decode("%40A%42"))
is("CDE", Util.uri_decode("CDE"))
end
function test_uri_decode ()
is("/%2F%25/..!%A1", Util.uri_decode("/%2F%25/%2e.%21%A1", "%-.!"))
end
function test_remove_dot_segments ()
is("/", Util.remove_dot_segments("/foo/../"))
is("/bar", Util.remove_dot_segments("/foo/./../bar"))
end
function test_split ()
local list
list = Util.split(";", "")
assert_array_shallow_equal({}, list)
list = Util.split(";", "foo")
assert_array_shallow_equal({"foo"}, list)
list = Util.split(";", "foo;bar")
assert_array_shallow_equal({"foo","bar"}, list)
list = Util.split(";", "foo;bar;baz")
assert_array_shallow_equal({"foo","bar","baz"}, list)
list = Util.split(";", ";")
assert_array_shallow_equal({"",""}, list)
list = Util.split(";", "foo;")
assert_array_shallow_equal({"foo",""}, list)
list = Util.split(";", ";foo")
assert_array_shallow_equal({"","foo"}, list)
-- TODO test with multi-char and more complex patterns
end
function test_split_with_max ()
local list
list = Util.split(";", "foo;bar;baz", 4)
assert_array_shallow_equal({"foo","bar","baz"}, list)
list = Util.split(";", "foo;bar;baz", 3)
assert_array_shallow_equal({"foo","bar","baz"}, list)
list = Util.split(";", "foo;bar;baz", 2)
assert_array_shallow_equal({"foo","bar;baz"}, list)
list = Util.split(";", "foo;bar;baz", 1)
assert_array_shallow_equal({"foo;bar;baz"}, list)
end
function test_attempt_require ()
local mod = Util.attempt_require("string")
assert_table(mod)
mod = Util.attempt_require("lua-module-which-doesn't-exist")
assert_nil(mod)
end
function test_subclass_of ()
local baseclass = {}
baseclass.__index = baseclass
baseclass.overridden = function () return "baseclass" end
baseclass.inherited = function () return "inherited" end
local subclass = {}
Util.subclass_of(subclass, baseclass)
subclass.overridden = function () return "subclass" end
assert(getmetatable(subclass) == baseclass)
assert(subclass._SUPER == baseclass)
local baseobject, subobject = {}, {}
setmetatable(baseobject, baseclass)
setmetatable(subobject, subclass)
is("baseclass", baseobject:overridden())
is("subclass", subobject:overridden())
is("inherited", baseobject:inherited())
is("inherited", subobject:inherited())
end
-- vi:ts=4 sw=4 expandtab