diff options
Diffstat (limited to 'WebKit/qt/tests')
-rw-r--r-- | WebKit/qt/tests/qwebframe/tst_qwebframe.cpp | 12 | ||||
-rw-r--r-- | WebKit/qt/tests/qwebpage/tst_qwebpage.cpp | 15 | ||||
-rw-r--r-- | WebKit/qt/tests/qwebview/tst_qwebview.cpp | 110 |
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) |