diff options
Diffstat (limited to 'Source/WebKit/qt/tests')
8 files changed, 76 insertions, 89 deletions
diff --git a/Source/WebKit/qt/tests/CMakeLists.txt b/Source/WebKit/qt/tests/CMakeLists.txt index 3dc6af1d5..42d636573 100644 --- a/Source/WebKit/qt/tests/CMakeLists.txt +++ b/Source/WebKit/qt/tests/CMakeLists.txt @@ -14,6 +14,8 @@ include_directories(SYSTEM ${Qt5Test_INCLUDE_DIRS} ) +add_definitions(-DTESTS_SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}/") + if (ENABLE_TEST_SUPPORT) add_definitions(-DHAVE_QTTESTSUPPORT) endif () diff --git a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp index 0fd5d0a85..8417d0ef7 100644 --- a/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp +++ b/Source/WebKit/qt/tests/qgraphicswebview/tst_qgraphicswebview.cpp @@ -190,6 +190,7 @@ void tst_QGraphicsWebView::widgetsRenderingThroughCache() // 1. Reference without tiling. webView->settings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, false); QPixmap referencePixmap(view.size()); + QApplication::processEvents(); widget->render(&referencePixmap); // 2. With tiling. diff --git a/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp b/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp index 32935e6a2..4ca5fe5f9 100644 --- a/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp +++ b/Source/WebKit/qt/tests/qwebelement/tst_qwebelement.cpp @@ -74,9 +74,9 @@ private Q_SLOTS: void addElementToHead(); private: - QWebView* m_view; - QWebPage* m_page; - QWebFrame* m_mainFrame; + QWebView* m_view { nullptr }; + QWebPage* m_page { nullptr }; + QWebFrame* m_mainFrame { nullptr }; }; tst_QWebElement::tst_QWebElement() diff --git a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp index 17bc703fc..2068eec3f 100644 --- a/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp +++ b/Source/WebKit/qt/tests/qwebframe/tst_qwebframe.cpp @@ -94,14 +94,15 @@ private Q_SLOTS: void setUrlThenLoads_data(); void setUrlThenLoads(); void loadFinishedAfterNotFoundError(); + void signalsDuringErrorHandling(); void loadInSignalHandlers_data(); void loadInSignalHandlers(); private: - QWebView* m_view; - QWebPage* m_page; - QWebView* m_inputFieldsTestView; - int m_inputFieldTestPaintCount; + QWebView* m_view { nullptr }; + QWebPage* m_page { nullptr }; + QWebView* m_inputFieldsTestView { nullptr }; + int m_inputFieldTestPaintCount { 0 }; }; bool tst_QWebFrame::eventFilter(QObject* watched, QEvent* event) @@ -169,12 +170,7 @@ void tst_QWebFrame::progressSignal() ::waitForSignal(m_view, SIGNAL(loadFinished(bool))); - QVERIFY(progressSpy.size() >= 2); - - // WebKit defines initialProgressValue as 10%, not 0% - QCOMPARE(progressSpy.first().first().toInt(), 10); - - // But we always end at 100% + QVERIFY(progressSpy.size() >= 1); QCOMPARE(progressSpy.last().first().toInt(), 100); } @@ -345,11 +341,21 @@ void tst_QWebFrame::requestedUrlAfterSetAndLoadFailures() const QUrl second("http://abcdef.abcdef/another_page.html"); QVERIFY(first != second); + page.settings()->setAttribute(QWebSettings::ErrorPageEnabled, false); + frame->load(second); ::waitForSignal(frame, SIGNAL(loadFinished(bool))); QCOMPARE(frame->url(), first); QCOMPARE(frame->requestedUrl(), second); QVERIFY(!spy.at(1).first().toBool()); + + page.settings()->setAttribute(QWebSettings::ErrorPageEnabled, true); + + frame->load(second); + ::waitForSignal(frame, SIGNAL(loadFinished(bool))); + QCOMPARE(frame->url(), second); + QCOMPARE(frame->requestedUrl(), second); + QVERIFY(!spy.at(2).first().toBool()); } void tst_QWebFrame::javaScriptWindowObjectCleared_data() @@ -467,7 +473,7 @@ void tst_QWebFrame::setHtmlWithBaseURL() QDir::setCurrent(TESTS_SOURCE_DIR); - QString html("<html><body><p>hello world</p><img src='resources/image2.png'/></body></html>"); + QString html("<html><body><p>hello world</p><img src='qwebframe/resources/image.png'/></body></html>"); QWebPage page; QWebFrame* frame = page.mainFrame(); @@ -1272,7 +1278,7 @@ void tst_QWebFrame::setUrlHistory() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(frame->url(), url); QCOMPARE(frame->requestedUrl(), url); - QCOMPARE(m_page->history()->count(), 0); + QCOMPARE(m_page->history()->count(), 1); url = QUrl("qrc:/test1.html"); frame->setUrl(url); @@ -1281,14 +1287,14 @@ void tst_QWebFrame::setUrlHistory() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(frame->url(), url); QCOMPARE(frame->requestedUrl(), url); - QCOMPARE(m_page->history()->count(), 1); + QCOMPARE(m_page->history()->count(), 2); frame->setUrl(QUrl()); expectedLoadFinishedCount++; QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(frame->url(), aboutBlank); QCOMPARE(frame->requestedUrl(), QUrl()); - QCOMPARE(m_page->history()->count(), 1); + QCOMPARE(m_page->history()->count(), 2); // Loading same page as current in history, so history count doesn't change. url = QUrl("qrc:/test1.html"); @@ -1298,7 +1304,7 @@ void tst_QWebFrame::setUrlHistory() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(frame->url(), url); QCOMPARE(frame->requestedUrl(), url); - QCOMPARE(m_page->history()->count(), 1); + QCOMPARE(m_page->history()->count(), 2); url = QUrl("qrc:/test2.html"); frame->setUrl(url); @@ -1307,7 +1313,7 @@ void tst_QWebFrame::setUrlHistory() QCOMPARE(spy.count(), expectedLoadFinishedCount); QCOMPARE(frame->url(), url); QCOMPARE(frame->requestedUrl(), url); - QCOMPARE(m_page->history()->count(), 2); + QCOMPARE(m_page->history()->count(), 3); } void tst_QWebFrame::setUrlUsingStateObject() @@ -1472,6 +1478,30 @@ void tst_QWebFrame::loadFinishedAfterNotFoundError() QVERIFY(!wasLoadOk); } +void tst_QWebFrame::signalsDuringErrorHandling() +{ + QWebPage page; + QWebFrame* frame = page.mainFrame(); + + QSignalSpy loadStartedSpy(frame, &QWebFrame::loadStarted); + QSignalSpy loadFinishedSpy(frame, &QWebFrame::loadFinished); + FakeNetworkManager* networkManager = new FakeNetworkManager(&page); + page.setNetworkAccessManager(networkManager); + + frame->setUrl(FakeReply::urlFor404ErrorWithoutContents); + QTRY_COMPARE(loadStartedSpy.count(), 1); + QTRY_COMPARE(loadFinishedSpy.count(), 1); + bool wasLoadOk = loadFinishedSpy.at(0).at(0).toBool(); + QVERIFY(!wasLoadOk); + + frame->load(QUrl("http://example.com")); + waitForSignal(frame, SIGNAL(loadFinished(bool))); + QCOMPARE(loadStartedSpy.count(), 2); + QCOMPARE(loadFinishedSpy.count(), 2); + wasLoadOk = loadFinishedSpy.at(1).at(0).toBool(); + QVERIFY(wasLoadOk); +} + class URLSetter : public QObject { Q_OBJECT diff --git a/Source/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp b/Source/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp index 17488ebb9..8df3d26d6 100644 --- a/Source/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp +++ b/Source/WebKit/qt/tests/qwebhistory/tst_qwebhistory.cpp @@ -70,11 +70,11 @@ private Q_SLOTS: private: - QWebPage* page; - QWebFrame* frame; - QWebHistory* hist; + QWebPage* page { nullptr }; + QWebFrame* frame { nullptr }; + QWebHistory* hist { nullptr }; QScopedPointer<SignalBarrier> loadFinishedBarrier; - int histsize; + int histsize {0}; }; tst_QWebHistory::tst_QWebHistory() diff --git a/Source/WebKit/qt/tests/qwebhistoryinterface/tst_qwebhistoryinterface.cpp b/Source/WebKit/qt/tests/qwebhistoryinterface/tst_qwebhistoryinterface.cpp index 1612eb7b9..91d1c997f 100644 --- a/Source/WebKit/qt/tests/qwebhistoryinterface/tst_qwebhistoryinterface.cpp +++ b/Source/WebKit/qt/tests/qwebhistoryinterface/tst_qwebhistoryinterface.cpp @@ -42,11 +42,8 @@ private Q_SLOTS: void visitedLinks(); private: - - -private: - QWebView* m_view; - QWebPage* m_page; + QWebView* m_view { nullptr }; + QWebPage* m_page { nullptr }; }; tst_QWebHistoryInterface::tst_QWebHistoryInterface() diff --git a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp index e545c5c0f..db4c911e6 100644 --- a/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp +++ b/Source/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp @@ -173,7 +173,6 @@ private Q_SLOTS: void errorPageExtension(); void errorPageExtensionInIFrames(); void errorPageExtensionInFrameset(); - void errorPageExtensionLoadFinished(); void userAgentApplicationName(); void userAgentNewlineStripping(); void undoActionHaveCustomText(); @@ -212,13 +211,13 @@ private Q_SLOTS: void cssMediaTypeGlobalSetting(); void cssMediaTypePageSetting(); -#ifdef Q_OS_MAC +#ifdef Q_OS_MACOS void macCopyUnicodeToClipboard(); #endif private: - QWebView* m_view; - QWebPage* m_page; + QWebView* m_view { nullptr }; + QWebPage* m_page { nullptr }; QString tmpDirPath() const { static QString tmpd = QDir::tempPath() + "/tst_qwebpage-" @@ -379,7 +378,7 @@ public: } private: - bool m_allowGeolocation; + bool m_allowGeolocation { false }; }; // [Qt] tst_QWebPage::infiniteLoopJS() timeouts with DFG JIT @@ -2755,35 +2754,6 @@ void tst_QWebPage::errorPageExtensionInFrameset() m_view->setPage(0); } -void tst_QWebPage::errorPageExtensionLoadFinished() -{ - ErrorPage page; - m_view->setPage(&page); - - QSignalSpy spyLoadFinished(m_view, SIGNAL(loadFinished(bool))); - QSignalSpy spyFrameLoadFinished(m_view->page()->mainFrame(), SIGNAL(loadFinished(bool))); - - m_view->setUrl(QUrl("data:text/html,foo")); - QTRY_COMPARE(spyLoadFinished.count(), 1); - QTRY_COMPARE(spyFrameLoadFinished.count(), 1); - - const bool loadSucceded = spyLoadFinished.at(0).at(0).toBool(); - QVERIFY(loadSucceded); - const bool frameLoadSucceded = spyFrameLoadFinished.at(0).at(0).toBool(); - QVERIFY(frameLoadSucceded); - - m_view->page()->mainFrame()->setUrl(QUrl("http://non.existent/url")); - QTRY_COMPARE(spyLoadFinished.count(), 2); - QTRY_COMPARE(spyFrameLoadFinished.count(), 2); - - const bool nonExistantLoadSucceded = spyLoadFinished.at(1).at(0).toBool(); - QVERIFY(nonExistantLoadSucceded); - const bool nonExistantFrameLoadSucceded = spyFrameLoadFinished.at(1).at(0).toBool(); - QVERIFY(nonExistantFrameLoadSucceded); - - m_view->setPage(0); -} - class FriendlyWebPage : public QWebPage { public: @@ -2926,15 +2896,13 @@ void tst_QWebPage::originatingObjectInNetworkRequests() m_page->setNetworkAccessManager(networkManager); networkManager->requests.clear(); - 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()); + m_view->setHtml(QString("<frameset cols=\"25%,75%\"><frame src=\"qrc:///frame_c.html\">" + "<frame src=\"qrc:///frame_b.html\"></frameset>"), QUrl()); QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool)))); QCOMPARE(networkManager->requests.count(), 2); QList<QWebFrame*> childFrames = m_page->mainFrame()->childFrames(); - QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=118660", Continue); QCOMPARE(childFrames.count(), 2); for (int i = 0; i < 2; ++i) @@ -3102,15 +3070,6 @@ void tst_QWebPage::findText() } } -static QString getMimeTypeForExtension(const QString &ext) -{ - QMimeType mimeType = QMimeDatabase().mimeTypeForFile(QStringLiteral("filename.") + ext.toLower(), QMimeDatabase::MatchExtension); - if (mimeType.isValid() && !mimeType.isDefault()) - return mimeType.name(); - - return QString(); -} - void tst_QWebPage::supportedContentType() { QStringList contentTypes; @@ -3118,19 +3077,14 @@ void tst_QWebPage::supportedContentType() // Add supported non image types... contentTypes << "text/html" << "text/xml" << "text/xsl" << "text/plain" << "text/" << "application/xml" << "application/xhtml+xml" << "application/vnd.wap.xhtml+xml" - << "application/rss+xml" << "application/atom+xml" << "application/json"; + << "application/rss+xml" << "application/atom+xml" << "application/json" + // Add JPEG MIME type + << "image/jpeg"; #if ENABLE_MHTML contentTypes << "application/x-mimearchive"; #endif - // Add supported image types... - Q_FOREACH(const QByteArray& imageType, QImageWriter::supportedImageFormats()) { - const QString mimeType = getMimeTypeForExtension(imageType); - if (!mimeType.isEmpty()) - contentTypes << mimeType; - } - // Get the mime types supported by webkit... const QStringList supportedContentTypes = m_page->supportedContentTypes(); @@ -3194,7 +3148,7 @@ void tst_QWebPage::thirdPartyCookiePolicy() } #endif -#ifdef Q_OS_MAC +#ifdef Q_OS_MACOS void tst_QWebPage::macCopyUnicodeToClipboard() { QString unicodeText = QString::fromUtf8("αβγδεζηθικλμπ"); @@ -3329,9 +3283,12 @@ void tst_QWebPage::contextMenuPopulatedOnce() QList<QAction *> list = contextMenu->actions(); QStringList entries; while (!list.isEmpty()) { - QString entry = list.takeFirst()->text(); - QVERIFY(!entries.contains(entry)); - entries << entry; + const QAction* action = list.takeFirst(); + if (!action->isSeparator()) { + QString entry = action->text(); + QVERIFY(!entries.contains(entry)); + entries << entry; + } } } diff --git a/Source/WebKit/qt/tests/qwebsecurityorigin/tst_qwebsecurityorigin.cpp b/Source/WebKit/qt/tests/qwebsecurityorigin/tst_qwebsecurityorigin.cpp index a15838274..225c42d0a 100644 --- a/Source/WebKit/qt/tests/qwebsecurityorigin/tst_qwebsecurityorigin.cpp +++ b/Source/WebKit/qt/tests/qwebsecurityorigin/tst_qwebsecurityorigin.cpp @@ -38,8 +38,8 @@ private slots: void whiteList_data(); void whiteList(); private: - QWebView* m_view; - QWebPage* m_page; + QWebView* m_view { nullptr }; + QWebPage* m_page { nullptr }; }; tst_QWebSecurityOrigin::tst_QWebSecurityOrigin() |