summaryrefslogtreecommitdiffstats
path: root/tests/auto/qdir
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2011-03-09 18:46:08 (GMT)
committerJoão Abecasis <joao.abecasis@nokia.com>2011-03-18 11:09:04 (GMT)
commitc7748b7838522ec38ec01423f1267acf1f163606 (patch)
tree5dc7dab7b4743dfea0cec406d20a6d86466038ac /tests/auto/qdir
parent5134b700b7311e39b25bd783f213e374de5efaaa (diff)
downloadQt-c7748b7838522ec38ec01423f1267acf1f163606.zip
Qt-c7748b7838522ec38ec01423f1267acf1f163606.tar.gz
Qt-c7748b7838522ec38ec01423f1267acf1f163606.tar.bz2
QDir: Fix absolute paths when using file engines
QFileSystemEntry doesn't know about paths as implemented by custom file engines, such as is the case with resource files. In such cases, we need to allow the engine to make the relative to absolute conversion. Expanded QDir's test case to ensure resource paths are considered in more places. Task-number: QTBUG-17921 Reviewed-by: Prasanth Ullattil
Diffstat (limited to 'tests/auto/qdir')
-rw-r--r--tests/auto/qdir/tst_qdir.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/auto/qdir/tst_qdir.cpp b/tests/auto/qdir/tst_qdir.cpp
index 2fa0c24..04f7fa9 100644
--- a/tests/auto/qdir/tst_qdir.cpp
+++ b/tests/auto/qdir/tst_qdir.cpp
@@ -420,6 +420,9 @@ void tst_QDir::isRelativePath_data()
#endif
QTest::newRow("data2") << "somedir" << true;
QTest::newRow("data3") << "/somedir" << false;
+
+ QTest::newRow("resource0") << ":/prefix" << false;
+ QTest::newRow("resource1") << ":/prefix/foo.bar" << false;
}
void tst_QDir::isRelativePath()
@@ -868,6 +871,8 @@ void tst_QDir::canonicalPath_data()
QTest::newRow("drive:\\..\\..") << QDir::toNativeSeparators(QDir::rootPath().append("../..")) << QDir::rootPath();
QTest::newRow("drive:") << QDir().canonicalPath().left(2) << QDir().canonicalPath();
#endif
+
+ QTest::newRow("resource") << ":/tst_qdir/resources/entryList" << ":/tst_qdir/resources/entryList";
}
void tst_QDir::canonicalPath()
@@ -1061,6 +1066,9 @@ tst_QDir::cleanPath_data()
QTest::newRow("data10") << "/:/" << "/:";
#endif
#endif
+
+ QTest::newRow("resource0") << ":/prefix/foo.bar" << ":/prefix/foo.bar";
+ QTest::newRow("resource1") << "://prefix/..//prefix/foo.bar" << ":/prefix/foo.bar";
}
@@ -1084,6 +1092,7 @@ void tst_QDir::absoluteFilePath_data()
QTest::newRow("2") << "/" << "passwd" << "/passwd";
QTest::newRow("3") << "relative" << "path" << QDir::currentPath() + "/relative/path";
QTest::newRow("4") << "" << "" << QDir::currentPath();
+ QTest::newRow("resource") << ":/prefix" << "foo.bar" << ":/prefix/foo.bar";
}
void tst_QDir::absoluteFilePath()
@@ -1112,6 +1121,7 @@ void tst_QDir::absolutePath_data()
QTest::newRow("4") << "c:/machine/share/dir1" << "c:/machine/share/dir1";
QTest::newRow("5") << "c:\\machine\\share\\dir1" << "c:/machine/share/dir1";
#endif
+ QTest::newRow("resource") << ":/prefix/foo.bar" << ":/prefix/foo.bar";
}
void tst_QDir::absolutePath()
@@ -1171,6 +1181,9 @@ void tst_QDir::relativeFilePath_data()
QTest::newRow("33") << "//anotherHost/foo" << "C:/foo/bar" << "C:/foo/bar";
# endif
#endif
+
+ QTest::newRow("resource0") << ":/prefix" << "foo.bar" << "foo.bar";
+ QTest::newRow("resource1") << ":/prefix" << ":/prefix/foo.bar" << "foo.bar";
}
void tst_QDir::relativeFilePath()
@@ -1193,6 +1206,7 @@ void tst_QDir::filePath_data()
QTest::newRow("2") << "/" << "passwd" << "/passwd";
QTest::newRow("3") << "relative" << "path" << "relative/path";
QTest::newRow("4") << "" << "" << ".";
+ QTest::newRow("resource") << ":/prefix" << "foo.bar" << ":/prefix/foo.bar";
}
void tst_QDir::filePath()
@@ -1255,6 +1269,8 @@ void tst_QDir::exists2_data()
QTest::newRow("4") << "/testData" << false;
QTest::newRow("5") << "tst_qdir.cpp" << true;
QTest::newRow("6") << "/resources.cpp" << false;
+ QTest::newRow("resource0") << ":/prefix/foo.bar" << false;
+ QTest::newRow("resource1") << ":/tst_qdir/resources/entryList/file1.data" << true;
}
void tst_QDir::exists2()
@@ -1291,6 +1307,8 @@ void tst_QDir::dirName_data()
QTest::newRow("bslash1") << "\\winnt\\system32" << "system32";
QTest::newRow("bslash2") << "c:\\winnt\\system32\\kernel32.dll" << "kernel32.dll";
#endif
+
+ QTest::newRow("resource") << ":/prefix" << "prefix";
}
void tst_QDir::dirName()
@@ -1961,6 +1979,8 @@ void tst_QDir::isRelative_data()
foreach (QFileInfo root, QDir::drives()) {
QTest::newRow(root.absolutePath().toLocal8Bit()) << root.absolutePath() << false;
}
+
+ QTest::newRow("resource") << ":/prefix" << false;
}
void tst_QDir::isRelative()