blob: 36eaeccca474885c69f297fdbb21cce4533e7512 [file] [log] [blame]
#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)