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 iter = require "util.iterators";
describe("util.iterators", function ()
describe("join", function ()
it("should produce a joined iterator", function ()
local expect = { "a", "b", "c", 1, 2, 3 };
local output = {};
for x in iter.join(iter.values({"a", "b", "c"})):append(iter.values({1, 2, 3})) do
table.insert(output, x);
end
assert.same(output, expect);
end);
end);
describe("sorted_pairs", function ()
it("should produce sorted pairs", function ()
local orig = { b = 1, c = 2, a = "foo", d = false };
local n, last_key = 0, nil;
for k, v in iter.sorted_pairs(orig) do
n = n + 1;
if last_key then
assert(k > last_key, "Expected "..k.." > "..last_key)
end
assert.equal(orig[k], v);
last_key = k;
end
assert.equal("d", last_key);
assert.equal(4, n);
end);
it("should allow a custom sort function", function ()
local orig = { b = 1, c = 2, a = "foo", d = false };
local n, last_key = 0, nil;
for k, v in iter.sorted_pairs(orig, function (a, b) return a > b end) do
n = n + 1;
if last_key then
assert(k < last_key, "Expected "..k.." > "..last_key)
end
assert.equal(orig[k], v);
last_key = k;
end
assert.equal("a", last_key);
assert.equal(4, n);
end);
end);
end);