bunkerweb/spec/02-file-utils_spec.lua
Théophile Diot a3cd342f3e Squashed 'src/deps/src/lua-resty-session/' content from commit 8b5f8752f
git-subtree-dir: src/deps/src/lua-resty-session
git-subtree-split: 8b5f8752f3046396c414c5b97850e784c07e1641
2023-06-30 15:38:54 -04:00

108 lines
4.9 KiB
Lua

local file_utils = require "resty.session.file.utils"
local fmt = string.format
local describe = describe
local assert = assert
local it = it
describe("Testing file utils", function()
describe("validate file name", function()
local validate_file_name = file_utils.validate_file_name
local name = "name"
local sid1 = "ABCdef123_-iJqwertYUIOpasdfgHJKLzxcvbnmJuis"
local aud_sub1 = "some-aud:some-sub"
local simple_prefix = "pref"
local special_prefix = "@-_-"
local simple_suffix = "suff"
local special_suffix = "-_-@"
local filename_inv1 = "some.conf"
local filename_inv2 = "abc"
local filename_inv3 = name.."_".. "abc"
it("validation fails with invalid files with prefix and suffix", function()
assert.is_false(validate_file_name(simple_prefix, simple_suffix, name, filename_inv1))
assert.is_false(validate_file_name(simple_prefix, simple_suffix, name, filename_inv2))
assert.is_false(validate_file_name(simple_prefix, simple_suffix, name, filename_inv3))
end)
it("validation fails with invalid files with prefix only", function()
assert.is_false(validate_file_name(simple_prefix, nil, name, filename_inv1))
assert.is_false(validate_file_name(simple_prefix, nil, name, filename_inv2))
assert.is_false(validate_file_name(simple_prefix, nil, name, filename_inv3))
end)
it("validation fails with invalid files with suffix only", function()
assert.is_false(validate_file_name(nil, simple_suffix, name, filename_inv1))
assert.is_false(validate_file_name(nil, simple_suffix, name, filename_inv2))
assert.is_false(validate_file_name(nil, simple_suffix, name, filename_inv3))
end)
it("validation fails with invalid files with no prefix or suffix", function()
assert.is_false(validate_file_name(nil, nil, name, filename_inv1))
assert.is_false(validate_file_name(nil, nil, name, filename_inv2))
assert.is_false(validate_file_name(nil, nil, name, filename_inv3))
end)
it("validation passes with prefix and suffix", function()
local filename_sess = fmt("%s_%s_%s.%s", simple_prefix, name, sid1, simple_suffix)
local filename_meta = fmt("%s_%s_%s.%s", simple_prefix, name, aud_sub1, simple_suffix)
assert.is_true(validate_file_name(simple_prefix, simple_suffix, name, filename_sess))
assert.is_true(validate_file_name(simple_prefix, simple_suffix, name, filename_meta))
assert.is_false(validate_file_name(simple_prefix, simple_suffix, name, filename_inv1))
assert.is_false(validate_file_name(simple_prefix, simple_suffix, name, filename_inv2))
end)
it("validation passes with special prefix and suffix", function()
local sp_filename_sess = fmt("%s_%s_%s.%s", special_prefix, name, sid1, special_suffix)
local sp_filename_meta = fmt("%s_%s_%s.%s", special_prefix, name, aud_sub1, special_suffix)
assert.is_true(validate_file_name(special_prefix, special_suffix, name, sp_filename_sess))
assert.is_true(validate_file_name(special_prefix, special_suffix, name, sp_filename_meta))
end)
it("validation passes with prefix", function()
local filename_sess = fmt("%s_%s_%s", simple_prefix, name, sid1)
local filename_meta = fmt("%s_%s_%s", simple_prefix, name, aud_sub1)
assert.is_true(validate_file_name(simple_prefix, nil, name, filename_sess))
assert.is_true(validate_file_name(simple_prefix, nil, name, filename_meta))
end)
it("validation passes with special prefix", function()
local sp_filename_sess = fmt("%s_%s_%s", special_prefix, name, sid1)
local sp_filename_meta = fmt("%s_%s_%s", special_prefix, name, aud_sub1)
assert.is_true(validate_file_name(special_prefix, nil, name, sp_filename_sess))
assert.is_true(validate_file_name(special_prefix, nil, name, sp_filename_meta))
end)
it("#only validation passes with suffix", function()
local filename_sess = fmt("%s_%s.%s", name, sid1, simple_suffix)
local filename_meta = fmt("%s_%s.%s", name, aud_sub1, simple_suffix)
assert.is_true(validate_file_name(nil, simple_suffix, name, filename_sess))
assert.is_true(validate_file_name(nil, simple_suffix, name, filename_meta))
end)
it("validation passes with special suffix", function()
local sp_filename_sess = fmt("%s_%s.%s", name, sid1, special_suffix)
local sp_filename_meta = fmt("%s_%s.%s", name, aud_sub1, special_suffix)
assert.is_true(validate_file_name(nil, special_suffix, name, sp_filename_sess))
assert.is_true(validate_file_name(nil, special_suffix, name, sp_filename_meta))
end)
it("validation passes with no prefix or suffix", function()
local filename_sess = fmt("%s_%s", name, sid1)
local filename_meta = fmt("%s_%s", name, aud_sub1)
assert.is_true(validate_file_name(nil, nil, name, filename_sess))
assert.is_true(validate_file_name(nil, nil, name, filename_meta))
end)
end)
end)