summaryrefslogtreecommitdiffstats
path: root/Tests/CMakeGUI/CatchShowTest.cxx
diff options
context:
space:
mode:
authorKyle Edwards <kyle.edwards@kitware.com>2020-09-25 18:58:44 (GMT)
committerKyle Edwards <kyle.edwards@kitware.com>2020-09-28 13:46:35 (GMT)
commit7cd95d99965bf59e2ba8e5cb2835fb9d5d1b3abe (patch)
tree0b357ab71c21fa4bb521c42a2aed2cfb01e5853b /Tests/CMakeGUI/CatchShowTest.cxx
parent1b03ac7da76c05bfa60e5fcf95aa2bfdf64f27cf (diff)
downloadCMake-7cd95d99965bf59e2ba8e5cb2835fb9d5d1b3abe.zip
CMake-7cd95d99965bf59e2ba8e5cb2835fb9d5d1b3abe.tar.gz
CMake-7cd95d99965bf59e2ba8e5cb2835fb9d5d1b3abe.tar.bz2
Tests: Add CatchShow helper for CMake GUI tests
Diffstat (limited to 'Tests/CMakeGUI/CatchShowTest.cxx')
-rw-r--r--Tests/CMakeGUI/CatchShowTest.cxx49
1 files changed, 49 insertions, 0 deletions
diff --git a/Tests/CMakeGUI/CatchShowTest.cxx b/Tests/CMakeGUI/CatchShowTest.cxx
new file mode 100644
index 0000000..acea8ea
--- /dev/null
+++ b/Tests/CMakeGUI/CatchShowTest.cxx
@@ -0,0 +1,49 @@
+/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
+ file Copyright.txt or https://cmake.org/licensing for details. */
+#include "CatchShowTest.h"
+
+#include <QMessageBox>
+#include <QtTest>
+
+#include "CatchShow.h"
+
+CatchShowTest::CatchShowTest(QObject* parent)
+ : QObject(parent)
+{
+}
+
+void CatchShowTest::catchShow()
+{
+ bool have = false;
+ CatchShow catcher;
+ catcher.setCallback<QMessageBox>([&have](QMessageBox* box) {
+ have = true;
+ box->accept();
+ });
+
+ QCOMPARE(catcher.count(), 0);
+ QCOMPARE(have, false);
+
+ {
+ QDialog dialog;
+ dialog.show();
+ QCOMPARE(catcher.count(), 0);
+ QCOMPARE(have, false);
+ }
+
+ {
+ have = false;
+ QMessageBox::critical(nullptr, "Error", "This is an error");
+ QCOMPARE(catcher.count(), 1);
+ QCOMPARE(have, true);
+ }
+
+ {
+ have = false;
+ QMessageBox::information(nullptr, "Info", "This is information");
+ QCOMPARE(catcher.count(), 2);
+ QCOMPARE(have, true);
+ }
+}
+
+QTEST_MAIN(CatchShowTest)