diff options
author | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-17 16:39:44 +0100 |
---|---|---|
committer | Jonatan Pålsson <jonatan.palsson@pelagicore.com> | 2014-02-17 16:39:44 +0100 |
commit | 3f85431007a0b4da5d4c95e08a021ce74bb478d9 (patch) | |
tree | 756dbe5c59a1e300b5400e6acc2a3bdd58f0aa88 | |
parent | 5619ac198cb6e18bccdceaf487f2486c61c5f954 (diff) | |
download | browser-poc-3f85431007a0b4da5d4c95e08a021ce74bb478d9.tar.gz |
Added onAlert/Prompt/Confirm -dialog signals
-rw-r--r-- | browser/browserpage.cpp | 3 | ||||
-rw-r--r-- | browser/browserpage.h | 16 | ||||
-rw-r--r-- | browser/unit-tests/browserdbus/testbrowserdbus.cpp | 15 | ||||
-rw-r--r-- | browser/unit-tests/browserdbus/testbrowserdbus.h | 1 | ||||
-rw-r--r-- | browser/userinput.h | 3 | ||||
-rw-r--r-- | common/browserdbus.cpp | 4 | ||||
-rw-r--r-- | common/browserdbus.h | 3 |
7 files changed, 41 insertions, 4 deletions
diff --git a/browser/browserpage.cpp b/browser/browserpage.cpp index 40b12bc..9196a64 100644 --- a/browser/browserpage.cpp +++ b/browser/browserpage.cpp @@ -20,6 +20,7 @@ void BrowserPage::javaScriptAlert(QWebFrame *frame, const QString &message) { + emit onAlertDialog(message); QEventLoop loop; qDebug() << "Alert dialog opened:" << message; connect (m_userInput, SIGNAL(doCloseAlertDialog(void)), &loop, SLOT(quit(void))); @@ -29,6 +30,7 @@ void BrowserPage::javaScriptAlert(QWebFrame *frame, const QString &message) bool BrowserPage::javaScriptConfirm(QWebFrame *frame, const QString &message) { + emit onConfirmDialog(message); QEventLoop loop; qDebug() << "Confirm dialog opened:" << message; connect (m_userInput, SIGNAL(doCloseConfirmDialog(bool)), this, SLOT(confirm(bool))); @@ -38,6 +40,7 @@ bool BrowserPage::javaScriptConfirm(QWebFrame *frame, const QString &message) } bool BrowserPage::javaScriptPrompt(QWebFrame *frame, const QString &msg, const QString &defaultValue, QString *result ) { + emit onPromptDialog(msg, defaultValue); QEventLoop loop; qDebug() << "Confirm dialog opened (default:" << defaultValue << ")"; connect (m_userInput, SIGNAL(doClosePromptDialog(QString, bool)), this, SLOT(prompt(QString, bool))); diff --git a/browser/browserpage.h b/browser/browserpage.h index 9922b72..20cc1a1 100644 --- a/browser/browserpage.h +++ b/browser/browserpage.h @@ -24,8 +24,20 @@ Q_OBJECT public: BrowserPage(QObject *parent, userinput *input) - : QWebPage (parent), m_userInput (input){} - ~BrowserPage(){} + : QWebPage (parent), m_userInput (input){ + connect(this, SIGNAL(onAlertDialog(QString)), + m_userInput, SIGNAL(onAlertDialog(QString))); + connect(this, SIGNAL(onConfirmDialog(QString)), + m_userInput, SIGNAL(onConfirmDialog(QString))); + connect(this, SIGNAL(onPromptDialog(QString, QString)), + m_userInput, SIGNAL(onPromptDialog(QString, QString))); + } + ~BrowserPage(){ } + +signals: + void onAlertDialog(QString); + void onConfirmDialog(QString); + void onPromptDialog(QString, QString); protected: void javaScriptAlert(QWebFrame *frame, const QString &message); diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.cpp b/browser/unit-tests/browserdbus/testbrowserdbus.cpp index 39702fc..f82565f 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.cpp +++ b/browser/unit-tests/browserdbus/testbrowserdbus.cpp @@ -249,21 +249,32 @@ void TestBrowserDBus::testActivate() { } void TestBrowserDBus::testConfirmDialog() { + QSignalSpy spy (m_bdb, SIGNAL(onConfirmDialog(QString))); m_bdb->createPageWindow(1,0,0,800,600); m_bdb->loadurl(testFileUrl()); QProcess::execute("xdotool mousemove 150 500"); QProcess::execute("xdotool click 1"); - QTest::qSleep(300); + QVERIFY(spy.wait(1000)); m_bdb->closeConfirmDialog(conn::brw::DR_OK); } void TestBrowserDBus::testPromptDialog() { + QSignalSpy spy (m_bdb, SIGNAL(onPromptDialog(QString,QString))); m_bdb->createPageWindow(1,0,0,800,600); m_bdb->loadurl(testFileUrl()); QProcess::execute("xdotool mousemove 250 500"); QProcess::execute("xdotool click 1"); - QTest::qSleep(300); + QVERIFY(spy.wait(1000)); m_bdb->closePromptDialog("Hello!", conn::brw::DR_OK); } +void TestBrowserDBus::testAlertDialog() { + QSignalSpy spy (m_bdb, SIGNAL(onAlertDialog(QString))); + m_bdb->createPageWindow(1,0,0,800,600); + m_bdb->loadurl(testFileUrl()); + QProcess::execute("xdotool mousemove 50 500"); + QProcess::execute("xdotool click 1"); + QVERIFY(spy.wait(1000)); + m_bdb->closeAlertDialog(); +} QTEST_MAIN (TestBrowserDBus); diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.h b/browser/unit-tests/browserdbus/testbrowserdbus.h index 1ca6cb5..5f6d400 100644 --- a/browser/unit-tests/browserdbus/testbrowserdbus.h +++ b/browser/unit-tests/browserdbus/testbrowserdbus.h @@ -44,6 +44,7 @@ private slots: void testActivate(); void testConfirmDialog(); void testPromptDialog(); + void testAlertDialog(); private: QString testFileUrl() { diff --git a/browser/userinput.h b/browser/userinput.h index 8bcc2b1..31b8d67 100644 --- a/browser/userinput.h +++ b/browser/userinput.h @@ -33,6 +33,9 @@ signals: int a_s32Max, int a_s32Min, int a_s32Step); void inputText(QString input); void setOutputWebview(QString path); + void onConfirmDialog(QString); + void onPromptDialog(QString,QString); + void onAlertDialog(QString); // Internal void doCloseAlertDialog(void); diff --git a/common/browserdbus.cpp b/common/browserdbus.cpp index c4abd77..a6c9a24 100644 --- a/common/browserdbus.cpp +++ b/common/browserdbus.cpp @@ -213,6 +213,10 @@ void BrowserDbus::createPageWindow(int deviceid, int x, int y, int width, int he inputhash.insert(handle, userinput); actualuserinput = userinput; + connect(actualuserinput, SIGNAL(onAlertDialog(QString)), this, SIGNAL(onAlertDialog(QString))); + connect(actualuserinput, SIGNAL(onConfirmDialog(QString)), this, SIGNAL(onConfirmDialog(QString))); + connect(actualuserinput, SIGNAL(onPromptDialog(QString,QString)), this, SIGNAL(onPromptDialog(QString,QString))); + if(!actualuserinput->isValid()) qDebug() << "failed create object /Browser/IWebPageWindow*/IUserInput"; diff --git a/common/browserdbus.h b/common/browserdbus.h index 7afd832..9e1a43d 100644 --- a/common/browserdbus.h +++ b/common/browserdbus.h @@ -104,6 +104,9 @@ signals: void onActionStateChanged(uint); void onContentSizeChanged(uint, uint); void onFaviconReceived(); + void onConfirmDialog(QString); + void onPromptDialog(QString,QString); + void onAlertDialog(QString); public slots: void pageloadingstarted(); |