diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2016-05-24 17:08:09 +0200 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2016-07-13 21:12:03 +0000 |
commit | 89319455c36d48fe46a8501edd3c174c1de291fb (patch) | |
tree | 8ba7c33284a0b973090eb5de322ef466a859fbcf /tests/auto/widgets/qwebengineview | |
parent | 9bb9076c50048913075f11692f784ebb959d63cf (diff) |
Fix changing locale of ResourceBundle on Linux
The ResourceBundle is not re-initialized for new Renderer Processes
because it is initialized only once in Zygote Process. This means runtime
locale changes do not affect new Renderer Processes. Zygote Process is
supported on Linux only thus other platforms don't need this fix.
With this change the locale of the ResourceBundle is reloaded when
new Renderer Process is started. For accessing the pak file of the locale
in the sandboxed environment the file descriptor is passed via the Chromium's
GlobalDescriptor solution.
Task-number: QTBUG-53000
Change-Id: I57e84078db9d0795d16d930aa1b3e93a6e86ec39
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'tests/auto/widgets/qwebengineview')
-rw-r--r-- | tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp index 52a696d66..e3ca30ef5 100644 --- a/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp +++ b/tests/auto/widgets/qwebengineview/tst_qwebengineview.cpp @@ -74,6 +74,8 @@ private Q_SLOTS: void doNotSendMouseKeyboardEventsWhenDisabled_data(); void stopSettingFocusWhenDisabled(); void stopSettingFocusWhenDisabled_data(); + + void changeLocale(); }; // This will be called before the first test function is executed. @@ -741,5 +743,35 @@ void tst_QWebEngineView::stopSettingFocusWhenDisabled_data() QTest::newRow("disabled view does not get focus") << false << false; } +void tst_QWebEngineView::changeLocale() +{ + QUrl url("http://non.existent/"); + + QLocale::setDefault(QLocale("de")); + QWebEngineView viewDE; + viewDE.setUrl(url); + + QVERIFY(waitForSignal(&viewDE, SIGNAL(titleChanged(QString)))); + QVERIFY(waitForSignal(&viewDE, SIGNAL(loadFinished(bool)))); + QCOMPARE(viewDE.title(), QStringLiteral("Nicht verf\u00FCgbar: %1").arg(url.toString())); + + QLocale::setDefault(QLocale("en")); + QWebEngineView viewEN; + viewEN.setUrl(url); + + QVERIFY(waitForSignal(&viewEN, SIGNAL(titleChanged(QString)))); + QVERIFY(waitForSignal(&viewEN, SIGNAL(loadFinished(bool)))); + QCOMPARE(viewEN.title(), QStringLiteral("%1 is not available").arg(url.toString())); + + viewDE.setUrl(QUrl("about:blank")); + QVERIFY(waitForSignal(&viewDE, SIGNAL(loadFinished(bool)))); + + viewDE.setUrl(url); + + QVERIFY(waitForSignal(&viewDE, SIGNAL(titleChanged(QString)))); + QVERIFY(waitForSignal(&viewDE, SIGNAL(loadFinished(bool)))); + QCOMPARE(viewDE.title(), QStringLiteral("Nicht verf\u00FCgbar: %1").arg(url.toString())); +} + QTEST_MAIN(tst_QWebEngineView) #include "tst_qwebengineview.moc" |