Add tests for widget constructors

Adds unit tests for the widget constructors that used to accept an
unused argument.

Signed-off-by: Lucas Schwiderski <lucas@lschwiderski.de>
This commit is contained in:
Lucas Schwiderski 2021-03-08 20:06:53 +01:00
parent 08a1018775
commit bed737a29f
No known key found for this signature in database
GPG Key ID: AA12679AAA6DF4D8
4 changed files with 171 additions and 0 deletions

View File

@ -5,11 +5,21 @@
local place = require("wibox.container.place")
local utils = require("wibox.test_utils")
local base = require("wibox.widget.base")
describe("wibox.container.place", function()
it("common interfaces", function()
utils.test_container(place())
end)
describe("constructor", function()
it("applies arguments", function()
local inner = base.empty_widget()
local widget = place(inner)
assert.is.equal(widget.widget, inner)
end)
end)
end)
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80

View File

@ -5,11 +5,21 @@
local radialprogressbar = require("wibox.container.radialprogressbar")
local utils = require("wibox.test_utils")
local base = require("wibox.widget.base")
describe("wibox.container.radialprogressbar", function()
it("common interfaces", function()
utils.test_container(radialprogressbar())
end)
describe("constructor", function()
it("applies arguments", function()
local inner = base.empty_widget()
local widget = radialprogressbar(inner)
assert.is.same(widget:get_children(), { inner })
end)
end)
end)
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80

View File

@ -0,0 +1,143 @@
---------------------------------------------------------------------------
-- @author Lucas Schwiderski
-- @copyright 2021 Lucas Schwiderski
---------------------------------------------------------------------------
local stack = require("wibox.layout.stack")
local base = require("wibox.widget.base")
local utils = require("wibox.test_utils")
local p = require("wibox.widget.base").place_widget_at
describe("wibox.layout.fixed", function()
local layout
before_each(function()
layout = stack()
end)
it("empty layout fit", function()
assert.widget_fit(layout, { 10, 10 }, { 0, 0 })
end)
it("empty layout layout", function()
assert.widget_layout(layout, { 0, 0 }, {})
end)
it("empty add", function()
assert.has_error(function()
layout:add()
end)
end)
describe("with widgets", function()
local first, second, third
before_each(function()
first = utils.widget_stub(10, 10)
second = utils.widget_stub(15, 15)
third = utils.widget_stub(10, 10)
layout:add(first, second, third)
end)
describe("with enough space", function()
it("fit", function()
assert.widget_fit(layout, { 100, 100 }, { 15, 15 })
end)
it("layout", function()
assert.widget_layout(layout, { 100, 100 }, {
p(first, 0, 0, 100, 100),
p(second, 0, 0, 100, 100),
p(third, 0, 0, 100, 100),
})
end)
end)
describe("without enough height", function()
it("fit", function()
assert.widget_fit(layout, { 5, 100 }, { 5, 15 })
end)
it("layout", function()
assert.widget_layout(layout, { 5, 100 }, {
p(first, 0, 0, 5, 100),
p(second, 0, 0, 5, 100),
p(third, 0, 0, 5, 100),
})
end)
end)
describe("without enough width", function()
it("fit", function()
assert.widget_fit(layout, { 100, 5 }, { 15, 5 })
end)
it("layout", function()
assert.widget_layout(layout, { 100, 5 }, {
p(first, 0, 0, 100, 5),
p(second, 0, 0, 100, 5),
p(third, 0, 0, 100, 5),
})
end)
end)
end)
describe("emitting signals", function()
local layout_changed
before_each(function()
layout:connect_signal("widget::layout_changed", function()
layout_changed = layout_changed + 1
end)
layout_changed = 0
end)
it("add", function()
local w1, w2 = base.empty_widget(), base.empty_widget()
assert.is.equal(layout_changed, 0)
layout:add(w1)
assert.is.equal(layout_changed, 1)
layout:add(w2)
assert.is.equal(layout_changed, 2)
layout:add(w2)
assert.is.equal(layout_changed, 3)
end)
it("set_spacing", function()
assert.is.equal(layout_changed, 0)
layout:set_spacing(0)
assert.is.equal(layout_changed, 0)
layout:set_spacing(5)
assert.is.equal(layout_changed, 1)
layout:set_spacing(2)
assert.is.equal(layout_changed, 2)
layout:set_spacing(2)
assert.is.equal(layout_changed, 2)
end)
it("reset", function()
assert.is.equal(layout_changed, 0)
layout:add(base.make_widget())
assert.is.equal(layout_changed, 1)
layout:reset()
assert.is.equal(layout_changed, 2)
end)
end)
it("set_children", function()
local w1, w2 = base.empty_widget(), base.empty_widget()
assert.is.same({}, layout:get_children())
layout:add(w1)
assert.is.same({ w1 }, layout:get_children())
layout:add(w2)
assert.is.same({ w1, w2 }, layout:get_children())
layout:reset()
assert.is.same({}, layout:get_children())
end)
end)
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80

View File

@ -12,6 +12,14 @@ describe("wibox.widget.slider", function()
widget = slider()
end)
describe("constructor", function()
it("applies arguments", function()
local widget = slider({ value = 10 })
assert.is.equal(widget.value, 10)
end)
end)
describe("signal property::value", function()
local property_value = nil
before_each(function()