annotate spec/util_jid_spec.lua @ 14063:e73fdb09f080

Merge 13.0->trunk
author Kim Alvefur <zash@zash.se>
date Mon, 09 Feb 2026 01:57:07 +0100
parents 863dd118f8e8
children 27e97e5b2c16
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 local jid = require "util.jid";
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
3
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4 describe("util.jid", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
5 describe("#join()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
6 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
7 assert.are.equal(jid.join("a", "b", "c"), "a@b/c", "builds full JID");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
8 assert.are.equal(jid.join("a", "b", nil), "a@b", "builds bare JID");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
9 assert.are.equal(jid.join(nil, "b", "c"), "b/c", "builds full host JID");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
10 assert.are.equal(jid.join(nil, "b", nil), "b", "builds bare host JID");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
11 assert.are.equal(jid.join(nil, nil, nil), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
12 assert.are.equal(jid.join("a", nil, nil), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
13 assert.are.equal(jid.join(nil, nil, "c"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
14 assert.are.equal(jid.join("a", nil, "c"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
15 end);
12190
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
16 it("should reject invalid arguments", function ()
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
17 assert.has_error(function () jid.join(false, "bork", nil) end)
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
18 assert.has_error(function () jid.join(nil, "bork", false) end)
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
19 assert.has_error(function () jid.join(false, false, false) end)
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
20 end)
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
21 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
22 describe("#split()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
23 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
24 local function test(input_jid, expected_node, expected_server, expected_resource)
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
25 local rnode, rserver, rresource = jid.split(input_jid);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
26 assert.are.equal(expected_node, rnode, "split("..tostring(input_jid)..") failed");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
27 assert.are.equal(expected_server, rserver, "split("..tostring(input_jid)..") failed");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
28 assert.are.equal(expected_resource, rresource, "split("..tostring(input_jid)..") failed");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
29 end
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
30
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
31 -- Valid JIDs
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
32 test("node@server", "node", "server", nil );
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
33 test("node@server/resource", "node", "server", "resource" );
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
34 test("server", nil, "server", nil );
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
35 test("server/resource", nil, "server", "resource" );
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
36 test("server/resource@foo", nil, "server", "resource@foo" );
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
37 test("server/resource@foo/bar", nil, "server", "resource@foo/bar");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
38
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
39 -- Always invalid JIDs
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
40 test(nil, nil, nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
41 test("node@/server", nil, nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
42 test("@server", nil, nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
43 test("@server/resource", nil, nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
44 test("@/resource", nil, nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
45 end);
12190
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
46 it("should reject invalid arguments", function ()
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
47 assert.has_error(function () jid.split(false) end)
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
48 end)
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
49 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
50
12767
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
51 describe("#prepped_split()", function()
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
52 local function test(input_jid, expected_node, expected_server, expected_resource)
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
53 local rnode, rserver, rresource = jid.prepped_split(input_jid);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
54 assert.are.equal(expected_node, rnode, "split("..tostring(input_jid)..") failed");
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
55 assert.are.equal(expected_server, rserver, "split("..tostring(input_jid)..") failed");
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
56 assert.are.equal(expected_resource, rresource, "split("..tostring(input_jid)..") failed");
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
57 end
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
58
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
59 it("should work", function()
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
60 -- Valid JIDs
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
61 test("node@server", "node", "server", nil );
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
62 test("node@server/resource", "node", "server", "resource" );
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
63 test("server", nil, "server", nil );
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
64 test("server/resource", nil, "server", "resource" );
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
65 test("server/resource@foo", nil, "server", "resource@foo" );
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
66 test("server/resource@foo/bar", nil, "server", "resource@foo/bar");
13949
863dd118f8e8 util.jid: Validate domainparts using IDNA or as IP literals (fixes #1903)
Kim Alvefur <zash@zash.se>
parents: 12770
diff changeset
67 test("node@203.0.113.80", "node", "203.0.113.80", nil);
863dd118f8e8 util.jid: Validate domainparts using IDNA or as IP literals (fixes #1903)
Kim Alvefur <zash@zash.se>
parents: 12770
diff changeset
68 test("node@[2001:db8::50:726f:736f:6479]/foo", "node", "[2001:db8::50:726f:736f:6479]", "foo")
12767
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
69
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
70 -- Always invalid JIDs
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
71 test(nil, nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
72 test("node@/server", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
73 test("@server", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
74 test("@server/resource", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
75 test("@/resource", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
76 test("@server/", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
77 test("server/", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
78 test("/resource", nil, nil, nil);
13949
863dd118f8e8 util.jid: Validate domainparts using IDNA or as IP literals (fixes #1903)
Kim Alvefur <zash@zash.se>
parents: 12770
diff changeset
79 test("xmpp:test@example.com", nil, nil, nil);
863dd118f8e8 util.jid: Validate domainparts using IDNA or as IP literals (fixes #1903)
Kim Alvefur <zash@zash.se>
parents: 12770
diff changeset
80 test("xmpp:example.com", nil, nil, nil);
863dd118f8e8 util.jid: Validate domainparts using IDNA or as IP literals (fixes #1903)
Kim Alvefur <zash@zash.se>
parents: 12770
diff changeset
81 test("+123@bridge.example.com)", nil, nil, nil);
12767
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
82 end);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
83 it("should reject invalid arguments", function ()
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
84 assert.has_error(function () jid.prepped_split(false) end)
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
85 end)
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
86 it("should strip empty root label", function ()
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
87 test("node@server.", "node", "server", nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
88 end);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
89 it("should fail for JIDs that fail stringprep", function ()
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
90 test("node@invalid-\128-server", nil, nil, nil);
12770
249bf1a53866 util.jid: Add test for invalid domain but valid UTF-8 (thanks jonas)
Matthew Wild <mwild1@gmail.com>
parents: 12767
diff changeset
91 test("node@invalid-\194\128-server", nil, nil, nil);
12767
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
92 test("<invalid node>@server", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
93 test("node@server/invalid-\000-resource", nil, nil, nil);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
94 end);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
95 end);
3b75943fa5c1 util.jid: Add missing test cases
Matthew Wild <mwild1@gmail.com>
parents: 12190
diff changeset
96
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
97
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
98 describe("#bare()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
99 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
100 assert.are.equal(jid.bare("user@host"), "user@host", "bare JID remains bare");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
101 assert.are.equal(jid.bare("host"), "host", "Host JID remains host");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
102 assert.are.equal(jid.bare("host/resource"), "host", "Host JID with resource becomes host");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
103 assert.are.equal(jid.bare("user@host/resource"), "user@host", "user@host JID with resource becomes user@host");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
104 assert.are.equal(jid.bare("user@/resource"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
105 assert.are.equal(jid.bare("@/resource"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
106 assert.are.equal(jid.bare("@/"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
107 assert.are.equal(jid.bare("/"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
108 assert.are.equal(jid.bare(""), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
109 assert.are.equal(jid.bare("@"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
110 assert.are.equal(jid.bare("user@"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
111 assert.are.equal(jid.bare("user@@"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
112 assert.are.equal(jid.bare("user@@host"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
113 assert.are.equal(jid.bare("user@@host/resource"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
114 assert.are.equal(jid.bare("user@host/"), nil, "invalid JID is nil");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
115 end);
12190
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
116 it("should reject invalid arguments", function ()
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
117 assert.has_error(function () jid.bare(false) end)
3616128cd2e3 util.jid: Explicitly check for nil rather than falsy
Kim Alvefur <zash@zash.se>
parents: 11055
diff changeset
118 end)
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
119 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
120
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
121 describe("#compare()", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
122 it("should work", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
123 assert.are.equal(jid.compare("host", "host"), true, "host should match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
124 assert.are.equal(jid.compare("host", "other-host"), false, "host should not match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
125 assert.are.equal(jid.compare("other-user@host/resource", "host"), true, "host should match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
126 assert.are.equal(jid.compare("other-user@host", "user@host"), false, "user should not match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
127 assert.are.equal(jid.compare("user@host", "host"), true, "host should match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
128 assert.are.equal(jid.compare("user@host/resource", "host"), true, "host should match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
129 assert.are.equal(jid.compare("user@host/resource", "user@host"), true, "user and host should match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
130 assert.are.equal(jid.compare("user@other-host", "host"), false, "host should not match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
131 assert.are.equal(jid.compare("user@other-host", "user@host"), false, "host should not match");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
132 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
133 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
134
11055
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
135 local jid_escaping_test_vectors = {
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
136 -- From https://xmpp.org/extensions/xep-0106.xml#examples sans @example.com
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
137 [[space cadet]], [[space\20cadet]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
138 [[call me "ishmael"]], [[call\20me\20\22ishmael\22]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
139 [[at&t guy]], [[at\26t\20guy]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
140 [[d'artagnan]], [[d\27artagnan]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
141 [[/.fanboy]], [[\2f.fanboy]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
142 [[::foo::]], [[\3a\3afoo\3a\3a]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
143 [[<foo>]], [[\3cfoo\3e]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
144 [[user@host]], [[user\40host]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
145 [[c:\net]], [[c\3a\net]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
146 [[c:\\net]], [[c\3a\\net]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
147 [[c:\cool stuff]], [[c\3a\cool\20stuff]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
148 [[c:\5commas]], [[c\3a\5c5commas]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
149
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
150 -- Section 4.2
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
151 [[\3and\2is\5cool]], [[\5c3and\2is\5c5cool]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
152
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
153 -- From aioxmpp
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
154 [[\5c]], [[\5c5c]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
155 -- [[\5C]], [[\5C]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
156 [[\2plus\2is\4]], [[\2plus\2is\4]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
157 [[foo\bar]], [[foo\bar]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
158 [[foo\41r]], [[foo\41r]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
159 -- additional test vectors
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
160 [[call\20me]], [[call\5c20me]],
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
161 };
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
162
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
163 describe("#escape()", function ()
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
164 it("should work", function ()
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
165 for i = 1, #jid_escaping_test_vectors, 2 do
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
166 local original = jid_escaping_test_vectors[i];
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
167 local escaped = jid_escaping_test_vectors[i+1];
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
168
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
169 assert.are.equal(escaped, jid.escape(original), ("Escapes '%s' -> '%s'"):format(original, escaped));
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
170 end
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
171 end);
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
172 end)
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
173
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
174 describe("#unescape()", function ()
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
175 it("should work", function ()
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
176 for i = 1, #jid_escaping_test_vectors, 2 do
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
177 local original = jid_escaping_test_vectors[i];
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
178 local escaped = jid_escaping_test_vectors[i+1];
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
179
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
180 assert.are.equal(original, jid.unescape(escaped), ("Unescapes '%s' -> '%s'"):format(escaped, original));
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
181 end
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
182 end);
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
183 end)
5fb95410f89c util.jid: Add test coverage for XEP-0106: JID Escaping functions
Kim Alvefur <zash@zash.se>
parents: 8236
diff changeset
184
8236
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
185 it("should work with nodes", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
186 local function test(_jid, expected_node)
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
187 assert.are.equal(jid.node(_jid), expected_node, "Unexpected node for "..tostring(_jid));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
188 end
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
189
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
190 test("example.com", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
191 test("foo.example.com", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
192 test("foo.example.com/resource", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
193 test("foo.example.com/some resource", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
194 test("foo.example.com/some@resource", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
195
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
196 test("foo@foo.example.com/some@resource", "foo");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
197 test("foo@example/some@resource", "foo");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
198
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
199 test("foo@example/@resource", "foo");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
200 test("foo@example@resource", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
201 test("foo@example", "foo");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
202 test("foo", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
203
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
204 test(nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
205 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
206
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
207 it("should work with hosts", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
208 local function test(_jid, expected_host)
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
209 assert.are.equal(jid.host(_jid), expected_host, "Unexpected host for "..tostring(_jid));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
210 end
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
211
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
212 test("example.com", "example.com");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
213 test("foo.example.com", "foo.example.com");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
214 test("foo.example.com/resource", "foo.example.com");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
215 test("foo.example.com/some resource", "foo.example.com");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
216 test("foo.example.com/some@resource", "foo.example.com");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
217
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
218 test("foo@foo.example.com/some@resource", "foo.example.com");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
219 test("foo@example/some@resource", "example");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
220
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
221 test("foo@example/@resource", "example");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
222 test("foo@example@resource", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
223 test("foo@example", "example");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
224 test("foo", "foo");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
225
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
226 test(nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
227 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
228
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
229 it("should work with resources", function()
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
230 local function test(_jid, expected_resource)
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
231 assert.are.equal(jid.resource(_jid), expected_resource, "Unexpected resource for "..tostring(_jid));
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
232 end
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
233
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
234 test("example.com", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
235 test("foo.example.com", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
236 test("foo.example.com/resource", "resource");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
237 test("foo.example.com/some resource", "some resource");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
238 test("foo.example.com/some@resource", "some@resource");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
239
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
240 test("foo@foo.example.com/some@resource", "some@resource");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
241 test("foo@example/some@resource", "some@resource");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
242
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
243 test("foo@example/@resource", "@resource");
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
244 test("foo@example@resource", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
245 test("foo@example", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
246 test("foo", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
247 test("/foo", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
248 test("@x/foo", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
249 test("@/foo", nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
250
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
251 test(nil, nil);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
252 end);
4878e4159e12 Port tests to the `busted` test runner
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
253 end);