mirror of
https://github.com/minetest-mods/skinsdb.git
synced 2024-11-16 07:00:19 +01:00
52 lines
1.6 KiB
Lua
52 lines
1.6 KiB
Lua
local function get_skin(skin_name)
|
|
local skin = skins.get(skin_name)
|
|
or skins.__fuzzy_match_skin_name("(unittest)", skin_name, true)
|
|
return skin and skin:get_key() or nil
|
|
end
|
|
|
|
local function run_unittest()
|
|
local PATH = ":UNITTEST:"
|
|
|
|
-- -----
|
|
-- `.`: Simple register + retrieve operations
|
|
skins.register_skin(PATH, "player.DotSep.png")
|
|
skins.register_skin(PATH, "player._DotSep_666_.1.png")
|
|
|
|
assert(get_skin("player.DotSep"))
|
|
assert(get_skin("player._DotSep_666_.1"))
|
|
assert(get_skin("player.DotSep.1") == nil)
|
|
|
|
-- -----
|
|
-- Ambiguous skin names (filenames without extension). Register + retrieve
|
|
skins.new("player_AmbSki")
|
|
skins.new("player_AmbSki_1")
|
|
skins.new("player_AmbSki_666_1")
|
|
|
|
assert(get_skin("player_AmbSki"))
|
|
assert(get_skin("player_AmbSki_") == nil)
|
|
assert(get_skin("player_AmbSki_1"))
|
|
assert(get_skin("player_AmbSki_666_1"))
|
|
-- There are no `__` patterns as they were silently removed by string.split
|
|
|
|
|
|
-- -----
|
|
-- Mod Storage backwards compatibility
|
|
-- Match the old `_` notation to `.`-separated skins
|
|
skins.register_skin(PATH, "player.ComPat42.png")
|
|
skins.register_skin(PATH, "player.ComPat42.5.png")
|
|
skins.register_skin(PATH, "player._Com_Pat_42.png")
|
|
skins.register_skin(PATH, "player._Com_Pat_42.1.png")
|
|
|
|
assert(get_skin("player_ComPat42") == "player.ComPat42")
|
|
assert(get_skin("player_ComPat42_5") == "player.ComPat42.5")
|
|
assert(get_skin("player_Com_Pat_42") == "player._Com_Pat_42")
|
|
assert(get_skin("player_Com_Pat_42_1") == "player._Com_Pat_42.1")
|
|
|
|
|
|
error("Unittest passed! Please disable them now.")
|
|
end
|
|
|
|
if skins._enable_unittest then
|
|
run_unittest()
|
|
end
|