summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJocelyn Turcotte <jocelyn.turcotte@digia.com>2014-02-04 13:40:23 +0100
committerThe Qt Project <gerrit-noreply@qt-project.org>2014-02-12 17:13:56 +0100
commitabaa3cd246375df0573d5d2e3d5c1ea0b4be613f (patch)
treef29eb17542d4d8b5637c482ffa17b08583a20745 /tests
parentab8cc57c21ab9b8d982728c5945586b562d84255 (diff)
Fix flakiness in tests related to load signals being received while spinning the event loop
Since our sync wrappers spin an event loop, tests that assuming that load signals would only be triggered in the next waitForSignal can fail. Replace ::waitForSignal calls with QTRY_COMPARE/VERIFY on the QSignalSpy::count() instead to support the case where the signal was already emitted before starting the wait. Change-Id: I18246dc643a5280ebfd0b5099af10b10cf6845fe Reviewed-by: Pierre Rossi <pierre.rossi@gmail.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp49
1 files changed, 24 insertions, 25 deletions
diff --git a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
index a163d7e24..e017fc66a 100644
--- a/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
+++ b/tests/auto/widgets/qwebengineframe/tst_qwebengineframe.cpp
@@ -129,6 +129,8 @@ void tst_QWebEngineFrame::cleanup()
void tst_QWebEngineFrame::symmetricUrl()
{
QWebEngineView view;
+ QSignalSpy loadFinishedSpy(view.page(), SIGNAL(loadFinished(bool)));
+
QVERIFY(view.url().isEmpty());
QCOMPARE(view.history()->count(), 0);
@@ -142,7 +144,7 @@ void tst_QWebEngineFrame::symmetricUrl()
// loading is _not_ immediate, so the text isn't set just yet.
QVERIFY(toPlainTextSync(view.page()).isEmpty());
- ::waitForSignal(m_view, SIGNAL(loadFinished(bool)));
+ QTRY_COMPARE(loadFinishedSpy.count(), 1);
QCOMPARE(view.history()->count(), 1);
QCOMPARE(toPlainTextSync(view.page()), QString("Test"));
@@ -155,8 +157,8 @@ void tst_QWebEngineFrame::symmetricUrl()
QCOMPARE(view.url(), dataUrl3);
- ::waitForSignal(&view, SIGNAL(loadFinished(bool)));
- QVERIFY(::waitForSignal(&view, SIGNAL(loadFinished(bool))));
+ QTRY_VERIFY(loadFinishedSpy.count() >= 2);
+ QTRY_COMPARE(loadFinishedSpy.count(), 3);
QCOMPARE(view.history()->count(), 2);
@@ -755,7 +757,9 @@ void tst_QWebEngineFrame::baseUrl()
QFETCH(QUrl, url);
QFETCH(QUrl, baseUrl);
+ QSignalSpy loadSpy(m_page, SIGNAL(loadFinished(bool)));
m_page->setHtml(html, loadUrl);
+ QTRY_COMPARE(loadSpy.count(), 1);
QCOMPARE(m_page->url(), url);
QEXPECT_FAIL("null", "Slight change: We now translate QUrl() to about:blank for the virtual url, but not for the baseUrl", Continue);
QCOMPARE(baseUrlSync(m_page), baseUrl);
@@ -1286,7 +1290,7 @@ void tst_QWebEngineFrame::setUrlToEmpty()
page.setUrl(QUrl());
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(page.url(), aboutBlank);
QCOMPARE(page.requestedUrl(), QUrl());
QCOMPARE(baseUrlSync(&page), aboutBlank);
@@ -1294,9 +1298,8 @@ void tst_QWebEngineFrame::setUrlToEmpty()
// Set existing url
page.setUrl(url);
expectedLoadFinishedCount++;
- ::waitForSignal(&page, SIGNAL(loadFinished(bool)));
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(page.url(), url);
QCOMPARE(page.requestedUrl(), url);
QCOMPARE(baseUrlSync(&page), url);
@@ -1305,7 +1308,7 @@ void tst_QWebEngineFrame::setUrlToEmpty()
page.load(QUrl());
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(page.url(), aboutBlank);
QCOMPARE(page.requestedUrl(), QUrl());
QCOMPARE(baseUrlSync(&page), aboutBlank);
@@ -1350,32 +1353,30 @@ void tst_QWebEngineFrame::setUrlHistory()
m_page->setUrl(QUrl());
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(m_page->url(), aboutBlank);
QCOMPARE(m_page->requestedUrl(), QUrl());
QCOMPARE(m_page->history()->count(), 0);
url = QUrl("http://non.existent/");
m_page->setUrl(url);
- ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), url);
QCOMPARE(m_page->history()->count(), 0);
url = QUrl("qrc:/test1.html");
m_page->setUrl(url);
- ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), url);
QCOMPARE(m_page->history()->count(), 1);
m_page->setUrl(QUrl());
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(m_page->url(), aboutBlank);
QCOMPARE(m_page->requestedUrl(), QUrl());
QCOMPARE(m_page->history()->count(), 1);
@@ -1383,18 +1384,16 @@ void tst_QWebEngineFrame::setUrlHistory()
// Loading same page as current in history, so history count doesn't change.
url = QUrl("qrc:/test1.html");
m_page->setUrl(url);
- ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), url);
QCOMPARE(m_page->history()->count(), 1);
url = QUrl("qrc:/test2.html");
m_page->setUrl(url);
- ::waitForSignal(m_page, SIGNAL(loadFinished(bool)));
expectedLoadFinishedCount++;
- QCOMPARE(spy.count(), expectedLoadFinishedCount);
+ QTRY_COMPARE(spy.count(), expectedLoadFinishedCount);
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), url);
QCOMPARE(m_page->history()->count(), 2);
@@ -1511,8 +1510,8 @@ void tst_QWebEngineFrame::setUrlThenLoads()
m_page->setUrl(url);
QCOMPARE(startedSpy.count(), 1);
- ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl)));
- QCOMPARE(urlChangedSpy.count(), 1);
+ QTRY_COMPARE(urlChangedSpy.count(), 1);
+ QTRY_COMPARE(finishedSpy.count(), 1);
QVERIFY(finishedSpy.at(0).first().toBool());
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), url);
@@ -1523,15 +1522,15 @@ void tst_QWebEngineFrame::setUrlThenLoads()
// Just after first load. URL didn't changed yet.
m_page->load(urlToLoad1);
- QCOMPARE(startedSpy.count(), 2);
+ QTRY_COMPARE(startedSpy.count(), 2);
QCOMPARE(m_page->url(), url);
QCOMPARE(m_page->requestedUrl(), urlToLoad1);
// baseUrlSync spins an event loop and this sometimes return the next result.
// QCOMPARE(baseUrlSync(m_page), baseUrl);
// After first URL changed.
- ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl)));
- QCOMPARE(urlChangedSpy.count(), 2);
+ QTRY_COMPARE(urlChangedSpy.count(), 2);
+ QTRY_COMPARE(finishedSpy.count(), 2);
QVERIFY(finishedSpy.at(1).first().toBool());
QCOMPARE(m_page->url(), urlToLoad1);
QCOMPARE(m_page->requestedUrl(), urlToLoad1);
@@ -1539,14 +1538,14 @@ void tst_QWebEngineFrame::setUrlThenLoads()
// Just after second load. URL didn't changed yet.
m_page->load(urlToLoad2);
- QCOMPARE(startedSpy.count(), 3);
+ QTRY_COMPARE(startedSpy.count(), 3);
QCOMPARE(m_page->url(), urlToLoad1);
QCOMPARE(m_page->requestedUrl(), urlToLoad2);
QCOMPARE(baseUrlSync(m_page), extractBaseUrl(urlToLoad1));
// After second URL changed.
- ::waitForSignal(m_page, SIGNAL(urlChanged(QUrl)));
- QCOMPARE(urlChangedSpy.count(), 3);
+ QTRY_COMPARE(urlChangedSpy.count(), 3);
+ QTRY_COMPARE(finishedSpy.count(), 3);
QVERIFY(finishedSpy.at(2).first().toBool());
QCOMPARE(m_page->url(), urlToLoad2);
QCOMPARE(m_page->requestedUrl(), urlToLoad2);