Software /
code /
prosody
File
spec/muc_util_spec.lua @ 11733:27699cc148df
mod_bosh: Add todo to use util.session to create session object
So that we get single point where shared session properties can be
added. But not now. One day. Maybe. Patches welcome.
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 29 Jul 2021 20:04:57 +0200 |
parent | 10715:ad86b93093a3 |
line wrap: on
line source
local muc_util; local st = require "util.stanza"; do -- XXX Hack for lack of a mock moduleapi local env = setmetatable({ module = { _shared = {}; -- Close enough to the real module:shared() for our purposes here shared = function (self, name) local t = self._shared[name]; if t == nil then t = {}; self._shared[name] = t; end return t; end; } }, { __index = _ENV or _G }); muc_util = require "util.envload".envloadfile("plugins/muc/util.lib.lua", env)(); end describe("muc/util", function () describe("filter_muc_x()", function () it("correctly filters muc#user", function () local stanza = st.message({ to = "to", from = "from", id = "foo" }) :tag("x", { xmlns = "http://jabber.org/protocol/muc#user" }) :tag("invite", { to = "user@example.com" }); assert.equal(1, #stanza.tags); assert.equal(stanza, muc_util.filter_muc_x(stanza)); assert.equal(0, #stanza.tags); end); it("correctly filters muc#user on a cloned stanza", function () local stanza = st.message({ to = "to", from = "from", id = "foo" }) :tag("x", { xmlns = "http://jabber.org/protocol/muc#user" }) :tag("invite", { to = "user@example.com" }); assert.equal(1, #stanza.tags); local filtered = muc_util.filter_muc_x(st.clone(stanza)); assert.equal(1, #stanza.tags); assert.equal(0, #filtered.tags); end); end); end);