From 78d8985c6bdb7bf9d04fa5e6936aadab5174c6d2 Mon Sep 17 00:00:00 2001 From: Peter Varga Date: Wed, 15 Feb 2017 11:49:25 +0100 Subject: Rework change locale tests for 55-based Chromium Error pages no longer have useful titles in Chromium 55. Test the error page content instead. Tests have been also stabilized. Task-number: QTBUG-58022 Change-Id: If5c3e2b1df2cb3ee8b48d651e6f19360fa484f17 Reviewed-by: Allan Sandfeld Jensen --- .../widgets/qwebengineview/tst_qwebengineview.cpp | 50 ++++++++++++---------- 1 file changed, 27 insertions(+), 23 deletions(-) (limited to 'tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp') diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 3b683e541..8057b5beb 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -865,37 +865,41 @@ void tst_QWebEngineView::focusOnNavigation() void tst_QWebEngineView::changeLocale() { - QSKIP("Error pages no longer have useful titles in Chromium 55"); + QStringList errorLines; QUrl url("http://non.existent/"); QLocale::setDefault(QLocale("de")); QWebEngineView viewDE; - viewDE.setUrl(url); + QSignalSpy loadFinishedSpyDE(&viewDE, SIGNAL(loadFinished(bool))); + viewDE.load(url); + QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpyDE.count(), 1, 12000); - QSignalSpy spyTitleChangedDE(&viewDE, &QWebEngineView::titleChanged); - QVERIFY(spyTitleChangedDE.wait()); - QSignalSpy spyFinishedDE(&viewDE, &QWebEngineView::loadFinished); - QVERIFY(spyFinishedDE.wait()); - QCOMPARE(viewDE.title(), QStringLiteral("Nicht verf\u00FCgbar: %1").arg(url.toString())); + QTRY_VERIFY(!toPlainTextSync(viewDE.page()).isEmpty()); + errorLines = toPlainTextSync(viewDE.page()).split(QRegExp("[\r\n]"), QString::SkipEmptyParts); + QCOMPARE(errorLines.first(), QStringLiteral("Diese Website ist nicht erreichbar")); QLocale::setDefault(QLocale("en")); QWebEngineView viewEN; - viewEN.setUrl(url); - - QSignalSpy spyTitleChangedEN(&viewEN, &QWebEngineView::titleChanged); - QVERIFY(spyTitleChangedEN.wait()); - QSignalSpy spyFinishedEN(&viewEN, &QWebEngineView::loadFinished); - QVERIFY(spyFinishedEN.wait()); - QCOMPARE(viewEN.title(), QStringLiteral("%1 is not available").arg(url.toString())); - - viewDE.setUrl(QUrl("about:blank")); - QVERIFY(spyFinishedDE.wait()); - - viewDE.setUrl(url); - - QVERIFY(spyTitleChangedDE.wait()); - QVERIFY(spyFinishedDE.wait()); - QCOMPARE(viewDE.title(), QStringLiteral("Nicht verf\u00FCgbar: %1").arg(url.toString())); + QSignalSpy loadFinishedSpyEN(&viewEN, SIGNAL(loadFinished(bool))); + viewEN.load(url); + QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpyEN.count(), 1, 12000); + + QTRY_VERIFY(!toPlainTextSync(viewEN.page()).isEmpty()); + errorLines = toPlainTextSync(viewEN.page()).split(QRegExp("[\r\n]"), QString::SkipEmptyParts); + QCOMPARE(errorLines.first(), QStringLiteral("This site can\u2019t be reached")); + + // Reset error page + viewDE.load(QUrl("about:blank")); + QVERIFY(loadFinishedSpyDE.wait()); + loadFinishedSpyDE.clear(); + + // Check whether an existing QWebEngineView keeps the language settings after changing the default locale + viewDE.load(url); + QTRY_COMPARE_WITH_TIMEOUT(loadFinishedSpyDE.count(), 1, 12000); + + QTRY_VERIFY(!toPlainTextSync(viewDE.page()).isEmpty()); + errorLines = toPlainTextSync(viewDE.page()).split(QRegExp("[\r\n]"), QString::SkipEmptyParts); + QCOMPARE(errorLines.first(), QStringLiteral("Diese Website ist nicht erreichbar")); } void tst_QWebEngineView::inputMethodsTextFormat_data() -- cgit v1.2.3