Annotate

spec/muc_util_spec.lua @ 12480:7e9ebdc75ce4

net: isolate LuaSec-specifics For this, various accessor functions are now provided directly on the sockets, which reach down into the LuaSec implementation to obtain the information. While this may seem of little gain at first, it hides the implementation detail of the LuaSec+LuaSocket combination that the actual socket and the TLS layer are separate objects. The net gain here is that an alternative implementation does not have to emulate that specific implementation detail and "only" has to expose LuaSec-compatible data structures on the new functions.
author Jonas Schäfer <jonas@wielicki.name>
date Wed, 27 Apr 2022 17:44:14 +0200
parent 10715:ad86b93093a3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
9213
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
10715
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
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: 9213
diff changeset
7 local env = setmetatable({
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
diff changeset
8 module = {
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
diff changeset
9 _shared = {};
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
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: 9213
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: 9213
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: 9213
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: 9213
diff changeset
14 t = {};
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
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: 9213
diff changeset
16 end
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
diff changeset
17 return t;
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
diff changeset
18 end;
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
diff changeset
19 }
ad86b93093a3 spec: Include a hacky moduleapi stub to allow test to proceed
Kim Alvefur <zash@zash.se>
parents: 9213
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: 9213
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: 9213
diff changeset
22 end
9213
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);