From 53a880454f69a63af530cbec759d903bd45e21c2 Mon Sep 17 00:00:00 2001 From: Aire-One Date: Thu, 24 Jun 2021 08:46:13 +0200 Subject: [PATCH] fix(w.widget): signal typo and unit test This is a combination of 2 commits. * fix(w.widget): emit signal typo * add(w.widget.base_spec): Unit test for setters signals emittion --- lib/wibox/widget/base.lua | 2 +- spec/wibox/widget/base_spec.lua | 59 +++++++++++++++++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) diff --git a/lib/wibox/widget/base.lua b/lib/wibox/widget/base.lua index 88d96c831..26e035231 100644 --- a/lib/wibox/widget/base.lua +++ b/lib/wibox/widget/base.lua @@ -260,7 +260,7 @@ end function base.widget:set_opacity(o) if o ~= self._private.opacity then self._private.opacity = o - self:emit_signal("widget::redraw") + self:emit_signal("widget::redraw_needed") end end diff --git a/spec/wibox/widget/base_spec.lua b/spec/wibox/widget/base_spec.lua index 91be59182..1316f43bf 100644 --- a/spec/wibox/widget/base_spec.lua +++ b/spec/wibox/widget/base_spec.lua @@ -87,6 +87,65 @@ describe("wibox.widget.base", function() assert.is_true(called2) end) end) + + describe("Setters emit signals", function() + local widget + local signal_called + local callback = function () signal_called = true end + + before_each(function() + widget = base.make_widget() + signal_called = false + end) + + it("'set_visible' calls 'widget::layout_changed'", function() + widget:connect_signal("widget::layout_changed", callback) + widget:set_visible(false) + assert.is_true(signal_called) + end) + + it("'set_visible' calls 'widget::redraw_needed'", function() + widget:connect_signal("widget::redraw_needed", callback) + widget:set_visible(false) + assert.is_true(signal_called) + end) + + it("'set_opacity' calls 'widget::redraw_needed'", function() + widget:connect_signal("widget::redraw_needed", callback) + widget:set_opacity(0) + assert.is_true(signal_called) + end) + + it("'set_forced_width' calls 'widget::layout_changed'", function() + widget:connect_signal("widget::layout_changed", callback) + widget:set_forced_width(0) + assert.is_true(signal_called) + end) + + it("'set_forced_height' calls 'widget::layout_changed'", function() + widget:connect_signal("widget::layout_changed", callback) + widget:set_forced_height(0) + assert.is_true(signal_called) + end) + + it("'set_widget_common' calls 'property::widget'", function() + -- Implement `set_widget` + rawset(widget, "set_widget", base.set_widget_common) + + widget:connect_signal("property::widget", callback) + widget:set_widget(base.make_widget()) + assert.is_true(signal_called) + end) + + it("'set_widget_common' calls 'widget::layout_changed'", function() + -- Implement `set_widget` + rawset(widget, "set_widget", base.set_widget_common) + + widget:connect_signal("widget::layout_changed", callback) + widget:set_widget(base.make_widget()) + assert.is_true(signal_called) + end) + end) end) -- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80