summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/kernel/qobject
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/corelib/kernel/qobject')
-rw-r--r--tests/auto/corelib/kernel/qobject/tst_qobject.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
index 5b89ef3792..46889225eb 100644
--- a/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
+++ b/tests/auto/corelib/kernel/qobject/tst_qobject.cpp
@@ -139,6 +139,7 @@ private slots:
void connectFunctorOverloads();
void connectFunctorQueued();
void connectFunctorWithContext();
+ void connectFunctorWithContextUnique();
void connectFunctorDeadlock();
void connectStaticSlotWithObject();
void disconnectDoesNotLeakFunctor();
@@ -5800,6 +5801,22 @@ void tst_QObject::connectFunctorWithContext()
context->deleteLater();
}
+void tst_QObject::connectFunctorWithContextUnique()
+{
+ // Qt::UniqueConnections currently don't work for functors, but we need to
+ // be sure that they don't crash. If that is implemented, change this test.
+
+ SenderObject sender;
+ ReceiverObject receiver;
+ QObject::connect(&sender, &SenderObject::signal1, &receiver, &ReceiverObject::slot1);
+ receiver.count_slot1 = 0;
+
+ QObject::connect(&sender, &SenderObject::signal1, &receiver, SlotFunctor(), Qt::UniqueConnection);
+
+ sender.emitSignal1();
+ QCOMPARE(receiver.count_slot1, 1);
+}
+
class MyFunctor
{
public: