feat(plugins): add display name change event to Channel (#6594)

Reviewed-by: Mm2PL <mm2pl+gh@kotmisia.pl>
This commit is contained in:
Nerixyz
2026-01-29 18:25:39 +01:00
committed by GitHub
parent 60ecf1a8d7
commit a869cd4bd1
19 changed files with 610 additions and 0 deletions
+50
View File
@@ -1506,6 +1506,56 @@ TEST_F(PluginTest, LuaVersion)
static_assert(LUA_VERSION_NUM >= 504);
}
TEST_F(PluginTest, ChannelOnDisplayNameChanged)
{
this->configure();
bool gotEvent = false;
this->lua->set_function("on_test_event", [&] {
gotEvent = true;
});
auto chan = std::make_shared<MockChannel>("mock");
this->lua->set("chan", lua::api::ChannelRef(chan));
sol::protected_function init = this->lua->script(R"lua(
hdl = nil
return function(chan)
hdl = chan:on_display_name_changed(on_test_event)
end
)lua");
ASSERT_TRUE(init(lua::api::ChannelRef(chan)).valid());
ASSERT_TRUE(this->lua->script("assert(hdl ~= nil)").valid());
// regular delivery
chan->displayNameChanged.invoke();
ASSERT_TRUE(gotEvent);
// blocked connection
ASSERT_TRUE(this->lua->script("hdl:block()").valid());
ASSERT_TRUE(this->lua->script("assert(hdl:is_blocked())").valid());
gotEvent = false;
chan->displayNameChanged.invoke();
ASSERT_FALSE(gotEvent);
// unblocked connection
ASSERT_TRUE(this->lua->script("hdl:unblock()").valid());
ASSERT_TRUE(this->lua->script("assert(not hdl:is_blocked())").valid());
gotEvent = false;
chan->displayNameChanged.invoke();
ASSERT_TRUE(gotEvent);
// disconnect
ASSERT_TRUE(this->lua->script("hdl:disconnect()").valid());
ASSERT_TRUE(this->lua->script("assert(not hdl:is_connected())").valid());
gotEvent = false;
ASSERT_FALSE(gotEvent);
}
class PluginMessageConstructionTest
: public PluginTest,
public ::testing::WithParamInterface<QString>