summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2012-04-25 12:48:02 +0200
committerQt by Nokia <qt-info@nokia.com>2012-04-25 14:58:36 +0200
commit61598703487e893e5fae2030097bde941a6a3b54 (patch)
tree53a591feebb6e1ec33d6346ea9c6b3875fab947e
parent0df1c9f1fa04c06d6105de3f312c6c752a58ad70 (diff)
Revert QUrl::isRelative to its Qt 4 behaviour
Instead of trying to return whether the URL is relative to something undefined, let's instead follow what the documentation was saying all along and what the RFC says about "Relative References". Change-Id: I32722321a6b36c6e3480669ad769390e4c6f7d1c Reviewed-by: Lars Knoll <lars.knoll@nokia.com>
-rw-r--r--src/corelib/io/qurl.cpp10
-rw-r--r--tests/auto/corelib/io/qurl/tst_qurl.cpp2
2 files changed, 7 insertions, 5 deletions
diff --git a/src/corelib/io/qurl.cpp b/src/corelib/io/qurl.cpp
index 5cc49c8192..44160b3d8b 100644
--- a/src/corelib/io/qurl.cpp
+++ b/src/corelib/io/qurl.cpp
@@ -2076,14 +2076,16 @@ QUrl QUrl::resolved(const QUrl &relative) const
}
/*!
- Returns true if the URL is relative; otherwise returns false. A
- URL is relative if its scheme is undefined; this function is
- therefore equivalent to calling scheme().isEmpty().
+ Returns true if the URL is relative; otherwise returns false. A URL is
+ relative reference if its scheme is undefined; this function is therefore
+ equivalent to calling scheme().isEmpty().
+
+ Relative references are defined in RFC 3986 section 4.2.
*/
bool QUrl::isRelative() const
{
if (!d) return true;
- return !d->hasScheme() && !d->path.startsWith(QLatin1Char('/'));
+ return !d->hasScheme();
}
/*!
diff --git a/tests/auto/corelib/io/qurl/tst_qurl.cpp b/tests/auto/corelib/io/qurl/tst_qurl.cpp
index 2b7a467192..31acd1aaa7 100644
--- a/tests/auto/corelib/io/qurl/tst_qurl.cpp
+++ b/tests/auto/corelib/io/qurl/tst_qurl.cpp
@@ -1621,7 +1621,7 @@ void tst_QUrl::isRelative_data()
QTest::newRow("man: URL, is relative") << "man:mmap" << false;
QTest::newRow("javascript: URL, is relative") << "javascript:doSomething()" << false;
QTest::newRow("file: URL, is relative") << "file:/blah" << false;
- QTest::newRow("/path, is relative") << "/path" << false;
+ QTest::newRow("/path, is relative") << "/path" << true;
QTest::newRow("something, is relative") << "something" << true;
// end kde
}