diff options
| author | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2017-07-12 19:45:57 +0200 | 
|---|---|---|
| committer | Marco Trevisan (Treviño) <mail@3v1n0.net> | 2017-07-12 19:45:57 +0200 | 
| commit | 1bc51823be590e56e6a3efeff626506640e7b508 (patch) | |
| tree | fa0e76c0dca3a1bdfa6978abf1a8f76c994d76ea /tests | |
| parent | 5af1db7e331deb01e7dbb0a8f24eed302af5bb64 (diff) | |
GLibSignal: allow to block/unblock all signals for a signal manager
(bzr r4245.2.8)
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_glib_signals.cpp | 28 | 
1 files changed, 27 insertions, 1 deletions
diff --git a/tests/test_glib_signals.cpp b/tests/test_glib_signals.cpp index 100b1bca9..724e18fec 100644 --- a/tests/test_glib_signals.cpp +++ b/tests/test_glib_signals.cpp @@ -34,7 +34,8 @@ public:  virtual ~TestGLibSignals()  { - g_object_unref(test_signals_); + if (test_signals_) + g_object_unref(test_signals_);  }  void Signal0Callback(TestSignals* signals) @@ -511,6 +512,31 @@ TEST_F(TestGLibSignals, TestManagerBlockAll)  EXPECT_TRUE(signal1_received_);  } +TEST_F(TestGLibSignals, TestManagerBlockAllObjects) +{ + 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()); + + 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()); + + 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;  | 
