diff options
-rw-r--r-- | src/corelib/io/qurl.cpp | 2 | ||||
-rw-r--r-- | tests/auto/corelib/io/qurl/tst_qurl.cpp | 12 |
2 files changed, 10 insertions, 4 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp index b009073848..ff1f7ba78c 100644 --- a/src/corelib/io/qurl.cpp +++ b/src/corelib/io/qurl.cpp @@ -563,7 +563,7 @@ inline void QUrlPrivate::appendAuthority(QString &appendTo, QUrl::FormattingOpti inline void QUrlPrivate::appendUserInfo(QString &appendTo, QUrl::FormattingOptions options, Section appendingTo) const { - if (Q_LIKELY(userName.isEmpty() && password.isEmpty())) + if (Q_LIKELY(!hasUserInfo())) return; const ushort *userNameActions; diff --git a/tests/auto/corelib/io/qurl/tst_qurl.cpp b/tests/auto/corelib/io/qurl/tst_qurl.cpp index f94b0441f8..8b4908f977 100644 --- a/tests/auto/corelib/io/qurl/tst_qurl.cpp +++ b/tests/auto/corelib/io/qurl/tst_qurl.cpp @@ -2991,15 +2991,21 @@ void tst_QUrl::setComponents_data() QTest::newRow("userinfo-empty") << QUrl("http://user:pass@example.com") << int(UserInfo) << "" << Tolerant << true << PrettyDecoded << "" << "http://@example.com"; + QTest::newRow("userinfo-colon") << QUrl("http://user@example.com") + << int(UserInfo) << ":" << Tolerant << true + << PrettyDecoded << ":" << "http://:@example.com"; QTest::newRow("username-null") << QUrl("http://user@example.com") << int(UserName) << QString() << Tolerant << true << PrettyDecoded << QString() << "http://example.com"; QTest::newRow("username-empty") << QUrl("http://user@example.com") << int(UserName) << "" << Tolerant << true << PrettyDecoded << "" << "http://@example.com"; - QTest::newRow("username-empty-path-nonempty") << QUrl("http://user:pass@example.com") - << int(UserName) << "" << Tolerant << true - << PrettyDecoded << "" << "http://:pass@example.com"; + QTest::newRow("username-empty-password-nonempty") << QUrl("http://user:pass@example.com") + << int(UserName) << "" << Tolerant << true + << PrettyDecoded << "" << "http://:pass@example.com"; + QTest::newRow("username-empty-password-empty") << QUrl("http://user:@example.com") + << int(UserName) << "" << Tolerant << true + << PrettyDecoded << "" << "http://:@example.com"; QTest::newRow("password-null") << QUrl("http://user:pass@example.com") << int(Password) << QString() << Tolerant << true << PrettyDecoded << QString() << "http://user@example.com"; |