diff options
Diffstat (limited to 'libqsystemtest/qsystemtest.h')
-rw-r--r-- | libqsystemtest/qsystemtest.h | 148 |
1 files changed, 135 insertions, 13 deletions
diff --git a/libqsystemtest/qsystemtest.h b/libqsystemtest/qsystemtest.h index 1b8b5fc..69ece0b 100644 --- a/libqsystemtest/qsystemtest.h +++ b/libqsystemtest/qsystemtest.h @@ -44,13 +44,21 @@ #include "qabstracttest.h" #include "qtestprotocol_p.h" +#include "qtestremote_p.h" +#include "recordevent_p.h" +#include <QStringList> #include <QDir> #include <QLocale> +#include <QPointer> + +class QProcess; +class QSystemTestMail; +class QSystemTestMaster; +class QTextEdit; #define DEFAULT_QUERY_TIMEOUT 120000 -class QSystemTestPrivate; class QTestMessage; #ifdef Q_QDOC @@ -203,9 +211,13 @@ public: }; Q_DECLARE_FLAGS(State, StateFlag) +public slots: + virtual bool runAsManualTest(void); + virtual void manualTest( const QString &description ); + virtual void manualTestData( const QString &description, bool isAlternative = false ); + void prompt(const QString& = QString()); -public slots: // commands to control test execution void strict( bool = true ); void setDemoMode( bool ); @@ -215,7 +227,7 @@ public slots: void clearFilteredMessages(); bool runsOnDevice(); - virtual void skip(const QString&,SkipMode); + virtual void skip(const QString&, SkipMode); virtual void expectFail(const QString&); QString signature(const QString&, int = 0); @@ -260,7 +272,8 @@ public slots: void setVisibleResponseTime(int); // application management functions - virtual void startApplication(const QString&, const QStringList& = QStringList(), int timeout = 5000,QSystemTest::StartApplicationFlags = QSystemTest::WaitForFocus); + virtual void startApplication(const QString&, const QStringList& = QStringList(), int timeout = 5000, + QSystemTest::StartApplicationFlags = QSystemTest::WaitForFocus); void expectApplicationClose(bool); // low level simulators @@ -300,7 +313,6 @@ public slots: void verifyImage(const QString&,const QString& = QString(), const QString& = QString(),const QStringList& = QStringList()); bool compareImage( const QString&, const QString&, const QStringList& = QStringList()); - void prompt(const QString& = QString()); bool recordEvents(const QString&, bool = true); QString stopRecordingEvents(); @@ -315,6 +327,8 @@ public slots: QString runProcess(const QString&,const QStringList&,const QString&); QString getenv(const QString&); bool checkOS(const QString&); + QString targetIdentifier(); + void setTargetIdentifier(const QString &); void putFile(const QString&,const QString&,QFile::Permissions=0); void putData(const QByteArray&,const QString&,QFile::Permissions=0); void getFile(const QString&,const QString&); @@ -360,7 +374,22 @@ public slots: void qtuitest_pre_test_function(); void qtuitest_post_test_function(); - static QSystemTest* lastInstance(); + // These public slots come from QSystemTestPrivate + QTestMessage query( const QTestMessage &message, const QString &queryPath = QString(), + int timeout = DEFAULT_QUERY_TIMEOUT ); + bool queryPassed( const QStringList &passResult, const QStringList &failResult, + const QTestMessage &message, const QString &queryPath = QString(), + QTestMessage *reply = 0, int timeout = DEFAULT_QUERY_TIMEOUT ); + bool queryPassed( const QString &passResult, const QString &failResult, + const QTestMessage &message, const QString &queryPath = QString(), + QTestMessage *reply = 0, int timeout = DEFAULT_QUERY_TIMEOUT ); + void recordPrompt(); + bool recentEventRecorded(); + void resetEventTimer(); + +protected slots: + void abortPrompt(); + void abortTest(); protected: virtual void printUsage(int,char*[]) const; @@ -375,6 +404,8 @@ protected: bool isConnected() const; bool demoMode() const; QString autHost() const; + void configTarget(); + int autPort() const; virtual QString currentFile(); @@ -385,7 +416,6 @@ protected: bool verbose() const; - #ifndef Q_QDOC virtual bool fail(QString const&); bool doQuery(const QTestMessage& message, const QString& queryPath = QString(), QTestMessage* reply = 0, int timeout = DEFAULT_QUERY_TIMEOUT, const QStringList& pass = QStringList("OK"), const QStringList& fail = QStringList()); @@ -415,21 +445,113 @@ protected: virtual void setLocation(const QString& = QString(),int = -1); virtual void processMessage(const QTestMessage&); + QTestRemote *testIDE(); + + bool abort_prompt; -protected slots: - void abortPrompt(); - void abortTest(); +public: +// public functions imported from QSystemTestPrivate + void recordedEvent( const QTestMessage &msg ); + void recordEvents( QList<RecordEvent> const& ); + void parseKeyEventToCode( const QTestMessage &msg); -protected: - bool abort_prompt; + QVariant getSetting(const QString&,const QString&,const QString&,const QString&,const QString&); + void setSetting(const QString&,const QString&,const QString&,const QString&,const QString&,const QVariant&); + + bool imagesAreEqual( const QImage &actual, const QImage &expected, bool strict = false ); + bool learnImage( const QImage &actual, const QImage &expected, const QString &comment = QString()); + + QString processEnvironment( QString const& ) const; + QStringList processEnvironment( QStringList const& ) const; + QString PATH(); + QString which( const QString &appName ); + +signals: + void appGainedFocus(QString const &appName); + void appBecameIdle(QString const &appName); private: - QSystemTestPrivate *d; friend class QSystemTestMaster; friend class QSystemTestPrivate; friend class QSystemTestMail; friend class TestProcess; + QMap<QString, int> m_filteredMessages; + QTime *event_timer; + QList<QPointer<QProcess> > m_aut; + QStringList m_remote_aut; + QTime key_hold_started; + QSystemTestMaster *m_test_app; + QTestMessage m_error_msg; + QTestMessage m_error_msg_sent; + QTestMessage m_last_msg_sent; + + QTimer *key_enter_timer; + + QPointer<QTextEdit> m_recorded_events_edit; + + bool recorded_events_as_code; + bool record_prompt; + bool query_failed; + bool query_warning_mode; + int fatal_timeouts; + int timeouts; + + Qt::Key m_keyclickhold_key; + QString m_keyclickhold_path; + QString current_application; + QString current_app_version; + + QString m_loc_fname; + int m_loc_line; + + class ExpectedMessageBox { + public: + QString test_function; + QString data_tag; + QString title; + QString text; + QString option; + }; + QList<ExpectedMessageBox*> expected_msg_boxes; + + bool m_auto_mode; + bool m_run_as_manual_test; + QString m_manual_commands; + QStringList m_manual_command_data; + QStringList alternative_command_data; + void showPromptDialog(); + bool isConnected(); + + // the following parameters are used to start an Application_Under_Test + QString m_aut_host; + quint16 m_aut_port; + bool m_keep_aut; + bool m_silent_aut; + bool m_no_aut; + bool m_demo_mode; + bool m_verbose_perf; + bool m_verbose; + QStringList m_env; + QString m_targetID; + QTestRemote m_qtest_ide; + QMap<QString, QString> appNameToBinary; + bool m_strict_mode; + int m_visible_response_time; + QList<RecordEvent> recorded_events; + QString m_recorded_code; + int display_id; + QString device; + bool m_mousePreferred; + QRect screenGeometry; + QString theme; + QString m_config_id; + bool m_recording_events; + bool m_expect_app_close; + int m_query_count; + bool m_skip_current_function; + + #ifdef Q_QDOC /* Functions where implementation is in QtScript */ public: |