summaryrefslogtreecommitdiffstats
path: root/WebKit/qt/tests
diff options
context:
space:
mode:
Diffstat (limited to 'WebKit/qt/tests')
-rw-r--r--WebKit/qt/tests/qwebframe/tst_qwebframe.cpp12
-rw-r--r--WebKit/qt/tests/qwebpage/tst_qwebpage.cpp15
-rw-r--r--WebKit/qt/tests/qwebview/tst_qwebview.cpp110
3 files changed, 69 insertions, 68 deletions
diff --git a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
index 83b8600..98ce663 100644
--- a/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
+++ b/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp
@@ -2678,7 +2678,8 @@ void tst_QWebFrame::popupFocus()
QTRY_VERIFY(view.hasFocus());
// open the popup by clicking. check if focus is on the popup
- QTest::mouseClick(&view, Qt::LeftButton, 0, QPoint(25, 25));
+ const QWebElement webCombo = view.page()->mainFrame()->documentElement().findFirst(QLatin1String("select[name=select]"));
+ QTest::mouseClick(&view, Qt::LeftButton, 0, webCombo.geometry().center());
QObject* webpopup = firstChildByClassName(&view, "QComboBox");
QComboBox* combo = qobject_cast<QComboBox*>(webpopup);
QVERIFY(combo != 0);
@@ -2696,6 +2697,7 @@ void tst_QWebFrame::inputFieldFocus()
view.setHtml("<html><body><input type=\"text\"></input></body></html>");
view.resize(400, 100);
view.show();
+ QTest::qWaitForWindowShown(&view);
view.setFocus();
QTRY_VERIFY(view.hasFocus());
@@ -2703,7 +2705,8 @@ void tst_QWebFrame::inputFieldFocus()
int delay = qApp->cursorFlashTime() * 2;
// focus the lineedit and check if it blinks
- QTest::mouseClick(&view, Qt::LeftButton, 0, QPoint(25, 25));
+ const QWebElement inputElement = view.page()->mainFrame()->documentElement().findFirst(QLatin1String("input[type=text]"));
+ QTest::mouseClick(&view, Qt::LeftButton, 0, inputElement.geometry().center());
m_inputFieldsTestView = &view;
view.installEventFilter( this );
QTest::qWait(delay);
@@ -2713,13 +2716,14 @@ void tst_QWebFrame::inputFieldFocus()
void tst_QWebFrame::hitTestContent()
{
- QString html("<html><body><p>A paragraph</p><br/><br/><br/><a href=\"about:blank\" target=\"_foo\">link text</a></body></html>");
+ QString html("<html><body><p>A paragraph</p><br/><br/><br/><a href=\"about:blank\" target=\"_foo\" id=\"link\">link text</a></body></html>");
QWebPage page;
QWebFrame* frame = page.mainFrame();
frame->setHtml(html);
page.setViewportSize(QSize(200, 0)); //no height so link is not visible
- QWebHitTestResult result = frame->hitTestContent(QPoint(10, 100));
+ const QWebElement linkElement = frame->documentElement().findFirst(QLatin1String("a#link"));
+ QWebHitTestResult result = frame->hitTestContent(linkElement.geometry().center());
QCOMPARE(result.linkText(), QString("link text"));
QWebElement link = result.linkElement();
QCOMPARE(link.attribute("target"), QString("_foo"));
diff --git a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index 67e3ecd..9a6c35f 100644
--- a/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -217,9 +217,12 @@ public slots:
bool shouldInterruptJavaScript() {
return true;
}
- bool allowGeolocationRequest(QWebFrame *frame)
+ void requestPermission(QWebFrame* frame, QWebPage::PermissionDomain domain)
{
- return m_allowGeolocation;
+ if (m_allowGeolocation)
+ setUserPermission(frame, domain, PermissionGranted);
+ else
+ setUserPermission(frame, domain, PermissionDenied);
}
public:
@@ -234,9 +237,6 @@ private:
void tst_QWebPage::infiniteLoopJS()
{
-#ifdef Q_WS_MAEMO_5
- QSKIP("Test never terminates on Maemo 5 : https://bugs.webkit.org/show_bug.cgi?id=38538", SkipAll);
-#endif
JSTestPage* newPage = new JSTestPage(m_view);
m_view->setPage(newPage);
m_view->setHtml(QString("<html><body>test</body></html>"), QUrl());
@@ -247,6 +247,9 @@ void tst_QWebPage::infiniteLoopJS()
void tst_QWebPage::geolocationRequestJS()
{
JSTestPage* newPage = new JSTestPage(m_view);
+ connect(newPage, SIGNAL(requestPermissionFromUser(QWebFrame*, QWebPage::PermissionDomain)),
+ newPage, SLOT(requestPermission(QWebFrame*, QWebPage::PermissionDomain)));
+
newPage->setGeolocationPermission(false);
m_view->setPage(newPage);
m_view->setHtml(QString("<html><body>test</body></html>"), QUrl());
@@ -2028,7 +2031,7 @@ void tst_QWebPage::originatingObjectInNetworkRequests()
m_page->setNetworkAccessManager(networkManager);
networkManager->requests.clear();
- m_view->setHtml(QString("data:text/html,<frameset cols=\"25%,75%\"><frame src=\"data:text/html,"
+ m_view->setHtml(QString("<frameset cols=\"25%,75%\"><frame src=\"data:text/html,"
"<head><meta http-equiv='refresh' content='1'></head>foo \">"
"<frame src=\"data:text/html,bar\"></frameset>"), QUrl());
QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
diff --git a/WebKit/qt/tests/qwebview/tst_qwebview.cpp b/WebKit/qt/tests/qwebview/tst_qwebview.cpp
index 57f726d..fd4978d 100644
--- a/WebKit/qt/tests/qwebview/tst_qwebview.cpp
+++ b/WebKit/qt/tests/qwebview/tst_qwebview.cpp
@@ -28,6 +28,7 @@
#include <qnetworkrequest.h>
#include <qdiriterator.h>
#include <qwebkitversion.h>
+#include <qwebelement.h>
#include <qwebframe.h>
class tst_QWebView : public QObject
@@ -52,20 +53,6 @@ private slots:
void crashTests();
};
-class WebView : public QWebView
-{
- Q_OBJECT
-
-public:
- void fireMouseClick(QPoint point) {
- QMouseEvent presEv(QEvent::MouseButtonPress, point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- QMouseEvent relEv(QEvent::MouseButtonRelease, point, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- QWebView::mousePressEvent(&presEv);
- QWebView::mousePressEvent(&relEv);
- }
-
-};
-
// This will be called before the first test function is executed.
// It is only called once.
void tst_QWebView::initTestCase()
@@ -245,79 +232,86 @@ void tst_QWebView::microFocusCoordinates()
void tst_QWebView::focusInputTypes()
{
- QWebPage* page = new QWebPage;
- WebView* webView = new WebView;
- webView->setPage( page );
+ QWebView webView;
+ webView.show();
+ QTest::qWaitForWindowShown(&webView);
- QCoreApplication::processEvents();
QUrl url("qrc:///resources/input_types.html");
- page->mainFrame()->load(url);
- page->mainFrame()->setFocus();
+ QWebFrame* const mainFrame = webView.page()->mainFrame();
+ mainFrame->load(url);
+ mainFrame->setFocus();
- QVERIFY(waitForSignal(page, SIGNAL(loadFinished(bool))));
+ QVERIFY(waitForSignal(&webView, SIGNAL(loadFinished(bool))));
// 'text' type
- webView->fireMouseClick(QPoint(20, 10));
+ QWebElement inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=text]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
- QVERIFY(webView->inputMethodHints() & Qt::ImhNoAutoUppercase);
- QVERIFY(webView->inputMethodHints() & Qt::ImhNoPredictiveText);
+ QVERIFY(webView.inputMethodHints() & Qt::ImhNoAutoUppercase);
+ QVERIFY(webView.inputMethodHints() & Qt::ImhNoPredictiveText);
#else
- QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+ QVERIFY(webView.inputMethodHints() == Qt::ImhNone);
#endif
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
- webView->fireMouseClick(QPoint(20, 60));
- QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=password]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'tel' field
- webView->fireMouseClick(QPoint(20, 110));
- QVERIFY(webView->inputMethodHints() == Qt::ImhDialableCharactersOnly);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=tel]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhDialableCharactersOnly);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'number' field
- webView->fireMouseClick(QPoint(20, 160));
- QVERIFY(webView->inputMethodHints() == Qt::ImhDigitsOnly);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=number]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhDigitsOnly);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'email' field
- webView->fireMouseClick(QPoint(20, 210));
- QVERIFY(webView->inputMethodHints() == Qt::ImhEmailCharactersOnly);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=email]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhEmailCharactersOnly);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'url' field
- webView->fireMouseClick(QPoint(20, 260));
- QVERIFY(webView->inputMethodHints() == Qt::ImhUrlCharactersOnly);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=url]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhUrlCharactersOnly);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
- webView->fireMouseClick(QPoint(20, 60));
- QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=password]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'text' type
- webView->fireMouseClick(QPoint(20, 10));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=text]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
#if defined(Q_WS_MAEMO_5) || defined(Q_WS_MAEMO_6) || defined(Q_OS_SYMBIAN)
- QVERIFY(webView->inputMethodHints() & Qt::ImhNoAutoUppercase);
- QVERIFY(webView->inputMethodHints() & Qt::ImhNoPredictiveText);
+ QVERIFY(webView.inputMethodHints() & Qt::ImhNoAutoUppercase);
+ QVERIFY(webView.inputMethodHints() & Qt::ImhNoPredictiveText);
#else
- QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
+ QVERIFY(webView.inputMethodHints() == Qt::ImhNone);
#endif
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'password' field
- webView->fireMouseClick(QPoint(20, 60));
- QVERIFY(webView->inputMethodHints() == Qt::ImhHiddenText);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("input[type=password]"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhHiddenText);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
// 'text area' field
- webView->fireMouseClick(QPoint(20, 320));
- QVERIFY(webView->inputMethodHints() == Qt::ImhNone);
- QVERIFY(webView->testAttribute(Qt::WA_InputMethodEnabled));
-
- delete webView;
-
+ inputElement = mainFrame->documentElement().findFirst(QLatin1String("textarea"));
+ QTest::mouseClick(&webView, Qt::LeftButton, 0, inputElement.geometry().center());
+ QVERIFY(webView.inputMethodHints() == Qt::ImhNone);
+ QVERIFY(webView.testAttribute(Qt::WA_InputMethodEnabled));
}
QTEST_MAIN(tst_QWebView)