summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-17 16:39:44 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-17 16:39:44 +0100
commit3f85431007a0b4da5d4c95e08a021ce74bb478d9 (patch)
tree756dbe5c59a1e300b5400e6acc2a3bdd58f0aa88
parent5619ac198cb6e18bccdceaf487f2486c61c5f954 (diff)
downloadbrowser-poc-3f85431007a0b4da5d4c95e08a021ce74bb478d9.tar.gz
Added onAlert/Prompt/Confirm -dialog signals
-rw-r--r--browser/browserpage.cpp3
-rw-r--r--browser/browserpage.h16
-rw-r--r--browser/unit-tests/browserdbus/testbrowserdbus.cpp15
-rw-r--r--browser/unit-tests/browserdbus/testbrowserdbus.h1
-rw-r--r--browser/userinput.h3
-rw-r--r--common/browserdbus.cpp4
-rw-r--r--common/browserdbus.h3
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();