summaryrefslogtreecommitdiff
path: root/tests
diff options
authorMarco Trevisan (Treviño) <mail@3v1n0.net>2017-07-12 18:13:47 +0200
committerMarco Trevisan (Treviño) <mail@3v1n0.net>2017-07-12 18:13:47 +0200
commitaf2d08087a6e2386aa6edd5e133f5b581779c013 (patch)
tree933a5a9858e2c92cc97ebb4d1a420d74b1986331 /tests
parente4c421bc64b1aad5bc971faca2c0e1ad84e64db7 (diff)
GLibSignal: allow to block, unblock signals
(bzr r4245.2.3)
Diffstat (limited to 'tests')
-rw-r--r--tests/test_glib_signals.cpp34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/test_glib_signals.cpp b/tests/test_glib_signals.cpp
index df17f8366..a514f8d86 100644
--- a/tests/test_glib_signals.cpp
+++ b/tests/test_glib_signals.cpp
@@ -243,6 +243,40 @@ TEST_F(TestGLibSignals, TestSignal6)
EXPECT_EQ(ret, TRUE);
}
+TEST_F(TestGLibSignals, TestBlock)
+{
+ Signal<void, TestSignals*> signal;
+ ASSERT_TRUE(signal.Connect(test_signals_, "signal0",
+ sigc::mem_fun(this, &TestGLibSignals::Signal0Callback)));
+ EXPECT_TRUE(signal.Block());
+
+ g_signal_emit_by_name(test_signals_, "signal0");
+ EXPECT_FALSE(signal0_received_);
+
+ signal0_received_ = false;
+ EXPECT_TRUE(signal.Unblock());
+
+ g_signal_emit_by_name(test_signals_, "signal0");
+ EXPECT_TRUE(signal0_received_);
+}
+
+TEST_F(TestGLibSignals, TestUnblock)
+{
+ Signal<void, TestSignals*> signal;
+ ASSERT_TRUE(signal.Connect(test_signals_, "signal0",
+ sigc::mem_fun(this, &TestGLibSignals::Signal0Callback)));
+ EXPECT_TRUE(signal.Unblock());
+
+ g_signal_emit_by_name(test_signals_, "signal0");
+ EXPECT_TRUE(signal0_received_);
+
+ signal0_received_ = false;
+ EXPECT_TRUE(signal.Block());
+
+ g_signal_emit_by_name(test_signals_, "signal0");
+ EXPECT_FALSE(signal0_received_);
+}
+
TEST_F(TestGLibSignals, TestDisconnection)
{
Signal<void, TestSignals*> signal;