summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-18 14:40:33 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-02-18 14:40:33 +0100
commit44ded91b14b37101fb7291a8fff3f39ae6019791 (patch)
treec64ed31e61e700f2bf5442d0fadb59dc16a23a3b
parentcf9d077b5d877e8fe204048a6411461e1b5813f2 (diff)
downloadbrowser-poc-44ded91b14b37101fb7291a8fff3f39ae6019791.tar.gz
Implemented getPrevEnteredValues for inputted text
-rw-r--r--browser/browser.pro4
-rw-r--r--browser/unit-tests/browserdbus/testbrowserdbus.cpp12
-rw-r--r--browser/unit-tests/browserdbus/testbrowserdbus.h1
-rw-r--r--browser/unit-tests/browserdbus/webpagegenerator.h5
-rw-r--r--browser/userinput.cpp28
-rw-r--r--browser/userinput.h16
-rw-r--r--common/browserdbus.cpp16
-rw-r--r--common/browserdbus.h2
8 files changed, 80 insertions, 4 deletions
diff --git a/browser/browser.pro b/browser/browser.pro
index 5541b31..7d0a6fc 100644
--- a/browser/browser.pro
+++ b/browser/browser.pro
@@ -1,5 +1,6 @@
QT += dbus webkitwidgets
+CONFIG += debug qt
my_dbus_cachemanager_adaptors.files += ../common/ICacheManager.xml
my_dbus_cachemanager_adaptors.header_flags = -i cachemanager.h -i ../common/browserdefs.h -l cachemanager
@@ -14,7 +15,8 @@ my_dbus_bookmark_adaptors.header_flags = -i bookmarkmanager.h -i ../common/brows
my_dbus_bookmark_adaptors.source_flags = -l bookmarkmanager
my_dbus_userinput_adaptors.files += ../common/IUserInput.xml
-my_dbus_userinput_adaptors.header_flags = -i ../common/browserdefs.h
+my_dbus_userinput_adaptors.header_flags = -i ../common/browserdefs.h -i userinput.h -l userinput
+my_dbus_userinput_adaptors.source_flags = -l userinput
my_dbus_webpagewindow_adaptors.files += ../common/IWebPageWindow.xml
my_dbus_webpagewindow_adaptors.header_flags = -i webpagewindow.h -i ../common/browserdefs.h -l webpagewindow
diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.cpp b/browser/unit-tests/browserdbus/testbrowserdbus.cpp
index e8a050e..eba617e 100644
--- a/browser/unit-tests/browserdbus/testbrowserdbus.cpp
+++ b/browser/unit-tests/browserdbus/testbrowserdbus.cpp
@@ -301,4 +301,16 @@ void TestBrowserDBus::testAlertDialog() {
QVERIFY(spy.wait(1000));
m_bdb->closeAlertDialog();
}
+
+void TestBrowserDBus::testGetPrevEnteredValues() {
+ m_bdb->createPageWindow(1,0,0,800,600);
+ m_bdb->loadurl(testFileUrl());
+ QProcess::execute("xdotool mousemove 200 375");
+ QProcess::execute("xdotool click 1");
+ QTest::qSleep(300);
+ m_bdb->inputText(conn::brw::DR_OK, "Hello world");
+ QTest::qSleep(300);
+ QStringList list = m_bdb->getPrevEnteredValues("input", "", conn::brw::IET_TEXT);
+ QVERIFY(list.contains("Hello world"));
+}
QTEST_MAIN (TestBrowserDBus);
diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.h b/browser/unit-tests/browserdbus/testbrowserdbus.h
index e356f83..ca808c2 100644
--- a/browser/unit-tests/browserdbus/testbrowserdbus.h
+++ b/browser/unit-tests/browserdbus/testbrowserdbus.h
@@ -47,6 +47,7 @@ private slots:
void testPromptDialog();
void testCancelPromptDialog();
void testAlertDialog();
+ void testGetPrevEnteredValues();
private:
QString testFileUrl() {
diff --git a/browser/unit-tests/browserdbus/webpagegenerator.h b/browser/unit-tests/browserdbus/webpagegenerator.h
index fc7f665..8168f16 100644
--- a/browser/unit-tests/browserdbus/webpagegenerator.h
+++ b/browser/unit-tests/browserdbus/webpagegenerator.h
@@ -24,11 +24,12 @@ public:
" <DIV style='height:100; width:100; background-color:gray'>Go to google</DIV>"
" </A>"
" Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce ac dignissim leo. Vivamus euismod tortor eu varius molestie. Proin non egestas mauris. Suspendisse nec fringilla mauris, sed dapibus mi. Mauris suscipit rutrum turpis non venenatis. Nunc quis dolor id massa dignissim rutrum. Praesent pretium enim vitae metus placerat, sed sodales elit blandit. Sed volutpat magna neque, ac mollis velit ullamcorper et. Quisque lorem dolor, suscipit mattis mi vitae, euismod cursus magna. Proin at commodo tortor, vitae convallis ipsum. Suspendisse potenti. Vivamus leo metus, feugiat at elit eu, ultricies mattis ipsum. Ut eros risus, facilisis at scelerisque a, hendrerit id odio. Quisque sapien erat, tristique vitae erat non, venenatis elementum leo. Donec at nisi justo. Integer at fringilla ante, in scelerisque risus. Praesent a leo orci. Donec urna eros, molestie non erat ut, pellentesque faucibus odio. Proin in porttitor erat. Duis ac justo massa. Donec nec augue quis nibh feugiat vestibulum. Morbi tortor velit, malesuada nec nulla ac, semper vehicula"
- " <DIV style='height:100; width:100; background-color:gray'"
+ " <DIV style='height:100; width:100; background-color:gray; float:left;'"
" onClick=\"JavaScript:window.status='browser-poc';\" >"
" Set status bar text"
" </DIV>"
- " <DIV style='height:100; width:100; background-color:gray; float: left'"
+ " <INPUT type='text' name='input' style='float:left;'></INPUT>"
+ " <DIV style='height:100; width:100; background-color:gray; float: left; clear:left'"
" onClick=\"JavaScript:alert('browser-poc');\" >"
" Trigger alert"
" </DIV>"
diff --git a/browser/userinput.cpp b/browser/userinput.cpp
index 5d2d950..5ffc0b1 100644
--- a/browser/userinput.cpp
+++ b/browser/userinput.cpp
@@ -16,7 +16,7 @@
#include <QDBusMessage>
userinput::userinput(QObject *parent) :
- QObject(parent)
+ QObject(parent), m_inputHistory(new QList<struct inputStruct>())
{
qDebug() << __PRETTY_FUNCTION__;
}
@@ -29,12 +29,21 @@ conn::brw::ERROR_IDS userinput::inputText(conn::brw::DIALOG_RESULT a_eResult, co
if(a_eResult == conn::brw::DR_OK)
emit inputText(a_strInputValue);
+ struct inputStruct is;
+ is.name = m_currentInput.name;
+ is.type = m_currentInput.type;
+ is.value = a_strInputValue;
+ m_inputHistory->append(is);
+
return conn::brw::EID_NO_ERROR;
}
void userinput::inputTextReceived(QString a_strInputName, QString a_strDefaultInputValue, int a_i32InputValueType, int a_s32MaxLength, int a_s32Max, int a_s32Min, int a_s32Step) {
qDebug() << __PRETTY_FUNCTION__;
+ m_currentInput.name = a_strInputName;
+ m_currentInput.type = (conn::brw::INPUT_ELEMENT_TYPE)a_i32InputValueType;
+
emit onInputText(a_strInputName, a_strDefaultInputValue, (conn::brw::INPUT_ELEMENT_TYPE)a_i32InputValueType, a_s32MaxLength, a_s32Max, a_s32Min, a_s32Step);
}
@@ -75,3 +84,20 @@ conn::brw::ERROR_IDS userinput::closePromptDialog(QString resultStr, conn::brw::
}
return conn::brw::EID_NO_ERROR;
}
+
+conn::brw::ERROR_IDS userinput::getPrevEnteredValues (const QString &a_strInputName, const QString &a_strInputValue, conn::brw::INPUT_ELEMENT_TYPE a_i32InputType, QStringList &a_oInputVariants)
+{
+ for (int i = 0; i < m_inputHistory->size(); i++){
+ struct inputStruct s = m_inputHistory->at(0);;
+ qDebug() << s.value;
+ if (s.type == a_i32InputType &&
+ s.name.compare(a_strInputName) == 0) {
+ a_oInputVariants.append(s.value);
+ }
+ }
+
+ return conn::brw::EID_NO_ERROR;
+}
+
+conn::brw::ERROR_IDS userinput::selectOption(const conn::brw::SelectableOptionList &a_oOptionList)
+{}
diff --git a/browser/userinput.h b/browser/userinput.h
index a1aff0a..b5cdbe0 100644
--- a/browser/userinput.h
+++ b/browser/userinput.h
@@ -50,6 +50,22 @@ public Q_SLOTS:
conn::brw::ERROR_IDS closeAlertDialog (void);
conn::brw::ERROR_IDS closeConfirmDialog (conn::brw::DIALOG_RESULT);
conn::brw::ERROR_IDS closePromptDialog (QString, conn::brw::DIALOG_RESULT);
+ conn::brw::ERROR_IDS getPrevEnteredValues(const QString&, const QString&, conn::brw::INPUT_ELEMENT_TYPE, QStringList&);
+ conn::brw::ERROR_IDS selectOption(const conn::brw::SelectableOptionList &);
+
+private:
+ struct inputStruct {
+ QString name;
+ QString value;
+ conn::brw::INPUT_ELEMENT_TYPE type;
+ };
+
+ struct {
+ QString name;
+ conn::brw::INPUT_ELEMENT_TYPE type;
+ } m_currentInput;
+
+ QList<struct inputStruct> *m_inputHistory;
};
#endif // USERINPUT_H
diff --git a/common/browserdbus.cpp b/common/browserdbus.cpp
index 35bb912..3e53fe1 100644
--- a/common/browserdbus.cpp
+++ b/common/browserdbus.cpp
@@ -719,3 +719,19 @@ void BrowserDbus::select() {
qDebug() << "ERROR " << error.name() << error.message();
}
}
+
+QStringList BrowserDbus::getPrevEnteredValues(QString name, QString value, conn::brw::INPUT_ELEMENT_TYPE type)
+{
+ qDebug() << __PRETTY_FUNCTION__;
+ QStringList list;
+
+ QDBusReply<conn::brw::ERROR_IDS> reply = actualuserinput->getPrevEnteredValues(name, value, type, list);
+ if(reply.isValid()) {
+ conn::brw::ERROR_IDS ret = reply.value();
+ qDebug() << "ERROR_IDS " << ret;
+ } else {
+ QDBusError error = reply.error();
+ qDebug() << "ERROR " << error.name() << error.message();
+ }
+ return list;
+}
diff --git a/common/browserdbus.h b/common/browserdbus.h
index c31a7ba..b746344 100644
--- a/common/browserdbus.h
+++ b/common/browserdbus.h
@@ -75,6 +75,8 @@ public:
Q_INVOKABLE void closeAlertDialog();
Q_INVOKABLE void closeConfirmDialog(conn::brw::DIALOG_RESULT);
Q_INVOKABLE void closePromptDialog(QString, conn::brw::DIALOG_RESULT);
+ Q_INVOKABLE QStringList getPrevEnteredValues(QString name, QString value, conn::brw::INPUT_ELEMENT_TYPE type);
+
QString title() { return m_title; }
void setTitle(QString title) { m_title = title; }