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.

112 lines
3.2 KiB

dofile("wow_api.lua")
dofile("LibStub.lua")
dofile("../AceLocale-3.0/AceLocale-3.0.lua")
local AceLocale = LibStub("AceLocale-3.0")
local loc = AceLocale:NewLocale("test", "enUS")
loc["a"] = "A"
loc["c"] = "C"
local loc = AceLocale:NewLocale("test", "deDE", true)
loc["a"] = "aa"
loc["b"] = "bb"
loc["c"] = "cc"
local loc = AceLocale:NewLocale("test", "frFR")
assert(loc == nil)
local test = AceLocale:GetLocale("test")
assert(test["a"] == "A")
assert(test["b"] == "bb")
assert(test["c"] == "C")
-- Test requesting an unknown string
local oldgeterrorhandler = geterrorhandler
local errors=0
_G.geterrorhandler = function() return function() errors=errors+1 end end
assert(test["thisdoesntexist"]=="thisdoesntexist")
assert(errors==1)
_G.geterrorhandler=oldgeterrorhandler
------------------------------------------------
-- Test the silent flag working
local loc = AceLocale:NewLocale("test2", "enUS", true, true) -- silent flag set on first locale to be registered
loc["This Exists"]=true
AceLocale:NewLocale("test2", "deDE")
AceLocale:NewLocale("test2", "frFR")
local test2=AceLocale:GetLocale("test2")
assert(test2["thisdoesntexist"]=="thisdoesntexist")
assert(test2["This Exists"]=="This Exists")
------------------------------------------------
-- Test the silent flag working even if the default locale is registered second
AceLocale:NewLocale("test3", "deDE", false, true) -- silent flag set on first locale to be registered
AceLocale:NewLocale("test3", "enUS", true)
AceLocale:NewLocale("test3", "frFR")
local test3=AceLocale:GetLocale("test3")
assert(test3["thisdoesntexist"]=="thisdoesntexist")
assert(test3["This Exists"]=="This Exists")
------------------------------------------------
-- Test the silent flag warning when using it on nonfirst
local oldgeterrorhandler = geterrorhandler
local errors=0
_G.geterrorhandler = function() return function() errors=errors+1 end end
AceLocale:NewLocale("test3a", "deDE")
AceLocale:NewLocale("test3a", "enUS", true, true)
AceLocale:NewLocale("test3a", "frFR")
assert(errors==1)
_G.geterrorhandler=oldgeterrorhandler
------------------------------------------------
-- Test silent="raw" working
local loc = AceLocale:NewLocale("test4", "enUS", true, "raw")
loc["This Exists"]=true
AceLocale:NewLocale("test4", "deDE")
AceLocale:NewLocale("test4", "frFR")
local test4=AceLocale:GetLocale("test4")
assert(test4["thisdoesntexist"]==nil)
assert(test4["This Exists"]=="This Exists")
------------------------------------------------
-- Test that we can re-get an already-created locale so we can write more to it
local loc = AceLocale:NewLocale("test5", "enUS")
loc["orig1"]=true
loc["orig2"]="orig2"
loc["orig3"]=true
loc["orig4"]="orig4"
local loc = AceLocale:NewLocale("unrelatedLocale", "enUS") -- touch something else in between to make extra sure
local loc = AceLocale:NewLocale("test5", "enUS")
loc["orig3"]="NEWorig3"
loc["orig4"]="NEWorig4"
loc["orig5"]="thisneverexisted"
local test5=AceLocale:GetLocale("test5")
assert(test5["orig1"]=="orig1")
assert(test5["orig2"]=="orig2")
assert(test5["orig3"]=="NEWorig3")
assert(test5["orig4"]=="NEWorig4")
assert(test5["orig5"]=="thisneverexisted")
------------------------------------------------
print "OK"