diff options
author | Lars Knoll <lars.knoll@digia.com> | 2014-09-01 14:26:51 +0200 |
---|---|---|
committer | Lars Knoll <lars.knoll@digia.com> | 2014-10-29 08:58:31 +0100 |
commit | 38c2e3d1049f494529cb9876bcd564ec20ba512c (patch) | |
tree | daac8ed0a17d8c2b38ea20006cb48647ff75d98a /tests/auto/corelib/io | |
parent | ad1ec8b57dde6f5cbb7a4f66272794a067dc3917 (diff) |
Properly detect UTF-8 BOM markers in ini files
If we detect a utf8 BOM mark at the beginning of the .ini
file, skip the marker and set the iniCodec to utf8.
Task-number: QTBUG-23381
Change-Id: I1b37fc4f1638a48e4f3ee71ab165e2989bc592f1
Reviewed-by: Jędrzej Nowacki <jedrzej.nowacki@digia.com>
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r-- | tests/auto/corelib/io/qsettings/bom.ini | 4 | ||||
-rw-r--r-- | tests/auto/corelib/io/qsettings/qsettings.qrc | 17 | ||||
-rw-r--r-- | tests/auto/corelib/io/qsettings/tst_qsettings.cpp | 10 |
3 files changed, 23 insertions, 8 deletions
diff --git a/tests/auto/corelib/io/qsettings/bom.ini b/tests/auto/corelib/io/qsettings/bom.ini new file mode 100644 index 0000000000..8d46ee8d91 --- /dev/null +++ b/tests/auto/corelib/io/qsettings/bom.ini @@ -0,0 +1,4 @@ +[section1] +foo1=bar1 +[section2] +foo2=bar2 diff --git a/tests/auto/corelib/io/qsettings/qsettings.qrc b/tests/auto/corelib/io/qsettings/qsettings.qrc index 587c22ebe3..c0be7e013f 100644 --- a/tests/auto/corelib/io/qsettings/qsettings.qrc +++ b/tests/auto/corelib/io/qsettings/qsettings.qrc @@ -1,9 +1,10 @@ -<!DOCTYPE RCC><RCC version="1.0"> -<qresource> - <file>resourcefile.ini</file> - <file>resourcefile2.ini</file> - <file>resourcefile3.ini</file> - <file>resourcefile4.ini</file> - <file>resourcefile5.ini</file> -</qresource> +<RCC> + <qresource prefix="/"> + <file>resourcefile.ini</file> + <file>resourcefile2.ini</file> + <file>resourcefile3.ini</file> + <file>resourcefile4.ini</file> + <file>resourcefile5.ini</file> + <file>bom.ini</file> + </qresource> </RCC> diff --git a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp index 3e68e4859f..c89923f159 100644 --- a/tests/auto/corelib/io/qsettings/tst_qsettings.cpp +++ b/tests/auto/corelib/io/qsettings/tst_qsettings.cpp @@ -161,6 +161,7 @@ private slots: void testByteArray_data(); void testByteArray(); void iniCodec(); + void bom(); private: const bool m_canWriteNativeSystemSettings; @@ -730,6 +731,15 @@ void tst_QSettings::iniCodec() } +void tst_QSettings::bom() +{ + QSettings s(":/bom.ini", QSettings::IniFormat); + QStringList allkeys = s.allKeys(); + QCOMPARE(allkeys.size(), 2); + QVERIFY(allkeys.contains("section1/foo1")); + QVERIFY(allkeys.contains("section2/foo2")); +} + void tst_QSettings::testErrorHandling_data() { QTest::addColumn<int>("filePerms"); // -1 means file should not exist |