summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-03-13 15:24:48 +0100
committerJonatan Pålsson <jonatan.palsson@pelagicore.com>2014-03-13 16:15:02 +0100
commit857cdcf6521ed89e84c6eb03d5c6c9376d5c6537 (patch)
treeb3723297b0bec2f03fc373fc3e5392b80876ae84
parent994affbe6faa76592f824f0c87147c07979334e7 (diff)
downloadbrowser-poc-857cdcf6521ed89e84c6eb03d5c6c9376d5c6537.tar.gz
Newly entered text now replaced old text in text boxes
-rw-r--r--browser/browserview.cpp5
-rw-r--r--browser/unit-tests/browserdbus/testbrowserdbus.cpp30
-rw-r--r--browser/unit-tests/browserdbus/testbrowserdbus.h2
3 files changed, 34 insertions, 3 deletions
diff --git a/browser/browserview.cpp b/browser/browserview.cpp
index 8a24280..7368ae3 100644
--- a/browser/browserview.cpp
+++ b/browser/browserview.cpp
@@ -175,9 +175,8 @@ void BrowserView::scroll (conn::brw::SCROLL_DIRECTION dir, conn::brw::SCROLL_TYP
void BrowserView::inputText (QString input)
{
- QInputMethodEvent event;
- event.setCommitString(input);
- QCoreApplication::sendEvent(m_webview.page(), &event);
+ QString entryStr = "window.document.activeElement.value = '" + input + "';";
+ m_webview.page()->mainFrame()->evaluateJavaScript(entryStr);
}
void BrowserView::resizeEvent (QResizeEvent *event) {
diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.cpp b/browser/unit-tests/browserdbus/testbrowserdbus.cpp
index 4bb79a5..4d60cd9 100644
--- a/browser/unit-tests/browserdbus/testbrowserdbus.cpp
+++ b/browser/unit-tests/browserdbus/testbrowserdbus.cpp
@@ -439,4 +439,34 @@ void TestBrowserDBus::testGetOldInputText() {
QVERIFY(prevValue == "Hello world");
}
+void TestBrowserDBus::testNewTextReplacesOldText() {
+ QSignalSpy spy (m_bdb, SIGNAL (onInputTextReceived(QString, QString, conn::brw::INPUT_ELEMENT_TYPE, int, int, int, int)));
+ m_bdb->createPageWindow(1,0,0,800,600);
+ m_bdb->loadurl(testFileUrl());
+ QTest::qSleep(300);
+ QProcess::execute("xdotool mousemove 200 350");
+ QProcess::execute("xdotool click 1");
+ QVERIFY(spy.wait(1000));
+ m_bdb->inputText(conn::brw::DR_OK, "Hello world");
+ QTest::qSleep(300);
+ QProcess::execute("xdotool mousemove 200 300");
+ QProcess::execute("xdotool click 1");
+ QTest::qSleep(300);
+ QProcess::execute("xdotool mousemove 200 350");
+ QProcess::execute("xdotool click 1");
+ QVERIFY(spy.wait(1000));
+ QString prevValue = spy.last().at(1).value<QString>();
+ QVERIFY(prevValue == "Hello world");
+ m_bdb->inputText(conn::brw::DR_OK, "New text!");
+ QTest::qSleep(300);
+ QProcess::execute("xdotool mousemove 200 300");
+ QProcess::execute("xdotool click 1");
+ QTest::qSleep(300);
+ QProcess::execute("xdotool mousemove 200 350");
+ QProcess::execute("xdotool click 1");
+ QVERIFY(spy.wait(1000));
+ prevValue = spy.last().at(1).value<QString>();
+ QVERIFY(prevValue == "New text!");
+}
+
QTEST_MAIN (TestBrowserDBus);
diff --git a/browser/unit-tests/browserdbus/testbrowserdbus.h b/browser/unit-tests/browserdbus/testbrowserdbus.h
index f5530cf..3be6fac 100644
--- a/browser/unit-tests/browserdbus/testbrowserdbus.h
+++ b/browser/unit-tests/browserdbus/testbrowserdbus.h
@@ -57,6 +57,8 @@ private slots:
void testCanCloseAuthDialog();
void testCanSelectOptionsInSelectList();
void testGetOldInputText();
+ void testNewTextReplacesOldText();
+
private:
QString testFileUrl() {