aboutsummaryrefslogtreecommitdiffstats
path: root/tests/lib/unit++/guitester.h
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lib/unit++/guitester.h')
-rw-r--r--tests/lib/unit++/guitester.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/tests/lib/unit++/guitester.h b/tests/lib/unit++/guitester.h
new file mode 100644
index 00000000..aa241db4
--- /dev/null
+++ b/tests/lib/unit++/guitester.h
@@ -0,0 +1,40 @@
+#ifndef __UNITPP__GUITESTER_H
+#define __UNITPP__GUITESTER_H
+#ifdef GUI
+#include "tester.h"
+#include "gui.h"
+#include <stack>
+#include <vector>
+#include <qobject.h>
+
+/// \name unitpp
+namespace unitpp {
+/**
+ * The class for setting up the GUI. It visites all the tests, and create
+ * nodes for them in the test tree, count them and adjust all the GUI
+ * elements appropriately.
+ */
+class g_setup : public QObject, public visitor {
+ Q_OBJECT
+private:
+ gui* gp;
+ bool running;
+ int n_suites;
+ int n_tests;
+ std::stack<suite_node*> branch;
+ std::vector<node*> nodes, selected;
+ std::map<QListViewItem*, node*> rev;
+ void find_selected(QListViewItem*);
+ void add_node(node* np);
+public:
+ g_setup(gui* gp);
+ virtual void visit(test&);
+ virtual void visit(suite&);
+ virtual void visit(suite&, int);
+public slots:
+ ///
+ void run();
+};
+}
+#endif
+#endif