From 5e572e88efa7ba7c2b9138ec19e606d3e345ac90 Mon Sep 17 00:00:00 2001
From: Szabolcs David <davidsz@inf.u-szeged.hu>
Date: Mon, 29 Sep 2014 02:10:05 -0700
Subject: [PATCH] Fix WebEngineSettings::setDefaultTextEncoding()

Add the missing default_encoding to the web preferences.

Use a 0ms timer instead of the 100ms in order to apply the settings
as soon as possible and avoid waiting mechanisms in the test.

Change-Id: I12f1a6dd68b29c2b287b160eea1ad5a5fb169c14
Reviewed-by: Zeno Albisser <zeno.albisser@digia.com>
---
 src/core/web_engine_settings.cpp                         | 3 ++-
 tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp | 8 +++-----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/core/web_engine_settings.cpp b/src/core/web_engine_settings.cpp
index 363cd9c6a..03f746f41 100644
--- a/src/core/web_engine_settings.cpp
+++ b/src/core/web_engine_settings.cpp
@@ -44,7 +44,7 @@
 #include <QTimer>
 #include <QTouchDevice>
 
-static const int batchTimerTimeout = 100;
+static const int batchTimerTimeout = 0;
 
 class BatchTimer : public QTimer {
     Q_OBJECT
@@ -290,4 +290,5 @@ void WebEngineSettings::applySettingsToWebPreferences(WebPreferences *prefs)
     prefs->default_fixed_font_size = fontSize(DefaultFixedFontSize);
     prefs->minimum_font_size = fontSize(MinimumFontSize);
     prefs->minimum_logical_font_size = fontSize(MinimumLogicalFontSize);
+    prefs->default_encoding = defaultTextEncoding().toStdString();
 }
diff --git a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
index d098d8e73..b6d3f14c5 100644
--- a/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
+++ b/tests/auto/widgets/qwebenginepage/tst_qwebenginepage.cpp
@@ -2706,29 +2706,27 @@ void tst_QWebEnginePage::testEnablePersistentStorage()
 
 void tst_QWebEnginePage::defaultTextEncoding()
 {
-#if !defined(QWEBENGINESETTINGS_SETDEFAULTTEXTENCODING)
-    QSKIP("QWEBENGINESETTINGS_SETDEFAULTTEXTENCODING");
-#else
-
     QString defaultCharset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QVERIFY(!defaultCharset.isEmpty());
     QCOMPARE(QWebEngineSettings::globalSettings()->defaultTextEncoding(), defaultCharset);
 
     m_page->settings()->setDefaultTextEncoding(QString("utf-8"));
+    QCoreApplication::processEvents();
     QString charset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QCOMPARE(charset, QString("utf-8"));
     QCOMPARE(m_page->settings()->defaultTextEncoding(), charset);
 
     m_page->settings()->setDefaultTextEncoding(QString());
+    QCoreApplication::processEvents();
     charset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QVERIFY(!charset.isEmpty());
     QCOMPARE(charset, defaultCharset);
 
     QWebEngineSettings::globalSettings()->setDefaultTextEncoding(QString("utf-8"));
+    QCoreApplication::processEvents();
     charset = evaluateJavaScriptSync(m_page, "document.defaultCharset").toString();
     QCOMPARE(charset, QString("utf-8"));
     QCOMPARE(QWebEngineSettings::globalSettings()->defaultTextEncoding(), charset);
-#endif
 }
 
 #if defined(QWEBENGINEPAGE_ERRORPAGEEXTENSION)
-- 
GitLab