summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/libgq/gconf/test-gconf.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/libgq/gconf/test-gconf.h')
-rw-r--r--src/3rdparty/libgq/gconf/test-gconf.h86
1 files changed, 86 insertions, 0 deletions
diff --git a/src/3rdparty/libgq/gconf/test-gconf.h b/src/3rdparty/libgq/gconf/test-gconf.h
new file mode 100644
index 0000000..36eaecc
--- /dev/null
+++ b/src/3rdparty/libgq/gconf/test-gconf.h
@@ -0,0 +1,86 @@
+#include <QObject>
+#include <QtTest/QtTest>
+#include <QDebug>
+
+#include "GConfItem"
+
+// Helper class for listening to signals
+class SignalListener : public QObject
+{
+ Q_OBJECT
+public:
+ int numberOfCalls;
+ SignalListener() : numberOfCalls(0) {
+ }
+
+public slots:
+ void valueChanged()
+ {
+ numberOfCalls++;
+ }
+};
+
+// Tests for the public API
+class GConfItemTests : public QObject
+{
+ Q_OBJECT
+
+ // Stored pointers etc.
+private:
+ GConfItem *boolItem;
+ GConfItem *intItem;
+ GConfItem *stringItem;
+ GConfItem *doubleItem;
+ GConfItem *stringListItem;
+ GConfItem *intListItem;
+ GConfItem *doubleListItem;
+ GConfItem *boolListItem;
+ GConfItem *unsetBeforeItem;
+ GConfItem *unsetAfterItem;
+
+ SignalListener *signalSpy;
+
+ QTimer timer;
+ bool timed_out;
+
+ // Tests
+private slots:
+ // Init and cleanup helper functions
+ void initTestCase();
+ void cleanupTestCase();
+ void init();
+ void cleanup();
+ void timeout ();
+
+ // Public API
+ void path();
+ void external_values();
+ void set_bool();
+ void set_int();
+ void set_string();
+ void set_unicode_string();
+ void set_double();
+ void set_string_list();
+ void set_int_list();
+ void set_double_list();
+ void set_bool_list();
+ void unset();
+ void get_default();
+ void list_dirs();
+ void list_entries();
+ void propagate();
+ void set_external();
+};
+
+// Useful if you need to process some events until a condition becomes
+// true.
+
+#define QVERIFY_TIMEOUT(msecs, expr) \
+ do { \
+ timed_out = false; \
+ timer.start(msecs); \
+ while (!timed_out && !(expr)) { \
+ QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents); \
+ } \
+ QVERIFY((expr)); \
+ } while(0)