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.

118 lines
2.4 KiB

dofile("wow_api.lua")
dofile("../LibStub/LibStub.lua")
dofile("../CallbackHandler-1.0/CallbackHandler-1.0.lua")
dofile("../AceComm-3.0/ChatThrottleLib.lua")
dofile("../AceComm-3.0/AceComm-3.0.lua")
local AceComm = LibStub("AceComm-3.0")
local addon1 = {}
AceComm:Embed(addon1)
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-----------------------------------------------------------------------
--
-- Test callbacks firing delayed
--
-- Single message
local nSingle=0
addon1:SendCommMessage("single", "1234567890", "RAID", nil, "NORMAL",
function(arg,sent,total)
assert(arg=="singlearg")
nSingle=nSingle+1
assert(sent==10 and total==10)
end,
"singlearg"
)
-- Multipart message
local nMulti=0
addon1:SendCommMessage("multi", strrep("1234567890", 80), "RAID", nil, "NORMAL",
function(arg,sent,total)
assert(arg=="multiarg")
nMulti=nMulti+1
-- print(sent)
if nMulti>=1 and nMulti<=3 then
assert(sent==(255-1)*nMulti) -- 256 - \0 - \t - #prefix - [\001-\003]
elseif nMulti==4 then
assert(sent==800)
end
assert(total==800)
end,
"multiarg"
)
assert(nSingle==0)
assert(nMulti==0)
WoWAPI_FireUpdate(GetTime()+100) -- 100 seconds later
assert(nSingle==1)
assert(nMulti==4)
-----------------------------------------------------------------------
-----------------------------------------------------------------------
-----------------------------------------------------------------------
--
-- Test callbacks firing IMMEDIATELY (recursively)
--
WoWAPI_FireUpdate(GetTime()+100) -- 100 seconds later
-- Single message
local nSingle=0
addon1:SendCommMessage("single", "1234567890", "RAID", nil, "NORMAL",
function(arg,sent,total)
assert(arg=="singlearg")
nSingle=nSingle+1
assert(sent==10 and total==10)
end,
"singlearg"
)
assert(nSingle==1)
-- Multipart message
local nMulti=0
addon1:SendCommMessage("multi", strrep("1234567890", 80), "RAID", nil, "NORMAL",
function(arg,sent,total)
assert(arg=="multiarg")
nMulti=nMulti+1
-- print(sent)
if nMulti>=1 and nMulti<=3 then
assert(sent==(255-1)*nMulti) -- 256 - \0 - \t - #prefix - [\001-\003]
elseif nMulti==4 then
assert(sent==800)
end
assert(total==800)
end,
"multiarg"
)
assert(nMulti==4)
WoWAPI_FireUpdate(time()+100) -- 100 seconds later
assert(nSingle==1)
assert(nMulti==4)
-----------------------------------------------------------------------
print "OK"