diff options
Diffstat (limited to 'tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp')
-rw-r--r-- | tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp | 64 |
1 files changed, 46 insertions, 18 deletions
diff --git a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp index 04e60c4..a388f0a 100644 --- a/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp +++ b/tests/auto/qfilesystemmodel/tst_qfilesystemmodel.cpp @@ -44,6 +44,7 @@ #include "../../../src/gui/dialogs/qfilesystemmodel_p.h" #include <QFileIconProvider> #include <QTreeView> +#include <QHeaderView> #include "../../shared/util.h" #include <QTime> #include <QStyle> @@ -802,38 +803,65 @@ void tst_QFileSystemModel::sort() if (fileDialogMode) myModel->d_func()->disableRecursiveSort = true; - const QString dirPath = QString("%1/sortTemp").arg(QDir::tempPath()); - QDir dir(dirPath); - dir.mkpath(dirPath); + QDir dir(QDir::tempPath()); + dir.mkdir("sortTemp"); + dir.cd("sortTemp"); + const QString dirPath = dir.absolutePath(); QVERIFY(dir.exists()); - dir.mkdir("a"); - dir.mkdir("b"); - dir.mkdir("c"); - dir.mkdir("d"); - dir.mkdir("e"); - dir.mkdir("f"); - dir.mkdir("g"); - QTemporaryFile tempFile(dirPath + "/rXXXXXX"); - tempFile.open(); + + //Create a file that will be at the end when sorting by name (For Mac, the default) + //but if we sort by size descending it will be the first + QFile tempFile(dirPath + "/plop2.txt"); + tempFile.open(QIODevice::WriteOnly | QIODevice::Text); + QTextStream out(&tempFile); + out << "The magic number is: " << 49 << "\n"; + tempFile.close(); + + QFile tempFile2(dirPath + "/plop.txt"); + tempFile2.open(QIODevice::WriteOnly | QIODevice::Text); + QTextStream out2(&tempFile2); + out2 << "The magic number is : " << 49 << " but i write some stuff in the file \n"; + tempFile2.close(); + myModel->setRootPath(QDir::rootPath()); + myModel->setFilter(QDir::AllEntries | QDir::System | QDir::Hidden); + tree->setSortingEnabled(true); tree->setModel(myModel); tree->show(); + tree->resize(800, 800); QTest::qWait(500); - tree->expand(myModel->index(dir.absolutePath(), 0)); - while (dir.cdUp()) + tree->header()->setSortIndicator(1,Qt::DescendingOrder); + tree->header()->setResizeMode(0, QHeaderView::ResizeToContents); + QStringList dirsToOpen; + do { - tree->expand(myModel->index(dir.absolutePath(), 0)); + dirsToOpen<<dir.absolutePath(); + } while (dir.cdUp()); + + for (int i = dirsToOpen.size() -1 ; i > 0 ; --i) { + QString path = dirsToOpen[i]; + QTest::qWait(500); + tree->expand(myModel->index(path, 0)); } - QTest::qWait(250); + tree->expand(myModel->index(dirPath, 0)); + QTest::qWait(500); + QModelIndex parent = myModel->index(dirPath, 0); //File dialog Mode means sub trees are not sorted, only the current root if (fileDialogMode) - QVERIFY(myModel->index(0, 1, myModel->index(dirPath, 0)).data(QFileSystemModel::FilePathRole).toString() != dirPath + QLatin1String("/a")); + QVERIFY(dirPath + QChar('/') + myModel->index(0, 1, parent).data(QFileSystemModel::FileNameRole).toString() != tempFile2.fileName()); else - QCOMPARE(myModel->index(0, 1, myModel->index(dirPath, 0)).data(QFileSystemModel::FilePathRole).toString(), dirPath + QLatin1String("/a")); + QCOMPARE(dirPath + QChar('/') + myModel->index(0, 1, parent).data(QFileSystemModel::FileNameRole).toString(), tempFile2.fileName()); delete tree; delete myModel; + dir.setPath(QDir::tempPath()); + dir.cd("sortTemp"); + tempFile.remove(); + tempFile2.remove(); + dir.cdUp(); + dir.rmdir("sortTemp"); + } void tst_QFileSystemModel::mkdir() |