prosodyctl check: Warn about invalid domain names in the config file
This ensures that domain names of virtual hosts and components are valid in
XMPP, and that they are encoded correctly.
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);