spec/muc_util_spec.lua
author Kim Alvefur <zash@zash.se>
Sun, 24 Mar 2024 20:39:42 +0100
changeset 13466 720aed1f5cf2
parent 10719 ad86b93093a3
permissions -rw-r--r--
util.startup: Check root after detecting platform and reading config (thanks SigmaTel71) Ensures that startup.detect_platform() runs so know whether to use the POSIX method of checking the current user or something else. Also after reading the config so we know whether the root override setting is set.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
9216
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     1
local muc_util;
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     2
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     3
local st = require "util.stanza";
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     4
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
     5
do
10719
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
     6
	-- XXX Hack for lack of a mock moduleapi
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
     7
	local env = setmetatable({
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
     8
		module = {
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
     9
			_shared = {};
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    10
			-- Close enough to the real module:shared() for our purposes here
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    11
			shared = function (self, name)
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    12
				local t = self._shared[name];
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    13
				if t == nil then
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    14
					t = {};
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    15
					self._shared[name] = t;
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    16
				end
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    17
				return t;
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    18
			end;
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    19
		}
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    20
	}, { __index = _ENV or _G });
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    21
	muc_util = require "util.envload".envloadfile("plugins/muc/util.lib.lua", env)();
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9216
diff changeset
    22
	end
9216
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    23
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    24
describe("muc/util", function ()
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    25
	describe("filter_muc_x()", function ()
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    26
		it("correctly filters muc#user", function ()
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    27
			local stanza = st.message({ to = "to", from = "from", id = "foo" })
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    28
				:tag("x", { xmlns = "http://jabber.org/protocol/muc#user" })
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    29
					:tag("invite", { to = "user@example.com" });
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    30
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    31
			assert.equal(1, #stanza.tags);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    32
			assert.equal(stanza, muc_util.filter_muc_x(stanza));
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    33
			assert.equal(0, #stanza.tags);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    34
		end);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    35
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    36
		it("correctly filters muc#user on a cloned stanza", function ()
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    37
			local stanza = st.message({ to = "to", from = "from", id = "foo" })
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    38
				:tag("x", { xmlns = "http://jabber.org/protocol/muc#user" })
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    39
					:tag("invite", { to = "user@example.com" });
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    40
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    41
			assert.equal(1, #stanza.tags);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    42
			local filtered = muc_util.filter_muc_x(st.clone(stanza));
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    43
			assert.equal(1, #stanza.tags);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    44
			assert.equal(0, #filtered.tags);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    45
		end);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    46
	end);
172f93f752b8 tests: Add muc/util tests for filtering MUC elements
Matthew Wild <mwild1@gmail.com>
parents:
diff changeset
    47
end);