81 lines
2.7 KiB
Lua
81 lines
2.7 KiB
Lua
|
---------------------------------------------------------------------------
|
||
|
-- @author Uli Schlachter
|
||
|
-- @copyright 2015 Uli Schlachter
|
||
|
---------------------------------------------------------------------------
|
||
|
|
||
|
local util = require("awful.util")
|
||
|
local say = require("say")
|
||
|
local assert_util = require("luassert.util")
|
||
|
|
||
|
describe("awful.util", function()
|
||
|
it("table.keys_filter", function()
|
||
|
local t = { "a", 1, function() end, false}
|
||
|
assert.is.same(util.table.keys_filter(t, "number", "function"), { 2, 3 })
|
||
|
end)
|
||
|
|
||
|
it("table.reverse", function()
|
||
|
local t = { "a", "b", c = "c", "d" }
|
||
|
assert.is.same(util.table.reverse(t), { "d", "b", "a", c = "c" })
|
||
|
end)
|
||
|
|
||
|
describe("table.iterate", function()
|
||
|
it("no filter", function()
|
||
|
local t = { "a", "b", c = "c", "d" }
|
||
|
local f = util.table.iterate(t, function() return true end)
|
||
|
assert.is.equal(f(), "a")
|
||
|
assert.is.equal(f(), "b")
|
||
|
assert.is.equal(f(), "d")
|
||
|
assert.is.equal(f(), nil)
|
||
|
assert.is.equal(f(), nil)
|
||
|
end)
|
||
|
|
||
|
it("b filter", function()
|
||
|
local t = { "a", "b", c = "c", "d" }
|
||
|
local f = util.table.iterate(t, function(i) return i == "b" end)
|
||
|
assert.is.equal(f(), "b")
|
||
|
assert.is.equal(f(), nil)
|
||
|
assert.is.equal(f(), nil)
|
||
|
end)
|
||
|
|
||
|
it("with offset", function()
|
||
|
local t = { "a", "b", c = "c", "d" }
|
||
|
local f = util.table.iterate(t, function() return true end, 2)
|
||
|
assert.is.equal(f(), "b")
|
||
|
assert.is.equal(f(), "d")
|
||
|
assert.is.equal(f(), "a")
|
||
|
assert.is.equal(f(), nil)
|
||
|
assert.is.equal(f(), nil)
|
||
|
end)
|
||
|
end)
|
||
|
|
||
|
describe("quote_pattern", function()
|
||
|
it("text", function()
|
||
|
assert.is.equal(util.quote_pattern("text"), "text")
|
||
|
end)
|
||
|
|
||
|
it("do.t", function()
|
||
|
assert.is.equal(util.quote_pattern("do.t"), "do%.t")
|
||
|
end)
|
||
|
|
||
|
it("per%cen[tage", function()
|
||
|
assert.is.equal(util.quote_pattern("per%cen[tage"), "per%%cen%[tage")
|
||
|
end)
|
||
|
end)
|
||
|
|
||
|
describe("query_to_pattern", function()
|
||
|
it("DownLow", function()
|
||
|
assert.is.equal(string.match("DownLow", util.query_to_pattern("downlow")), "DownLow")
|
||
|
end)
|
||
|
|
||
|
it("%word", function()
|
||
|
assert.is.equal(string.match("%word", util.query_to_pattern("%word")), "%word")
|
||
|
end)
|
||
|
|
||
|
it("Substring of DownLow", function()
|
||
|
assert.is.equal(string.match("DownLow", util.query_to_pattern("ownl")), "ownL")
|
||
|
end)
|
||
|
end)
|
||
|
end)
|
||
|
|
||
|
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|