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.
89 lines
3.1 KiB
89 lines
3.1 KiB
dofile("wow_api.lua")
|
|
dofile("../LibStub/LibStub.lua")
|
|
dofile("../CallbackHandler-1.0/CallbackHandler-1.0.lua")
|
|
dofile("../LibSharedMedia-3.0/LibSharedMedia-3.0.lua")
|
|
|
|
local SML = LibStub("LibSharedMedia-3.0")
|
|
|
|
local callback_result
|
|
function callback_test(...)
|
|
callback_result = {...}
|
|
end
|
|
|
|
SML.RegisterCallback("test", "LibSharedMedia_Registered", callback_test)
|
|
SML.RegisterCallback("test", "LibSharedMedia_SetGlobal", callback_test)
|
|
|
|
-- fetch existing font
|
|
assert(SML:Fetch("font", "Morpheus") == [[Fonts\MORPHEUS.TTF]])
|
|
assert(SML:Fetch("font", "Morpheus", true) == [[Fonts\MORPHEUS.TTF]])
|
|
|
|
-- fetch non-existing font
|
|
assert(SML:Fetch("font", "random_name") == [[Fonts\FRIZQT__.TTF]])
|
|
assert(SML:Fetch("font", "random_name", true) == nil)
|
|
|
|
-- fetch non-existing type
|
|
assert(SML:Fetch("random_type", "random_name") == nil)
|
|
assert(SML:Fetch("random_type", "random_name", true) == nil)
|
|
|
|
-- register new font
|
|
callback_result = nil
|
|
assert(SML:Register("font", "newfont", "newfontfile"))
|
|
assert(callback_result[1] == "LibSharedMedia_Registered" and callback_result[2] == "font" and callback_result[3] == "newfont")
|
|
|
|
-- register existing font
|
|
callback_result = nil
|
|
assert(not SML:Register("font", "newfont", "newfontfile"))
|
|
assert(not callback_result)
|
|
|
|
-- register font disabled for current locale
|
|
callback_result = nil
|
|
assert(not SML:Register("font", "anotherfont", "anotherfontfile", SML.LOCALE_BIT_koKR))
|
|
assert(not callback_result)
|
|
|
|
-- :IsValid()
|
|
assert(SML:IsValid("font"))
|
|
assert(SML:IsValid("font", "newfont"))
|
|
assert(not SML:IsValid("random_type"))
|
|
assert(not SML:IsValid("font", "random_name"))
|
|
|
|
-- :HashTable returns handle to internal table
|
|
assert(SML:HashTable("font") == SML.MediaTable.font)
|
|
assert(SML:HashTable("random_type") == nil)
|
|
|
|
-- :List returns handle to internal table
|
|
assert(SML:List("font") == SML.MediaList.font)
|
|
assert(SML:List("random_type") == nil)
|
|
|
|
-- no global set for font
|
|
assert(SML:GetGlobal("font") == nil)
|
|
|
|
-- setting new global for font
|
|
callback_result = nil
|
|
assert(SML:SetGlobal("font", "newfont"))
|
|
assert(callback_result[1] == "LibSharedMedia_SetGlobal" and callback_result[2] == "font" and callback_result[3] == "newfont")
|
|
|
|
-- testing global for font
|
|
assert(SML:GetGlobal("font") == "newfont")
|
|
|
|
-- fetch existing font
|
|
assert(SML:Fetch("font", "Morpheus") == "newfontfile")
|
|
assert(SML:Fetch("font", "Morpheus", true) == "newfontfile")
|
|
|
|
-- fetch non-existing font
|
|
assert(SML:Fetch("font", "random_name") == "newfontfile")
|
|
assert(SML:Fetch("font", "random_name", true) == "newfontfile")
|
|
|
|
-- non-existing keys or nil reset override
|
|
callback_result = nil
|
|
assert(SML:SetGlobal("font"))
|
|
assert(callback_result[1] == "LibSharedMedia_SetGlobal" and callback_result[2] == "font" and callback_result[3] == nil)
|
|
|
|
callback_result = nil
|
|
assert(SML:SetGlobal("font", "random_name"))
|
|
assert(callback_result[1] == "LibSharedMedia_SetGlobal" and callback_result[2] == "font" and callback_result[3] == nil)
|
|
|
|
-- :SetDefault
|
|
assert(not SML:SetDefault("font", "newfont"))
|
|
|
|
------------------------------------------------
|
|
print "OK"
|