summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
authorJason McDonald <jason.mcdonald@nokia.com>2011-11-01 11:34:09 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-03 08:17:43 +0100
commitedc77f5aa88a37de84893c98bff810e62fd098a9 (patch)
treedf4fbf5d1afe2518a1ed609ce9ccba1fc92972ef /tests/auto
parent65ece490a914bc56a9c92cac4ace329033832030 (diff)
Improve QDirModel autotest
The unreadable() test function has been disabled since before the tests were imported into the Qt repository. The idea of the test seems valid (though the original implementation failed to correctly create an unreadable file), so it should be re-enabled. Change-Id: I94634bc5785dfbfbb42ca975badaead7fe812b29 Reviewed-by: Rohan McGovern <rohan.mcgovern@nokia.com>
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/widgets/itemviews/qdirmodel/tst_qdirmodel.cpp30
1 files changed, 25 insertions, 5 deletions
diff --git a/tests/auto/widgets/itemviews/qdirmodel/tst_qdirmodel.cpp b/tests/auto/widgets/itemviews/qdirmodel/tst_qdirmodel.cpp
index 70eb17b5e6..66896bb2e4 100644
--- a/tests/auto/widgets/itemviews/qdirmodel/tst_qdirmodel.cpp
+++ b/tests/auto/widgets/itemviews/qdirmodel/tst_qdirmodel.cpp
@@ -63,10 +63,15 @@ public:
public slots:
void initTestCase();
void cleanupTestCase();
+#ifdef Q_OS_UNIX
void init();
+#endif
void cleanup();
private slots:
void getSetCheck();
+#ifdef Q_OS_UNIX
+ void unreadable();
+#endif
/*
void construct();
void rowCount();
@@ -158,9 +163,20 @@ void tst_QDirModel::cleanupTestCase()
current.rmdir(".qtest_hidden");
}
+#ifdef Q_OS_UNIX
void tst_QDirModel::init()
{
+ if (QTest::currentTestFunction() == QLatin1String( "unreadable" )) {
+ // Make sure that the unreadable file created by the unreadable()
+ // test function doesn't already exist.
+ QFile unreadableFile(QDir::currentPath() + "qtest_unreadable");
+ if (unreadableFile.exists()) {
+ unreadableFile.remove();
+ QVERIFY(!unreadableFile.exists());
+ }
+ }
}
+#endif
void tst_QDirModel::cleanup()
{
@@ -554,24 +570,28 @@ void tst_QDirModel::fileName()
QCOMPARE(model.fileName(model.index(path)), result);
}
-#if 0
#ifdef Q_OS_UNIX
void tst_QDirModel::unreadable()
{
- //QFile current("qtest_unreadable");
- //QVERIFY(current.setPermissions(QFile::WriteOwner));
+ // Create an empty file which has no read permissions (file will be removed by cleanup()).
+ QFile unreadableFile(QDir::currentPath() + "qtest_unreadable");
+ QVERIFY2(unreadableFile.open(QIODevice::WriteOnly | QIODevice::Text), qPrintable(unreadableFile.errorString()));
+ unreadableFile.close();
+ QVERIFY(unreadableFile.exists());
+ QVERIFY2(unreadableFile.setPermissions(QFile::WriteOwner), qPrintable(unreadableFile.errorString()));
+ // Check that we can't make a valid model index from an unreadable file.
QDirModel model;
QModelIndex index = model.index(QDir::currentPath() + "/qtest_unreadable");
QVERIFY(!index.isValid());
+ // Check that unreadable files are not treated like hidden files.
QDirModel model2;
model2.setFilter(model2.filter() | QDir::Hidden);
index = model2.index(QDir::currentPath() + "/qtest_unreadable");
- QVERIFY(index.isValid());
+ QVERIFY(!index.isValid());
}
#endif
-#endif
void tst_QDirModel::filePath()
{