summaryrefslogtreecommitdiff
diff options
-rw-r--r--tests/test_glib_signals.cpp29
1 files changed, 27 insertions, 2 deletions
diff --git a/tests/test_glib_signals.cpp b/tests/test_glib_signals.cpp
index 5e3abd320..100b1bca9 100644
--- a/tests/test_glib_signals.cpp
+++ b/tests/test_glib_signals.cpp
@@ -476,16 +476,41 @@ TEST_F(TestGLibSignals, TestManagerBlock)
manager.Add<void, TestSignals*>(test_signals_,
"signal0",
sigc::mem_fun(this, &TestGLibSignals::Signal0Callback));
- manager.Block(test_signals_, "signal0");
+ EXPECT_TRUE(manager.Block(test_signals_, "signal0"));
g_signal_emit_by_name(test_signals_, "signal0");
EXPECT_FALSE(signal0_received_);
- manager.Unblock(test_signals_, "signal0");
+ EXPECT_TRUE(manager.Unblock(test_signals_, "signal0"));
g_signal_emit_by_name(test_signals_, "signal0");
EXPECT_TRUE(signal0_received_);
}
+TEST_F(TestGLibSignals, TestManagerBlockAll)
+{
+ SignalManager manager;
+
+ manager.Add<void, TestSignals*>(test_signals_,
+ "signal0",
+ sigc::mem_fun(this, &TestGLibSignals::Signal0Callback));
+ manager.Add<void, TestSignals*, const char*>(test_signals_,
+ "signal1",
+ sigc::mem_fun(this, &TestGLibSignals::Signal1Callback));
+ EXPECT_TRUE(manager.Block(test_signals_));
+
+ g_signal_emit_by_name(test_signals_, "signal0");
+ g_signal_emit_by_name(test_signals_, "signal1", "blocked");
+ EXPECT_FALSE(signal0_received_);
+ EXPECT_FALSE(signal1_received_);
+
+ EXPECT_TRUE(manager.Unblock(test_signals_));
+
+ g_signal_emit_by_name(test_signals_, "signal0");
+ EXPECT_TRUE(signal0_received_);
+ g_signal_emit_by_name(test_signals_, "signal1", "unblocked");
+ EXPECT_TRUE(signal1_received_);
+}
+
TEST_F(TestGLibSignals, TestManagerObjectDisconnection)
{
SignalManager manager;