summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/kernel/qaction
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-11-21 14:34:31 +0100
committerLiang Qi <liang.qi@qt.io>2017-11-23 09:36:03 +0100
commit153e8b49adfe210cb00490284a14c94c08e03c3f (patch)
tree59d9522d6dc96215cc2cb1d19b3e8a0e580bcb41 /tests/auto/widgets/kernel/qaction
parentef7c0594bf9e41813c9c841e00c3a52269d363f5 (diff)
parenta4113d0c644edba1c39d9d268a259e95ae51c61e (diff)
Merge remote-tracking branch 'origin/5.10' into dev
Conflicts: src/network/access/qhttp2protocolhandler_p.h src/network/kernel/kernel.pri src/network/ssl/qsslkey_qt.cpp src/plugins/platforms/cocoa/qcocoascreen.mm src/plugins/platforms/windows/accessible/iaccessible2.cpp src/plugins/platforms/windows/accessible/iaccessible2.h src/plugins/platforms/windows/accessible/qwindowsaccessibility.cpp src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.cpp src/plugins/platforms/windows/accessible/qwindowsmsaaaccessible.h src/widgets/widgets/qmenu_p.h tests/auto/network/access/qnetworkreply/tst_qnetworkreply.cpp tests/auto/other/qaccessibility/tst_qaccessibility.cpp tests/auto/testlib/selftests/expected_cmptest.lightxml tests/auto/testlib/selftests/expected_cmptest.teamcity tests/auto/testlib/selftests/expected_cmptest.txt tests/auto/testlib/selftests/expected_cmptest.xml Done-with: Edward Welbourne <edward.welbourne@qt.io> Change-Id: I4217cc7d840cbae3e3dd28574741544469c4c6b9
Diffstat (limited to 'tests/auto/widgets/kernel/qaction')
-rw-r--r--tests/auto/widgets/kernel/qaction/tst_qaction.cpp68
1 files changed, 67 insertions, 1 deletions
diff --git a/tests/auto/widgets/kernel/qaction/tst_qaction.cpp b/tests/auto/widgets/kernel/qaction/tst_qaction.cpp
index 2eb8c17359..272ec6d60b 100644
--- a/tests/auto/widgets/kernel/qaction/tst_qaction.cpp
+++ b/tests/auto/widgets/kernel/qaction/tst_qaction.cpp
@@ -26,7 +26,8 @@
**
****************************************************************************/
-
+#include <QDialog>
+#include <QMainWindow>
#include <QtTest/QtTest>
#include <qapplication.h>
@@ -62,7 +63,10 @@ private slots:
void task229128TriggeredSignalWithoutActiongroup();
void task229128TriggeredSignalWhenInActiongroup();
void repeat();
+ void setData();
void keysequence(); // QTBUG-53381
+ void disableShortcutsWithBlockedWidgets_data();
+ void disableShortcutsWithBlockedWidgets();
private:
int m_lastEventType;
@@ -443,5 +447,67 @@ void tst_QAction::repeat()
QCOMPARE(spy.count(), 2);
}
+void tst_QAction::setData() // QTBUG-62006
+{
+ QAction act(nullptr);
+ QSignalSpy spy(&act, &QAction::changed);
+ QCOMPARE(act.data(), QVariant());
+ QCOMPARE(spy.count(), 0);
+ act.setData(QVariant());
+ QCOMPARE(spy.count(), 0);
+
+ act.setData(-1);
+ QCOMPARE(spy.count(), 1);
+ act.setData(-1);
+ QCOMPARE(spy.count(), 1);
+}
+
+void tst_QAction::disableShortcutsWithBlockedWidgets_data()
+{
+ QTest::addColumn<Qt::ShortcutContext>("shortcutContext");
+ QTest::addColumn<Qt::WindowModality>("windowModality");
+
+ QTest::newRow("application modal dialog should block window shortcut.")
+ << Qt::WindowShortcut << Qt::ApplicationModal;
+
+ QTest::newRow("application modal dialog should block application shortcut.")
+ << Qt::ApplicationShortcut << Qt::ApplicationModal;
+
+ QTest::newRow("window modal dialog should block application shortcut.")
+ << Qt::ApplicationShortcut << Qt::WindowModal;
+
+ QTest::newRow("window modal dialog should block window shortcut.")
+ << Qt::WindowShortcut << Qt::WindowModal;
+}
+
+
+void tst_QAction::disableShortcutsWithBlockedWidgets()
+{
+ QMainWindow window;
+
+ QFETCH(Qt::ShortcutContext, shortcutContext);
+ QAction action(&window);
+ window.addAction(&action);
+ action.setShortcut(QKeySequence(Qt::Key_1));
+ action.setShortcutContext(shortcutContext);
+
+ window.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&window));
+
+ QDialog dialog(&window);
+ QFETCH(Qt::WindowModality, windowModality);
+ dialog.setWindowModality(windowModality);
+
+ dialog.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&dialog));
+
+ QApplication::setActiveWindow(&window);
+ QVERIFY(QTest::qWaitForWindowActive(&window));
+
+ QSignalSpy spy(&action, &QAction::triggered);
+ QTest::keyPress(&window, Qt::Key_1);
+ QCOMPARE(spy.count(), 0);
+}
+
QTEST_MAIN(tst_QAction)
#include "tst_qaction.moc"