mod_pep: Wipe pubsub service on user deletion
Data is already wiped from storage, but this ensures everything is
properly unsubscribed, possibly with notifications etc.
Clears recipient cache as well, since it is no longer relevant.
local encodings = require "util.encodings";
local utf8 = assert(encodings.utf8, "no encodings.utf8 module");
describe("util.encodings", function ()
describe("#encode()", function()
it("should work", function ()
assert.is.equal(encodings.base64.encode(""), "");
assert.is.equal(encodings.base64.encode('coucou'), "Y291Y291");
assert.is.equal(encodings.base64.encode("\0\0\0"), "AAAA");
assert.is.equal(encodings.base64.encode("\255\255\255"), "////");
end);
end);
describe("#decode()", function()
it("should work", function ()
assert.is.equal(encodings.base64.decode(""), "");
assert.is.equal(encodings.base64.decode("="), "");
assert.is.equal(encodings.base64.decode('Y291Y291'), "coucou");
assert.is.equal(encodings.base64.decode("AAAA"), "\0\0\0");
assert.is.equal(encodings.base64.decode("////"), "\255\255\255");
end);
end);
end);
describe("util.encodings.utf8", function()
describe("#valid()", function()
it("should work", function()
for line in io.lines("spec/utf8_sequences.txt") do
local data = line:match(":%s*([^#]+)"):gsub("%s+", ""):gsub("..", function (c) return string.char(tonumber(c, 16)); end)
local expect = line:match("(%S+):");
assert(expect == "pass" or expect == "fail", "unknown expectation: "..line:match("^[^:]+"));
local valid = utf8.valid(data);
assert.is.equal(valid, utf8.valid(data.." "));
assert.is.equal(valid, expect == "pass", line);
end
end);
end);
end);