diff options
| -rw-r--r-- | tests/test_glib_signals.cpp | 29 | 
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; | 
