summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io/qurl/tst_qurl.cpp
diff options
context:
space:
mode:
authorDavid Faure <david.faure@kdab.com>2020-06-26 11:06:49 +0200
committerDavid Faure <david.faure@kdab.com>2020-06-29 16:45:31 +0200
commiteb546469849d2bf560f41b14366832e1f8b22456 (patch)
treed857134211ab98514df344ff3beb98e1c13645f6 /tests/auto/corelib/io/qurl/tst_qurl.cpp
parent76f45e6e972f6fdf26102a685ab9205c04ee9172 (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.cpp28
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()
{