summaryrefslogtreecommitdiffstats
path: root/tests/auto/corelib/io
diff options
context:
space:
mode:
authorLiang Qi <liang.qi@qt.io>2017-03-02 09:04:38 +0100
committerLiang Qi <liang.qi@qt.io>2017-03-02 09:04:38 +0100
commit71264bae08d81bdeceb96133fdb01c370504dfcc (patch)
treed5dadaac8209d5ef1857a4d65197b9ee12b39848 /tests/auto/corelib/io
parent5e785c0b83c9908c665f253c131629ac325a21f5 (diff)
parent6d10f739cd750968d0dd0e9d8fa4b64353a86c6c (diff)
Merge remote-tracking branch 'origin/5.9' into dev
Diffstat (limited to 'tests/auto/corelib/io')
-rw-r--r--tests/auto/corelib/io/qdir/tst_qdir.cpp2
-rw-r--r--tests/auto/corelib/io/qurl/tst_qurl.cpp74
2 files changed, 47 insertions, 29 deletions
diff --git a/tests/auto/corelib/io/qdir/tst_qdir.cpp b/tests/auto/corelib/io/qdir/tst_qdir.cpp
index 49ee8eb32c..b64de488ed 100644
--- a/tests/auto/corelib/io/qdir/tst_qdir.cpp
+++ b/tests/auto/corelib/io/qdir/tst_qdir.cpp
@@ -353,7 +353,7 @@ void tst_QDir::mkdir_data()
<< QDir::currentPath() + "/testdir/two/three";
QTest::newRow("data0") << dirs.at(0) << true;
QTest::newRow("data1") << dirs.at(1) << false;
- QTest::newRow("data2") << dirs.at(2) << false;
+ QTest::newRow("data2") << dirs.at(2) << false; // note: requires data1 to have been run!
// Ensure that none of these directories already exist
QDir dir;
diff --git a/tests/auto/corelib/io/qurl/tst_qurl.cpp b/tests/auto/corelib/io/qurl/tst_qurl.cpp
index 71a0c943d2..e1a999abfb 100644
--- a/tests/auto/corelib/io/qurl/tst_qurl.cpp
+++ b/tests/auto/corelib/io/qurl/tst_qurl.cpp
@@ -46,6 +46,7 @@ class tst_QUrl : public QObject
Q_OBJECT
private slots:
+ void initTestCase();
void effectiveTLDs_data();
void effectiveTLDs();
void getSetCheck();
@@ -182,8 +183,15 @@ private slots:
private:
void testThreadingHelper();
+
+ QTemporaryDir m_tempDir;
};
+void tst_QUrl::initTestCase()
+{
+ QVERIFY2(m_tempDir.isValid(), qPrintable(m_tempDir.errorString()));
+}
+
// Testing get/set functions
void tst_QUrl::getSetCheck()
{
@@ -3045,49 +3053,59 @@ void tst_QUrl::fromUserInputWithCwd_data()
// Null
QTest::newRow("null") << QString() << QString() << QUrl() << QUrl();
- // Existing file
- QDirIterator it(QDir::currentPath(), QDir::NoDotDot | QDir::AllEntries);
- int c = 0;
- while (it.hasNext()) {
- it.next();
- QUrl url = QUrl::fromLocalFile(it.filePath());
- if (it.fileName() == QLatin1String(".")) {
- url = QUrl::fromLocalFile(QDir::currentPath()
+ // Use a tempdir with files, for testing specific file names
+ // We use canonicalPath() on the dir path because ::getcwd() canonicalizes,
+ // so we get a canonical base path for URLs with "." as working directory.
+ const QString base = QDir(m_tempDir.path()).canonicalPath();
+ QDir::setCurrent(base); // for the tests that use "." as working dir
+
+ // "."
+ {
+ const QUrl url = QUrl::fromLocalFile(base
#ifdef Q_OS_WINRT
+ QLatin1Char('/')
#endif
); // fromUserInput cleans the path
- }
- QTest::newRow(("file-" + QByteArray::number(c)).constData())
- << it.fileName() << QDir::currentPath() << url << url;
- QTest::newRow(("file-" + QByteArray::number(c) + "-dot").constData())
- << it.fileName() << QStringLiteral(".") << url << url;
- ++c;
+ QTest::newRow("dot-in-path") << "." << base << url << url;
+ QTest::newRow("dot-in-dot") << "." << QStringLiteral(".") << url << url;
+ }
+
+ // Existing files
+ for (const char *fileName : {"file.txt", "file#a.txt", "file .txt", "file.txt "}) {
+ const QString filePath = base + '/' + fileName;
+ QFile file(filePath);
+ QVERIFY2(file.open(QIODevice::WriteOnly), qPrintable(filePath));
+ file.write("Hello world\n");
+
+ const QUrl url = QUrl::fromLocalFile(filePath);
+ QTest::newRow(fileName) << fileName << base << url << url;
+ QTest::newRow(QByteArray(fileName) + "-in-dot") << fileName << QStringLiteral(".") << url << url;
}
+
#ifndef Q_OS_WINRT // WinRT cannot cd outside current / sandbox
- QDir parent = QDir::current();
+ QDir parent(base);
QVERIFY(parent.cdUp());
QUrl parentUrl = QUrl::fromLocalFile(parent.path());
- QTest::newRow("dotdot") << ".." << QDir::currentPath() << parentUrl << parentUrl;
+ QTest::newRow("dotdot") << ".." << base << parentUrl << parentUrl;
#endif
- QTest::newRow("nonexisting") << "nonexisting" << QDir::currentPath() << QUrl("http://nonexisting") << QUrl::fromLocalFile(QDir::currentPath() + "/nonexisting");
- QTest::newRow("short-url") << "example.org" << QDir::currentPath() << QUrl("http://example.org") << QUrl::fromLocalFile(QDir::currentPath() + "/example.org");
- QTest::newRow("full-url") << "http://example.org" << QDir::currentPath() << QUrl("http://example.org") << QUrl("http://example.org");
- QTest::newRow("absolute") << "/doesnotexist.txt" << QDir::currentPath() << QUrl("file:///doesnotexist.txt") << QUrl("file:///doesnotexist.txt");
+ QTest::newRow("nonexisting") << "nonexisting" << base << QUrl("http://nonexisting") << QUrl::fromLocalFile(base + "/nonexisting");
+ QTest::newRow("short-url") << "example.org" << base << QUrl("http://example.org") << QUrl::fromLocalFile(base + "/example.org");
+ QTest::newRow("full-url") << "http://example.org" << base << QUrl("http://example.org") << QUrl("http://example.org");
+ QTest::newRow("absolute") << "/doesnotexist.txt" << base << QUrl("file:///doesnotexist.txt") << QUrl("file:///doesnotexist.txt");
#ifdef Q_OS_WIN
- QTest::newRow("windows-absolute") << "c:/doesnotexist.txt" << QDir::currentPath() << QUrl("file:///c:/doesnotexist.txt") << QUrl("file:///c:/doesnotexist.txt");
+ QTest::newRow("windows-absolute") << "c:/doesnotexist.txt" << base << QUrl("file:///c:/doesnotexist.txt") << QUrl("file:///c:/doesnotexist.txt");
#endif
// IPv4 & IPv6
// same as fromUserInput, but needs retesting
- QTest::newRow("ipv4-1") << "127.0.0.1" << QDir::currentPath() << QUrl("http://127.0.0.1") << QUrl::fromLocalFile(QDir::currentPath() + "/127.0.0.1");
- QTest::newRow("ipv6-0") << "::" << QDir::currentPath() << QUrl("http://[::]") << QUrl("http://[::]");
- QTest::newRow("ipv6-1") << "::1" << QDir::currentPath() << QUrl("http://[::1]") << QUrl("http://[::1]");
- QTest::newRow("ipv6-2") << "1::1" << QDir::currentPath() << QUrl("http://[1::1]") << QUrl("http://[1::1]");
- QTest::newRow("ipv6-3") << "1::" << QDir::currentPath() << QUrl("http://[1::]") << QUrl("http://[1::]");
- QTest::newRow("ipv6-4") << "c::" << QDir::currentPath() << QUrl("http://[c::]") << QUrl("http://[c::]");
- QTest::newRow("ipv6-5") << "c:f00:ba4::" << QDir::currentPath() << QUrl("http://[c:f00:ba4::]") << QUrl("http://[c:f00:ba4::]");
+ QTest::newRow("ipv4-1") << "127.0.0.1" << base << QUrl("http://127.0.0.1") << QUrl::fromLocalFile(base + "/127.0.0.1");
+ QTest::newRow("ipv6-0") << "::" << base << QUrl("http://[::]") << QUrl("http://[::]");
+ QTest::newRow("ipv6-1") << "::1" << base << QUrl("http://[::1]") << QUrl("http://[::1]");
+ QTest::newRow("ipv6-2") << "1::1" << base << QUrl("http://[1::1]") << QUrl("http://[1::1]");
+ QTest::newRow("ipv6-3") << "1::" << base << QUrl("http://[1::]") << QUrl("http://[1::]");
+ QTest::newRow("ipv6-4") << "c::" << base << QUrl("http://[c::]") << QUrl("http://[c::]");
+ QTest::newRow("ipv6-5") << "c:f00:ba4::" << base << QUrl("http://[c:f00:ba4::]") << QUrl("http://[c:f00:ba4::]");
}
void tst_QUrl::fromUserInputWithCwd()