summaryrefslogtreecommitdiffstats
path: root/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp')
-rw-r--r--tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp316
1 files changed, 155 insertions, 161 deletions
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index f16c42976..287af511f 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -333,25 +333,23 @@ protected:
void tst_QWebEnginePage::acceptNavigationRequest()
{
- QWebEngineView *view = new QWebEngineView();
- QSignalSpy loadSpy(view, SIGNAL(loadFinished(bool)));
+ QWebEngineView view;
+ QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool)));
- NavigationRequestOverride* newPage = new NavigationRequestOverride(view, false);
- view->setPage(newPage);
+ NavigationRequestOverride* newPage = new NavigationRequestOverride(&view, false);
+ view.setPage(newPage);
- view->setHtml(QString("<html><body><form name='tstform' action='data:text/html,foo'method='get'>"
+ view.setHtml(QString("<html><body><form name='tstform' action='data:text/html,foo'method='get'>"
"<input type='text'><input type='submit'></form></body></html>"), QUrl());
QTRY_COMPARE(loadSpy.count(), 1);
- evaluateJavaScriptSync(view->page(), "tstform.submit();");
+ evaluateJavaScriptSync(view.page(), "tstform.submit();");
newPage->m_acceptNavigationRequest = true;
- evaluateJavaScriptSync(view->page(), "tstform.submit();");
+ evaluateJavaScriptSync(view.page(), "tstform.submit();");
QTRY_COMPARE(loadSpy.count(), 2);
- QCOMPARE(toPlainTextSync(view->page()), QString("foo?"));
-
- delete view;
+ QCOMPARE(toPlainTextSync(view.page()), QString("foo?"));
}
class JSTestPage : public QWebEnginePage
@@ -389,11 +387,10 @@ private:
/*
void tst_QWebEnginePage::infiniteLoopJS()
{
- JSTestPage* newPage = new JSTestPage(m_view);
- m_view->setPage(newPage);
+ JSTestPage newPage(m_view);
+ m_view->setPage(&newPage);
m_view->setHtml(QString("<html><body>test</body></html>"), QUrl());
m_view->page()->evaluateJavaScript("var run = true; var a = 1; while (run) { a++; }");
- delete newPage;
}
*/
@@ -409,9 +406,9 @@ void tst_QWebEnginePage::geolocationRequestJS()
{
QFETCH(bool, allowed);
QFETCH(int, errorCode);
- QWebEngineView *view = new QWebEngineView;
- JSTestPage *newPage = new JSTestPage(view);
- newPage->setView(view);
+ QWebEngineView view;
+ JSTestPage *newPage = new JSTestPage(&view);
+ newPage->setView(&view);
newPage->setGeolocationPermission(allowed);
connect(newPage, SIGNAL(featurePermissionRequested(const QUrl&, QWebEnginePage::Feature)),
@@ -420,10 +417,8 @@ void tst_QWebEnginePage::geolocationRequestJS()
QSignalSpy spyLoadFinished(newPage, SIGNAL(loadFinished(bool)));
newPage->setHtml(QString("<html><body>test</body></html>"), QUrl("qrc://secure/origin"));
QTRY_COMPARE(spyLoadFinished.count(), 1);
- if (evaluateJavaScriptSync(newPage, QLatin1String("!navigator.geolocation")).toBool()) {
- delete view;
+ if (evaluateJavaScriptSync(newPage, QLatin1String("!navigator.geolocation")).toBool())
W_QSKIP("Geolocation is not supported.", SkipSingle);
- }
evaluateJavaScriptSync(newPage, "var errorCode = 0; var done = false; function error(err) { errorCode = err.code; done = true; } function success(pos) { done = true; } navigator.geolocation.getCurrentPosition(success, error)");
@@ -432,8 +427,6 @@ void tst_QWebEnginePage::geolocationRequestJS()
if (result == 2)
QEXPECT_FAIL("", "No location service available.", Continue);
QCOMPARE(result, errorCode);
-
- delete view;
}
void tst_QWebEnginePage::loadFinished()
@@ -490,7 +483,8 @@ void tst_QWebEnginePage::pasteImage()
clipboard->setImage(origImage);
QWebEnginePage *page = m_view->page();
page->load(QUrl("qrc:///resources/pasteimage.html"));
- QVERIFY(waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
page->triggerAction(QWebEnginePage::Paste);
QTRY_VERIFY(evaluateJavaScriptSync(page,
"window.myImageDataURL ? window.myImageDataURL.length : 0").toInt() > 0);
@@ -661,7 +655,8 @@ void tst_QWebEnginePage::userStyleSheet()
m_page->settings()->setUserStyleSheetUrl(QUrl("data:text/css;charset=utf-8;base64,"
+ QByteArray("p { background-image: url('http://does.not/exist.png');}").toBase64()));
m_view->setHtml("<p>hello world</p>");
- QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
QVERIFY(networkManager->requestedUrls.count() >= 1);
QCOMPARE(networkManager->requestedUrls.at(0), QUrl("http://does.not/exist.png"));
@@ -679,7 +674,8 @@ void tst_QWebEnginePage::userStyleSheetFromLocalFileUrl()
QUrl styleSheetUrl = QUrl::fromLocalFile(TESTS_SOURCE_DIR + QLatin1String("qwebenginepage/resources/user.css"));
m_page->settings()->setUserStyleSheetUrl(styleSheetUrl);
m_view->setHtml("<p>hello world</p>");
- QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
QVERIFY(networkManager->requestedUrls.count() >= 1);
QCOMPARE(networkManager->requestedUrls.at(0), QUrl("http://does.not/exist.png"));
@@ -696,7 +692,8 @@ void tst_QWebEnginePage::userStyleSheetFromQrcUrl()
m_page->settings()->setUserStyleSheetUrl(QUrl("qrc:///resources/user.css"));
m_view->setHtml("<p>hello world</p>");
- QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
QVERIFY(networkManager->requestedUrls.count() >= 1);
QCOMPARE(networkManager->requestedUrls.at(0), QUrl("http://does.not/exist.png"));
@@ -723,10 +720,12 @@ void tst_QWebEnginePage::modified()
QSKIP("QWEBENGINEPAGE_ISMODIFIED");
#else
m_page->setUrl(QUrl("data:text/html,<body>blub"));
- QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
m_page->setUrl(QUrl("data:text/html,<body id=foo contenteditable>blah"));
- QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
QVERIFY(!m_page->isModified());
@@ -750,7 +749,8 @@ void tst_QWebEnginePage::modified()
QVERIFY(!m_page->history()->forwardItem().isValid());
m_page->history()->back();
- QVERIFY(::waitForSignal(m_view, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
QVERIFY(!m_page->history()->canGoBack());
QVERIFY(m_page->history()->canGoForward());
@@ -772,7 +772,8 @@ void tst_QWebEnginePage::modified()
m_page->setUrl(QUrl("data:text/html,<body>This is fourth page"));
QCOMPARE(m_page->history()->count(), 2);
m_page->setUrl(QUrl("data:text/html,<body>This is fifth page"));
- QVERIFY(::waitForSignal(m_page, SIGNAL(saveFrameStateRequested(QWebEngineFrame*,QWebEngineHistoryItem*))));
+ QSignalSpy spy(m_page, &QWebEnginePage::saveFrameStateRequested);
+ QVERIFY(spy.wait());
#endif
}
@@ -1225,7 +1226,7 @@ void tst_QWebEnginePage::cursorMovements()
#if !defined(QWEBENGINEPAGE_SELECTEDTEXT)
QSKIP("QWEBENGINEPAGE_SELECTEDTEXT");
#else
- CursorTrackedPage* page = new CursorTrackedPage;
+ QScopedPointer<CursorTrackedPage> page(new CursorTrackedPage);
QString content("<html><body><p id=one>The quick brown fox</p><p id=two>jumps over the lazy dog</p><p>May the source<br/>be with you!</p></body></html>");
page->setHtml(content);
@@ -1234,7 +1235,7 @@ void tst_QWebEnginePage::cursorMovements()
"var node = document.getElementById(\"one\"); " \
"range.selectNode(node); " \
"getSelection().addRange(range);";
- evaluateJavaScriptSync(page, script);
+ evaluateJavaScriptSync(page.data(), script);
QCOMPARE(page->selectedText().trimmed(), QString::fromLatin1("The quick brown fox"));
QRegExp regExp(" style=\".*\"");
@@ -1415,20 +1416,18 @@ void tst_QWebEnginePage::cursorMovements()
page->triggerAction(QWebEnginePage::MoveToNextWord);
QVERIFY(page->isSelectionCollapsed());
QCOMPARE(page->selectionStartOffset(), 12);
-
- delete page;
#endif
}
void tst_QWebEnginePage::textSelection()
{
- QWebEngineView *view = new QWebEngineView;
- CursorTrackedPage *page = new CursorTrackedPage(view);
+ QWebEngineView view;
+ CursorTrackedPage *page = new CursorTrackedPage(&view);
QString content("<html><body><p id=one>The quick brown fox</p>" \
"<p id=two>jumps over the lazy dog</p>" \
"<p>May the source<br/>be with you!</p></body></html>");
- page->setView(view);
- QSignalSpy loadSpy(view, SIGNAL(loadFinished(bool)));
+ page->setView(&view);
+ QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool)));
page->setHtml(content);
QTRY_COMPARE(loadSpy.count(), 1);
@@ -1522,8 +1521,6 @@ void tst_QWebEnginePage::textSelection()
QCOMPARE(page->action(QWebEnginePage::SelectStartOfDocument)->isEnabled(), true);
QCOMPARE(page->action(QWebEnginePage::SelectEndOfDocument)->isEnabled(), true);
#endif
-
- delete view;
}
void tst_QWebEnginePage::textEditing()
@@ -1531,7 +1528,7 @@ void tst_QWebEnginePage::textEditing()
#if !defined(QWEBENGINEPAGE_EVALUATEJAVASCRIPT)
QSKIP("QWEBENGINEPAGE_EVALUATEJAVASCRIPT");
#else
- CursorTrackedPage* page = new CursorTrackedPage;
+ QScopedPointer<CursorTrackedPage> page(new CursorTrackedPage);
QString content("<html><body><p id=one>The quick brown fox</p>" \
"<p id=two>jumps over the lazy dog</p>" \
"<p>May the source<br/>be with you!</p></body></html>");
@@ -1644,8 +1641,6 @@ void tst_QWebEnginePage::textEditing()
// this is only true if there is an editable selection
QCOMPARE(page->action(QWebEnginePage::Cut)->isEnabled(), true);
QCOMPARE(page->action(QWebEnginePage::RemoveFormat)->isEnabled(), true);
-
- delete page;
#endif
}
@@ -1711,12 +1706,12 @@ void tst_QWebEnginePage::inputMethods()
QFETCH(QString, viewType);
QWebEnginePage* page = new QWebEnginePage;
QObject* view = 0;
- QObject* container = 0;
+ QScopedPointer<QObject> container(0);
if (viewType == "QWebEngineView") {
QWebEngineView* wv = new QWebEngineView;
wv->setPage(page);
view = wv;
- container = view;
+ container.reset(view);
} else if (viewType == "QGraphicsWebView") {
QGraphicsWebView* wv = new QGraphicsWebView;
wv->setPage(page);
@@ -1728,7 +1723,7 @@ void tst_QWebEnginePage::inputMethods()
scene->addItem(wv);
wv->setGeometry(QRect(0, 0, 500, 500));
- container = gv;
+ container.reset(gv);
} else
QVERIFY2(false, "Unknown view type");
@@ -2396,8 +2391,6 @@ void tst_QWebEnginePage::inputMethods()
QCOMPARE(inputValue2, QString("\n\nthird line"));
// END - Newline test for textarea
-
- delete container;
#endif
}
@@ -2736,22 +2729,19 @@ void tst_QWebEnginePage::screenshot()
QDir::setCurrent(TESTS_SOURCE_DIR);
QFETCH(QString, html);
- QWebEnginePage* page = new QWebEnginePage;
- page->settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
- page->setHtml(html, QUrl::fromLocalFile(TESTS_SOURCE_DIR));
- ::waitForSignal(page, SIGNAL(loadFinished(bool)), 2000);
+ QWebEnginePage page;
+ page.settings()->setAttribute(QWebEngineSettings::PluginsEnabled, true);
+ page.setHtml(html, QUrl::fromLocalFile(TESTS_SOURCE_DIR));
+ QVERIFY(spyFinished.wait(2000));
// take screenshot without a view
- takeScreenshot(page);
+ takeScreenshot(&page);
- QWebEngineView* view = new QWebEngineView;
- view->setPage(page);
+ QWebEngineView view;
+ view.setPage(&page);
// take screenshot when attached to a view
- takeScreenshot(page);
-
- delete page;
- delete view;
+ takeScreenshot(&page);
QDir::setCurrent(QApplication::applicationDirPath());
#endif
@@ -2865,7 +2855,8 @@ void tst_QWebEnginePage::testStopScheduledPageRefresh()
"<meta http-equiv=\"refresh\"content=\"0;URL=qrc:///resources/index.html\">"
"</head><body><h1>Page redirects immediately...</h1>"
"</body></html>");
- QVERIFY(::waitForSignal(&page1, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(&page1, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait();
QTest::qWait(500);
QCOMPARE(page1.url(), QUrl(QLatin1String("qrc:///resources/index.html")));
@@ -3217,7 +3208,8 @@ void tst_QWebEnginePage::deleteQWebEngineViewTwice()
mainWindow.setCentralWidget(webView);
webView->load(QUrl("qrc:///resources/frame_a.html"));
mainWindow.show();
- QVERIFY(::waitForSignal(webView, SIGNAL(loadFinished(bool))));
+ QSignalSpy spyFinished(webView, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
}
}
@@ -3272,7 +3264,8 @@ void tst_QWebEnginePage::renderOnRepaintRequestedShouldNotRecurse()
page.setHtml("zalan loves trunk", QUrl());
- QVERIFY(::waitForSignal(&r, SIGNAL(finished())));
+ QSignalSpy spyFinished(&r, &RepaintRequestedRenderer::finished);
+ QVERIFY(spyFinished.wait());
#endif
}
@@ -3323,9 +3316,10 @@ void tst_QWebEnginePage::loadSignalsOrder()
QFETCH(QUrl, url);
QWebEnginePage page;
SpyForLoadSignalsOrder loadSpy(&page);
- waitForSignal(&loadSpy, SIGNAL(started()), 500);
+ QSignalSpy spyLoadSpy(&loadSpy, &SpyForLoadSignalsOrder::started);
+ QVERIFY(spyLoadSpy.wait(500));
page.load(url);
- QTRY_VERIFY_WITH_TIMEOUT(loadSpy.isFinished(), 500);
+ QTRY_VERIFY(loadSpy.isFinished());
}
void tst_QWebEnginePage::undoActionHaveCustomText()
@@ -3412,26 +3406,25 @@ private:
void tst_QWebEnginePage::getUserMediaRequest()
{
- GetUserMediaTestPage *page = new GetUserMediaTestPage();
+ GetUserMediaTestPage page;
// We need to load content from a resource in order for the securityOrigin to be valid.
- QSignalSpy loadSpy(page, SIGNAL(loadFinished(bool)));
- page->load(QUrl("qrc:///resources/content.html"));
+ QSignalSpy loadSpy(&page, SIGNAL(loadFinished(bool)));
+ page.load(QUrl("qrc:///resources/content.html"));
QTRY_COMPARE(loadSpy.count(), 1);
- QVERIFY(evaluateJavaScriptSync(page, QStringLiteral("!!navigator.webkitGetUserMedia")).toBool());
- evaluateJavaScriptSync(page, QStringLiteral("navigator.webkitGetUserMedia({audio: true}, function() {}, function(){})"));
- QTRY_VERIFY(page->gotFeatureRequest(QWebEnginePage::MediaAudioCapture));
+ QVERIFY(evaluateJavaScriptSync(&page, QStringLiteral("!!navigator.webkitGetUserMedia")).toBool());
+ evaluateJavaScriptSync(&page, QStringLiteral("navigator.webkitGetUserMedia({audio: true}, function() {}, function(){})"));
+ QTRY_VERIFY(page.gotFeatureRequest(QWebEnginePage::MediaAudioCapture));
// Might end up failing due to the lack of physical media devices deeper in the content layer, so the JS callback is not guaranteed to be called,
// but at least we go through that code path, potentially uncovering failing assertions.
- page->acceptPendingRequest();
+ page.acceptPendingRequest();
- page->runJavaScript(QStringLiteral("errorCallbackCalled = false;"));
- evaluateJavaScriptSync(page, QStringLiteral("navigator.webkitGetUserMedia({audio: true, video: true}, function() {}, function(){errorCallbackCalled = true;})"));
- QTRY_VERIFY(page->gotFeatureRequest(QWebEnginePage::MediaAudioVideoCapture));
- page->rejectPendingRequest(); // Should always end up calling the error callback in JS.
- QTRY_VERIFY(evaluateJavaScriptSync(page, QStringLiteral("errorCallbackCalled;")).toBool());
- delete page;
+ page.runJavaScript(QStringLiteral("errorCallbackCalled = false;"));
+ evaluateJavaScriptSync(&page, QStringLiteral("navigator.webkitGetUserMedia({audio: true, video: true}, function() {}, function(){errorCallbackCalled = true;})"));
+ QTRY_VERIFY(page.gotFeatureRequest(QWebEnginePage::MediaAudioVideoCapture));
+ page.rejectPendingRequest(); // Should always end up calling the error callback in JS.
+ QTRY_VERIFY(evaluateJavaScriptSync(&page, QStringLiteral("errorCallbackCalled;")).toBool());
}
void tst_QWebEnginePage::savePage()
@@ -3449,7 +3442,8 @@ void tst_QWebEnginePage::savePage()
const QString urlPrefix = QStringLiteral("data:text/html,<h1>");
const QString text = QStringLiteral("There is Thingumbob shouting!");
page->load(QUrl(urlPrefix + text));
- waitForSignal(page, SIGNAL(loadFinished(bool)));
+ QSignalSpy spyFinished(page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait());
QCOMPARE(toPlainTextSync(page), text);
// Save the loaded page as HTML.
@@ -3460,12 +3454,12 @@ void tst_QWebEnginePage::savePage()
// Load something else.
page->load(QUrl(urlPrefix + QLatin1String("It's a Snark!")));
- waitForSignal(page, SIGNAL(loadFinished(bool)));
+ QVERIFY(spyFinished.wait());
QVERIFY(toPlainTextSync(page) != text);
// Load the saved page and compare the contents.
page->load(QUrl::fromLocalFile(filePath));
- waitForSignal(page, SIGNAL(loadFinished(bool)));
+ QVERIFY(spyFinished.wait());
QCOMPARE(toPlainTextSync(page), text);
}
@@ -3704,13 +3698,13 @@ void tst_QWebEnginePage::runJavaScript()
void tst_QWebEnginePage::fullScreenRequested()
{
JavaScriptCallbackWatcher watcher;
- QWebEngineView* view = new QWebEngineView;
- QWebEnginePage* page = view->page();
- view->show();
+ QWebEngineView view;
+ QWebEnginePage* page = view.page();
+ view.show();
page->settings()->setAttribute(QWebEngineSettings::FullScreenSupportEnabled, true);
- QSignalSpy loadSpy(view, SIGNAL(loadFinished(bool)));
+ QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool)));
page->load(QUrl("qrc:///resources/fullscreen.html"));
QTRY_COMPARE(loadSpy.count(), 1);
@@ -3725,7 +3719,7 @@ void tst_QWebEnginePage::fullScreenRequested()
if (acceptRequest) request.accept(); else request.reject();
});
- QTest::keyPress(view->focusProxy(), Qt::Key_Space);
+ QTest::keyPress(view.focusProxy(), Qt::Key_Space);
QTRY_VERIFY(evaluateJavaScriptSync(page, "document.webkitIsFullScreen").toBool());
page->runJavaScript("document.webkitExitFullscreen()", JavaScriptCallbackUndefined());
QVERIFY(watcher.wait());
@@ -3733,12 +3727,10 @@ void tst_QWebEnginePage::fullScreenRequested()
acceptRequest = false;
page->runJavaScript("document.webkitFullscreenEnabled", JavaScriptCallback(true));
- QTest::keyPress(view->focusProxy(), Qt::Key_Space);
+ QTest::keyPress(view.focusProxy(), Qt::Key_Space);
QVERIFY(watcher.wait());
page->runJavaScript("document.webkitIsFullScreen", JavaScriptCallback(false));
QVERIFY(watcher.wait());
-
- delete view;
}
void tst_QWebEnginePage::symmetricUrl()
@@ -3791,7 +3783,8 @@ void tst_QWebEnginePage::progressSignal()
QUrl dataUrl("data:text/html,<h1>Test");
m_view->setUrl(dataUrl);
- ::waitForSignal(m_view, SIGNAL(loadFinished(bool)));
+ QSignalSpy spyFinished(m_view, &QWebEngineView::loadFinished);
+ QVERIFY(spyFinished.wait());
QVERIFY(progressSpy.size() >= 2);
int previousValue = -1;
@@ -3812,14 +3805,14 @@ void tst_QWebEnginePage::urlChange()
QUrl dataUrl("data:text/html,<h1>Test");
m_view->setUrl(dataUrl);
- ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl)));
+ QVERIFY(urlSpy.wait());
QCOMPARE(urlSpy.size(), 1);
QUrl dataUrl2("data:text/html,<html><head><title>title</title></head><body><h1>Test</body></html>");
m_view->setUrl(dataUrl2);
- ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl)));
+ QVERIFY(urlSpy.wait());
QCOMPARE(urlSpy.size(), 2);
}
@@ -3922,7 +3915,7 @@ void tst_QWebEnginePage::requestedUrlAfterSetAndLoadFailures()
const QUrl first("http://abcdef.abcdef/");
page.setUrl(first);
- ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+ QVERIFY(spy.wait());
QCOMPARE(spy.count(), 1);
QCOMPARE(page.url(), first);
QCOMPARE(page.requestedUrl(), first);
@@ -3932,7 +3925,7 @@ void tst_QWebEnginePage::requestedUrlAfterSetAndLoadFailures()
QVERIFY(first != second);
page.load(second);
- ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+ QVERIFY(spy.wait());
QCOMPARE(spy.count(), 2);
QCOMPARE(page.url(), first);
QCOMPARE(page.requestedUrl(), second);
@@ -3941,13 +3934,13 @@ void tst_QWebEnginePage::requestedUrlAfterSetAndLoadFailures()
void tst_QWebEnginePage::asyncAndDelete()
{
- QWebEnginePage *page = new QWebEnginePage;
+ QScopedPointer<QWebEnginePage> page(new QWebEnginePage);
CallbackSpy<QString> plainTextSpy;
CallbackSpy<QString> htmlSpy;
page->toPlainText(plainTextSpy.ref());
page->toHtml(htmlSpy.ref());
- delete page;
+ page.reset();
// Pending callbacks should be called with an empty value in the page's destructor.
QCOMPARE(plainTextSpy.waitForResult(), QString());
QVERIFY(plainTextSpy.wasCalled());
@@ -4016,14 +4009,15 @@ void tst_QWebEnginePage::setHtmlWithStylesheetResource()
QWebEngineElement webElement;
page.setHtml(html, QUrl(QLatin1String("qrc:///file")));
- waitForSignal(&page, SIGNAL(loadFinished(bool)), 200);
+ QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait(200));
webElement = page.documentElement().findFirst("p");
QCOMPARE(webElement.styleProperty("color", QWebEngineElement::CascadedStyle), QLatin1String("red"));
// Now we test the opposite: without a baseUrl as a local file, we cannot request local resources.
page.setHtml(html, QUrl(QLatin1String("http://www.example.com/")));
- waitForSignal(&page, SIGNAL(loadFinished(bool)), 200);
+ QVERIFY(spyFinished.wait(200));
webElement = page.documentElement().findFirst("p");
QEXPECT_FAIL("", "https://bugs.webkit.org/show_bug.cgi?id=118659", Continue);
QCOMPARE(webElement.styleProperty("color", QWebEngineElement::CascadedStyle), QString());
@@ -4048,7 +4042,8 @@ void tst_QWebEnginePage::setHtmlWithBaseURL()
QSignalSpy spy(&page, SIGNAL(loadFinished(bool)));
page.setHtml(html, QUrl::fromLocalFile(TESTS_SOURCE_DIR));
- waitForSignal(&page, SIGNAL(loadFinished(bool)));
+ QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait());
QCOMPARE(spy.count(), 1);
QCOMPARE(evaluateJavaScriptSync(&page, "document.images.length").toInt(), 1);
@@ -4079,7 +4074,8 @@ void tst_QWebEnginePage::setHtmlWithJSAlert()
QString html("<html><head></head><body><script>alert('foo');</script><p>hello world</p></body></html>");
MyPage page;
page.setHtml(html, QUrl(QStringLiteral("http://test.origin.com/path#fragment")));
- waitForSignal(&page, SIGNAL(loadFinished(bool)));
+ QSignalSpy spyFinished(&page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait());
QCOMPARE(page.alerts, 1);
QCOMPARE(toHtmlSync(&page), html);
}
@@ -4259,9 +4255,9 @@ void tst_QWebEnginePage::scrollbarsOff()
"</body>");
- QSignalSpy loadSpy(&view, SIGNAL(loadFinished(bool)));
+ QSignalSpy loadSpy(&view, &QWebEngineView::loadFinished);
view.setHtml(html);
- ::waitForSignal(&view, SIGNAL(loadFinished(bool)), 200);
+ QVERIFY(loadSpy.wait(200);
QCOMPARE(loadSpy.count(), 1);
mainFrame->evaluateJavaScript("checkScrollbar();");
@@ -4327,7 +4323,8 @@ void tst_QWebEnginePage::evaluateWillCauseRepaint()
QTRY_COMPARE(loadSpy.count(), 1);
evaluateJavaScriptSync(view.page(), "document.getElementById('junk').style.display = 'none';");
- ::waitForSignal(&view, SIGNAL(repaintRequested()));
+ QSignalSpy repaintSpy(&view, &WebView::repaintRequested);
+ QVERIFY(repaintSpy.wait());
}
void tst_QWebEnginePage::setContent_data()
@@ -4441,7 +4438,7 @@ void tst_QWebEnginePage::setUrlToEmpty()
// Set existing url
page.setUrl(url);
expectedLoadFinishedCount++;
- ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
+ QVERIFY(spy.wait());
QCOMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(page.url(), url);
@@ -4602,7 +4599,8 @@ void tst_QWebEnginePage::setUrlUsingStateObject()
url = QUrl("qrc:/resources/test1.html");
m_page->setUrl(url);
- waitForSignal(m_page, SIGNAL(loadFinished(bool)));
+ QSignalSpy spyFinished(m_page, &QWebEnginePage::loadFinished);
+ QVERIFY(spyFinished.wait());
expectedUrlChangeCount++;
QCOMPARE(urlChangedSpy.count(), expectedUrlChangeCount);
QCOMPARE(m_page->url(), url);
@@ -4802,39 +4800,37 @@ void tst_QWebEnginePage::loadInSignalHandlers()
URLSetter setter(m_page, signal, type, urlForSetter);
m_page->load(url);
- waitForSignal(&setter, SIGNAL(finished()));
+ QSignalSpy spy(&setter, &URLSetter::finished);
+ QVERIFY(spy.wait());
QCOMPARE(m_page->url(), urlForSetter);
}
void tst_QWebEnginePage::restoreHistory()
{
- QWebChannel *channel = new QWebChannel;
- QWebEnginePage *page = new QWebEnginePage;
- page->setWebChannel(channel);
+ QWebChannel channel;
+ QWebEnginePage page;
+ page.setWebChannel(&channel);
QWebEngineScript script;
script.setName(QStringLiteral("script"));
- page->scripts().insert(script);
+ page.scripts().insert(script);
- QSignalSpy spy(page, SIGNAL(loadFinished(bool)));
- page->load(QUrl(QStringLiteral("qrc:/resources/test1.html")));
+ QSignalSpy spy(&page, SIGNAL(loadFinished(bool)));
+ page.load(QUrl(QStringLiteral("qrc:/resources/test1.html")));
QTRY_COMPARE(spy.count(), 1);
- QCOMPARE(page->webChannel(), channel);
- QVERIFY(page->scripts().contains(script));
+ QCOMPARE(page.webChannel(), &channel);
+ QVERIFY(page.scripts().contains(script));
QByteArray data;
QDataStream out(&data, QIODevice::ReadWrite);
- out << *page->history();
+ out << *page.history();
QDataStream in(&data, QIODevice::ReadOnly);
- in >> *page->history();
+ in >> *page.history();
QTRY_COMPARE(spy.count(), 2);
- QCOMPARE(page->webChannel(), channel);
- QVERIFY(page->scripts().contains(script));
-
- delete page;
- delete channel;
+ QCOMPARE(page.webChannel(), &channel);
+ QVERIFY(page.scripts().contains(script));
}
void tst_QWebEnginePage::toPlainTextLoadFinishedRace_data()
@@ -4848,33 +4844,33 @@ void tst_QWebEnginePage::toPlainTextLoadFinishedRace()
{
QFETCH(bool, enableErrorPage);
- QWebEnginePage *page = new QWebEnginePage;
+ QScopedPointer<QWebEnginePage> page(new QWebEnginePage);
page->settings()->setAttribute(QWebEngineSettings::ErrorPageEnabled, enableErrorPage);
- QSignalSpy spy(page, SIGNAL(loadFinished(bool)));
+ QSignalSpy spy(page.data(), SIGNAL(loadFinished(bool)));
page->load(QUrl("data:text/plain,foobarbaz"));
QTRY_VERIFY(spy.count() == 1);
- QCOMPARE(toPlainTextSync(page), QString("foobarbaz"));
+ QCOMPARE(toPlainTextSync(page.data()), QString("foobarbaz"));
page->load(QUrl("fail:unknown/scheme"));
QTRY_VERIFY(spy.count() == 2);
- QString s = toPlainTextSync(page);
+ QString s = toPlainTextSync(page.data());
QVERIFY(s.contains("foobarbaz") == !enableErrorPage);
page->load(QUrl("data:text/plain,lalala"));
QTRY_VERIFY(spy.count() == 3);
- QCOMPARE(toPlainTextSync(page), QString("lalala"));
- delete page;
+ QCOMPARE(toPlainTextSync(page.data()), QString("lalala"));
+ page.reset();
QVERIFY(spy.count() == 3);
}
void tst_QWebEnginePage::setZoomFactor()
{
- QWebEnginePage *page = new QWebEnginePage;
+ QWebEnginePage page;
- QVERIFY(qFuzzyCompare(page->zoomFactor(), 1.0));
- page->setZoomFactor(2.5);
- QVERIFY(qFuzzyCompare(page->zoomFactor(), 2.5));
+ QVERIFY(qFuzzyCompare(page.zoomFactor(), 1.0));
+ page.setZoomFactor(2.5);
+ QVERIFY(qFuzzyCompare(page.zoomFactor(), 2.5));
const QUrl urlToLoad("qrc:/resources/test1.html");
@@ -4882,19 +4878,20 @@ void tst_QWebEnginePage::setZoomFactor()
m_page->setUrl(urlToLoad);
QTRY_COMPARE(finishedSpy.count(), 1);
QVERIFY(finishedSpy.at(0).first().toBool());
- QVERIFY(qFuzzyCompare(page->zoomFactor(), 2.5));
+ QVERIFY(qFuzzyCompare(page.zoomFactor(), 2.5));
- page->setZoomFactor(5.5);
- QVERIFY(qFuzzyCompare(page->zoomFactor(), 2.5));
+ page.setZoomFactor(5.5);
+ QVERIFY(qFuzzyCompare(page.zoomFactor(), 2.5));
- page->setZoomFactor(0.1);
- QVERIFY(qFuzzyCompare(page->zoomFactor(), 2.5));
-
- delete page;
+ page.setZoomFactor(0.1);
+ QVERIFY(qFuzzyCompare(page.zoomFactor(), 2.5));
}
void tst_QWebEnginePage::printToPdf()
{
+#if !defined(QWEBENGINEPAGE_PDFPRINTINGENABLED)
+ QSKIP("QWEBENGINEPAGE_PDFPRINTINGENABLED");
+#else
QTemporaryDir tempDir(QDir::tempPath() + "/tst_qwebengineview-XXXXXX");
QVERIFY(tempDir.isValid());
QWebEnginePage page;
@@ -4922,14 +4919,15 @@ void tst_QWebEnginePage::printToPdf()
CallbackSpy<QByteArray> failedInvalidLayoutSpy;
page.printToPdf(failedInvalidLayoutSpy.ref(), QPageLayout());
QCOMPARE(failedInvalidLayoutSpy.waitForResult().length(), 0);
+#endif
}
void tst_QWebEnginePage::mouseButtonTranslation()
{
- QWebEngineView *view = new QWebEngineView;
+ QWebEngineView view;
- QSignalSpy spy(view, SIGNAL(loadFinished(bool)));
- view->setHtml(QStringLiteral(
+ QSignalSpy spy(&view, SIGNAL(loadFinished(bool)));
+ view.setHtml(QStringLiteral(
"<html><head><script>\
var lastEvent = { 'button' : -1 }; \
function saveLastEvent(event) { console.log(event); lastEvent = event; }; \
@@ -4938,25 +4936,23 @@ void tst_QWebEnginePage::mouseButtonTranslation()
<div style=\"height:600px;\" onmousedown=\"saveLastEvent(event)\">\
</div>\
</body></html>"));
- view->show();
- QTest::qWaitForWindowExposed(view);
+ view.show();
+ QTest::qWaitForWindowExposed(&view);
QTRY_VERIFY(spy.count() == 1);
- QVERIFY(view->focusProxy() != nullptr);
-
- QMouseEvent evpres(QEvent::MouseButtonPress, view->rect().center(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
- QGuiApplication::sendEvent(view->focusProxy(), &evpres);
+ QVERIFY(view.focusProxy() != nullptr);
- QTRY_COMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.button").toInt(), 0);
- QCOMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.buttons").toInt(), 1);
+ QMouseEvent evpres(QEvent::MouseButtonPress, view.rect().center(), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
+ QGuiApplication::sendEvent(view.focusProxy(), &evpres);
- QMouseEvent evpres2(QEvent::MouseButtonPress, view->rect().center(), Qt::RightButton, Qt::LeftButton | Qt::RightButton, Qt::NoModifier);
- QGuiApplication::sendEvent(view->focusProxy(), &evpres2);
+ QTRY_COMPARE(evaluateJavaScriptSync(view.page(), "lastEvent.button").toInt(), 0);
+ QCOMPARE(evaluateJavaScriptSync(view.page(), "lastEvent.buttons").toInt(), 1);
- QTRY_COMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.button").toInt(), 2);
- QCOMPARE(evaluateJavaScriptSync(view->page(), "lastEvent.buttons").toInt(), 3);
+ QMouseEvent evpres2(QEvent::MouseButtonPress, view.rect().center(), Qt::RightButton, Qt::LeftButton | Qt::RightButton, Qt::NoModifier);
+ QGuiApplication::sendEvent(view.focusProxy(), &evpres2);
- delete view;
+ QTRY_COMPARE(evaluateJavaScriptSync(view.page(), "lastEvent.button").toInt(), 2);
+ QCOMPARE(evaluateJavaScriptSync(view.page(), "lastEvent.buttons").toInt(), 3);
}
QPoint tst_QWebEnginePage::elementCenter(QWebEnginePage *page, const QString &id)
@@ -5035,20 +5031,18 @@ void tst_QWebEnginePage::viewSourceURL()
QFETCH(QUrl, requestedUrl);
QFETCH(QString, title);
- QWebEnginePage *page = new QWebEnginePage;
- QSignalSpy loadFinishedSpy(page, SIGNAL(loadFinished(bool)));
+ QWebEnginePage page;
+ QSignalSpy loadFinishedSpy(&page, SIGNAL(loadFinished(bool)));
- page->load(userInputUrl);
+ page.load(userInputUrl);
QTRY_COMPARE(loadFinishedSpy.count(), 1);
QList<QVariant> arguments = loadFinishedSpy.takeFirst();
QCOMPARE(arguments.at(0).toBool(), loadSucceed);
- QCOMPARE(page->url(), url);
- QCOMPARE(page->requestedUrl(), requestedUrl);
- QCOMPARE(page->title(), title);
- QVERIFY(!page->action(QWebEnginePage::ViewSource)->isEnabled());
-
- delete page;
+ QCOMPARE(page.url(), url);
+ QCOMPARE(page.requestedUrl(), requestedUrl);
+ QCOMPARE(page.title(), title);
+ QVERIFY(!page.action(QWebEnginePage::ViewSource)->isEnabled());
}
QTEST_MAIN(tst_QWebEnginePage)