#include #include #include #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)