Fix behaviour on unset. Tested on real kamailio.

squeeze-backports
Victor Seva 13 years ago
parent db2d4a6aad
commit 877a7d0583

@ -25,6 +25,7 @@ pvMock = {
local _id, indx, key local _id, indx, key
local patterns = { local patterns = {
'%$xavp%(([%w_]+)%)$', '%$xavp%(([%w_]+)%)$',
'%$xavp%(([%w_^%[]+)%[(%d+)%]%)$',
'%$xavp%(([%w_]+)=>([%w_]+)%)$', '%$xavp%(([%w_]+)=>([%w_]+)%)$',
'%$xavp%(([%w_^%[]+)%[(%d+)%]=>([%w_]+)%)$' '%$xavp%(([%w_^%[]+)%[(%d+)%]=>([%w_]+)%)$'
} }
@ -213,7 +214,7 @@ pvMock = {
return return
end end
result.real_indx = #t.vars[result.private_id]._et - result.indx result.real_indx = #t.vars[result.private_id]._et - result.indx
t.vars[result.private_id]._et[result.real_indx] = nil t.vars[result.private_id]._et[result.real_indx] = false
end end
elseif result.type == 'avp' then elseif result.type == 'avp' then
t.vars[result.private_id] = nil t.vars[result.private_id] = nil

@ -246,10 +246,15 @@ TestSRMock = {}
end end
function TestSRMock:test_unset_xavp() function TestSRMock:test_unset_xavp()
self.sr.pv.sets("$xavp(g=>t)", "value_t") self.sr.pv.sets("$xavp(g=>t)", "value")
assertEquals(self.sr.pv.get("$xavp(g=>t)"), "value_t") assertEquals(self.sr.pv.get("$xavp(g[0]=>t)"), "value")
self.sr.pv.unset("$xavp(g=>t)") self.sr.pv.sets("$xavp(g=>t)", "value1")
assertEquals(self.sr.pv.get("$xavp(g=>t)"), nil) assertEquals(self.sr.pv.get("$xavp(g[0]=>t)"), "value1")
self.sr.pv.unset("$xavp(g[0]=>t)")
assertEquals(self.sr.pv.get("$xavp(g[0]=>t)"), nil)
assertEquals(self.sr.pv.get("$xavp(g[1]=>t)"), "value")
self.sr.pv.unset("$xavp(g[1])")
assertFalse(self.sr.pv.get("$xavp(g[1])"))
self.sr.pv.unset("$xavp(g)") self.sr.pv.unset("$xavp(g)")
assertEquals(self.sr.pv.get("$xavp(g)"), nil) assertEquals(self.sr.pv.get("$xavp(g)"), nil)
end end

Loading…
Cancel
Save