Details
-
Bug
-
Resolution: Unresolved
-
P3: Somewhat important
-
None
-
5.5.1
-
None
-
Ubuntu 14.04 LTS
Description
I cannot use QTest::mouseClick to trigger a context menu.
This code:
#include <QString> #include <QTest> #include <QCoreApplication> #include <QMainWindow> #include <QStandardItemModel> #include <QTreeView> #include <QSignalSpy> class Test : public QObject { Q_OBJECT private Q_SLOTS: void testMouseClickContextMenu(); }; void Test::testMouseClickContextMenu() { QMainWindow w; QStandardItemModel *model = new QStandardItemModel(); QStandardItem *item = new QStandardItem("Test"); model->appendRow({item}); QTreeView *tree = new QTreeView(); tree->setModel(model); w.setCentralWidget(tree); tree->setContextMenuPolicy(Qt::CustomContextMenu); QSignalSpy spy(tree, SIGNAL(customContextMenuRequested(QPoint))); QTest::mouseClick(tree, Qt::RightButton, 0, tree->visualRect(item->index()).center()); QCOMPARE(spy.size(), 1); //Actual is 0 } QTEST_MAIN(Test) #include "tst_test.moc"
produces this result:
Config: Using QtTest library 5.5.1, Qt 5.5.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 4.9.1 20140922 (Red Hat 4.9.1-10)) PASS : Test::initTestCase() FAIL! : Test::testMouseClickContextMenu() Compared values are not the same Actual (spy.size()): 0 Expected (1) : 1 Loc: [../qt-sandbox/tst_test.cpp(32)] PASS : Test::cleanupTestCase() Totals: 2 passed, 1 failed, 0 skipped, 0 blacklisted
Attachments
Issue Links
- relates to
-
QTBUG-63991 cleanup tests [qtbase]: mouse event handling
-
- Reported
-