diff options
author | Matthew Wild <mwild1@gmail.com> | 2022-10-11 13:31:47 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2022-10-11 13:31:47 +0100 |
commit | e8d1a6720e4997baa9585c96078712bed2512dbb (patch) | |
tree | 4a9045b94b926a65b1a3185a2955822c3bb65ce3 | |
parent | 02352c6dcfa5548b1c43d2a6844cac1d053568cc (diff) | |
download | prosody-e8d1a6720e4997baa9585c96078712bed2512dbb.tar.gz prosody-e8d1a6720e4997baa9585c96078712bed2512dbb.zip |
util.jid: Add missing test cases
(98% mutant score, single remaining mutant is a string.sub equivalent)
-rw-r--r-- | spec/util_jid_spec.lua | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/spec/util_jid_spec.lua b/spec/util_jid_spec.lua index b92ca06c..6bfefcec 100644 --- a/spec/util_jid_spec.lua +++ b/spec/util_jid_spec.lua @@ -48,6 +48,46 @@ describe("util.jid", function() end) end); + describe("#prepped_split()", function() + local function test(input_jid, expected_node, expected_server, expected_resource) + local rnode, rserver, rresource = jid.prepped_split(input_jid); + assert.are.equal(expected_node, rnode, "split("..tostring(input_jid)..") failed"); + assert.are.equal(expected_server, rserver, "split("..tostring(input_jid)..") failed"); + assert.are.equal(expected_resource, rresource, "split("..tostring(input_jid)..") failed"); + end + + it("should work", function() + -- Valid JIDs + test("node@server", "node", "server", nil ); + test("node@server/resource", "node", "server", "resource" ); + test("server", nil, "server", nil ); + test("server/resource", nil, "server", "resource" ); + test("server/resource@foo", nil, "server", "resource@foo" ); + test("server/resource@foo/bar", nil, "server", "resource@foo/bar"); + + -- Always invalid JIDs + test(nil, nil, nil, nil); + test("node@/server", nil, nil, nil); + test("@server", nil, nil, nil); + test("@server/resource", nil, nil, nil); + test("@/resource", nil, nil, nil); + test("@server/", nil, nil, nil); + test("server/", nil, nil, nil); + test("/resource", nil, nil, nil); + end); + it("should reject invalid arguments", function () + assert.has_error(function () jid.prepped_split(false) end) + end) + it("should strip empty root label", function () + test("node@server.", "node", "server", nil); + end); + it("should fail for JIDs that fail stringprep", function () + test("node@invalid-\128-server", nil, nil, nil); + test("<invalid node>@server", nil, nil, nil); + test("node@server/invalid-\000-resource", nil, nil, nil); + end); + end); + describe("#bare()", function() it("should work", function() |