diff options
author | David Faure <david.faure@kdab.com> | 2020-06-26 11:06:49 +0200 |
---|---|---|
committer | David Faure <david.faure@kdab.com> | 2020-06-29 16:45:31 +0200 |
commit | eb546469849d2bf560f41b14366832e1f8b22456 (patch) | |
tree | d857134211ab98514df344ff3beb98e1c13645f6 /tests/auto/corelib/io/qurl/tst_qurl.cpp | |
parent | 76f45e6e972f6fdf26102a685ab9205c04ee9172 (diff) |
Fix QUrl::toDisplayString(PreferLocalFile) returning an encoded path
It's supposed to return the same as toLocalFile(), for local files,
which means passing QUrl::FullyDecoded just like QUrl::toLocalFile()
does.
But a few code paths were testing component formatting options without masking
other FormattingOptions like RemovePassword, so this had to be fixed.
Fixes: QTBUG-84594
Change-Id: I82f15148b6d93516200f9ad6258d474e7f10924a
Reviewed-by: Thiago Macieira <thiago.macieira@intel.com>
Diffstat (limited to 'tests/auto/corelib/io/qurl/tst_qurl.cpp')
-rw-r--r-- | tests/auto/corelib/io/qurl/tst_qurl.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/auto/corelib/io/qurl/tst_qurl.cpp b/tests/auto/corelib/io/qurl/tst_qurl.cpp index 26b740ae20..bcf6c51f73 100644 --- a/tests/auto/corelib/io/qurl/tst_qurl.cpp +++ b/tests/auto/corelib/io/qurl/tst_qurl.cpp @@ -67,6 +67,8 @@ private slots: void toString_PreferLocalFile(); void toString_constructed_data(); void toString_constructed(); + void toDisplayString_PreferLocalFile_data(); + void toDisplayString_PreferLocalFile(); void toAndFromStringList_data(); void toAndFromStringList(); void isParentOf_data(); @@ -1207,6 +1209,32 @@ void tst_QUrl::toString_constructed() QCOMPARE(url.toEncoded(formattingOptions), asEncoded); } +void tst_QUrl::toDisplayString_PreferLocalFile_data() +{ + QTest::addColumn<QUrl>("url"); + QTest::addColumn<QString>("string"); + + QTest::newRow("basic") << QUrl::fromLocalFile("/home/charles/foomoo") + << QString::fromLatin1("/home/charles/foomoo"); + QTest::newRow("with%") << QUrl::fromLocalFile("/home/charles/foo%20moo") + << QString::fromLatin1("/home/charles/foo%20moo"); + QTest::newRow("non-local") << QUrl("file://host/foo") + << QString::fromLatin1("//host/foo"); + QTest::newRow("query-and-fragment") << QUrl("file://user:pass@example.org/a?b=c%20d%23e#frag%23ment") + << QString::fromLatin1("file://user@example.org/a?b=c d%23e#frag%23ment"); + QTest::newRow("http") << QUrl("http://user:pass@example.org/a?b=c%20d%23e#frag%23ment") + << QString::fromLatin1("http://user@example.org/a?b=c d%23e#frag%23ment"); +} + +void tst_QUrl::toDisplayString_PreferLocalFile() +{ + QFETCH(QUrl, url); + QFETCH(QString, string); + + if (url.isLocalFile() && url.query().isEmpty() && url.fragment().isEmpty()) + QCOMPARE(url.toLocalFile(), string); + QCOMPARE(url.toDisplayString(QUrl::PreferLocalFile), string); +} void tst_QUrl::isParentOf() { |