spec/util_paths_spec.lua
author Kim Alvefur <zash@zash.se>
Tue, 14 May 2024 17:07:47 +0200
changeset 13494 6f840763fc73
parent 11186 bab8d01e139a
permissions -rw-r--r--
net.server_epoll: Add support for systemd socket activation Allows creating listening sockets and accepting client connections before Prosody starts. This is unlike normal Prosody dynamic resource management, where ports may added and removed at any time, and the ports defined by the config. Weird things happen if these are closed (e.g. due to reload) so here we prevent closing and ensure sockets are reused when opened again.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
11185
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
local sep = package.config:match("(.)\n");
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
describe("util.paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
	local paths = require "util.paths";
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
	describe("#join()", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
		it("returns single component as-is", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
			assert.equal("foo", paths.join("foo"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
		it("joins paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
			assert.equal("foo"..sep.."bar", paths.join("foo", "bar"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
		it("joins longer paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
			assert.equal("foo"..sep.."bar"..sep.."baz", paths.join("foo", "bar", "baz"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
		it("joins even longer paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
			assert.equal("foo"..sep.."bar"..sep.."baz"..sep.."moo", paths.join("foo", "bar", "baz", "moo"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
	end)
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    18
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    19
	describe("#glob_to_pattern()", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
		it("works", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    21
			assert.equal("^thing.%..*$", paths.glob_to_pattern("thing?.*"))
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    22
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
	end)
11186
bab8d01e139a util_paths_spec: Trim trailing white space
Kim Alvefur <zash@zash.se>
parents: 11185
diff changeset
    24
11185
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    25
	describe("#resolve_relative_path()", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    26
		it("returns absolute paths as-is", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    27
			if sep == "/" then
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
				assert.equal("/tmp/path", paths.resolve_relative_path("/run", "/tmp/path"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    29
			elseif sep == "\\" then
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    30
				assert.equal("C:\\Program Files", paths.resolve_relative_path("A:\\", "C:\\Program Files"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    31
			end
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    32
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    33
		it("resolves relative paths", function ()
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    34
			if sep == "/" then
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    35
				assert.equal("/run/path", paths.resolve_relative_path("/run", "path"));
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    36
			end
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    37
		end);
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    38
	end)
d2b19560150d util.paths: Add some tests
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
end)