File

spec/util_strbitop.lua @ 12557:ee5b061588ea 0.12

net.unbound: Merge luaunbound and prosody defaults in absence of user config (fixes #1763) (thanks rgd) add_defaults() is supposed to merge 3 tables, the defaults in luaunbound, the defaults from prosody and any config from the prosody config file. In the case where no `unbound={}` has been in the config, it skips over the merge and returns only the prosody built-in defaults. This results in libunbound skipping reading resolv.conf and uses its default behavior of full recursive resolution. Prior to #1737 there were only two tables, the luaunbound defaults and the prosody config, where bypassing the merge and returning the former did the right thing.
author Kim Alvefur <zash@zash.se>
date Sun, 19 Jun 2022 19:49:32 +0200
parent 11168:cde600e2fdf9
line wrap: on
line source

local strbitop = require "util.strbitop";
describe("util.strbitop", function ()
	describe("sand()", function ()
		it("works", function ()
			assert.equal(string.rep("Aa", 100), strbitop.sand(string.rep("a", 200), "Aa"));
		end);
		it("returns empty string if first argument is empty", function ()
			assert.equal("", strbitop.sand("", ""));
			assert.equal("", strbitop.sand("", "key"));
		end);
		it("returns initial string if key is empty", function ()
			assert.equal("hello", strbitop.sand("hello", ""));
		end);
	end);

	describe("sor()", function ()
		it("works", function ()
			assert.equal(string.rep("a", 200), strbitop.sor(string.rep("Aa", 100), "a"));
		end);
		it("returns empty string if first argument is empty", function ()
			assert.equal("", strbitop.sor("", ""));
			assert.equal("", strbitop.sor("", "key"));
		end);
		it("returns initial string if key is empty", function ()
			assert.equal("hello", strbitop.sor("hello", ""));
		end);
	end);

	describe("sxor()", function ()
		it("works", function ()
			assert.equal(string.rep("Aa", 100), strbitop.sxor(string.rep("a", 200), " \0"));
		end);
		it("returns empty string if first argument is empty", function ()
			assert.equal("", strbitop.sxor("", ""));
			assert.equal("", strbitop.sxor("", "key"));
		end);
		it("returns initial string if key is empty", function ()
			assert.equal("hello", strbitop.sxor("hello", ""));
		end);
	end);
end);