diff options
| author | Frank Reininghaus <[email protected]> | 2011-09-18 15:03:45 +0200 |
|---|---|---|
| committer | Frank Reininghaus <[email protected]> | 2011-09-18 15:03:45 +0200 |
| commit | 31d3b91813c2b9d74d175876d2551cca4484ab5e (patch) | |
| tree | 8eba74dfe6075f3c45c7983b2ee1743823c3ae5b /src/tests/kfileitemmodeltest.cpp | |
| parent | 01d4b8d0820ee3ab9f05df23c31a8230acfe7083 (diff) | |
Implement some missing sorting options
Changing the sort order and enabling/disabling the
"Sort Folders First" option works now.
Diffstat (limited to 'src/tests/kfileitemmodeltest.cpp')
| -rw-r--r-- | src/tests/kfileitemmodeltest.cpp | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/src/tests/kfileitemmodeltest.cpp b/src/tests/kfileitemmodeltest.cpp index d3404782c..820cf7848 100644 --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@ -46,6 +46,7 @@ private slots: void testModelConsistencyWhenInsertingItems(); void testItemRangeConsistencyWhenInsertingItems(); void testExpandItems(); + void testSorting(); void testExpansionLevelsCompare_data(); void testExpansionLevelsCompare(); @@ -54,6 +55,7 @@ private slots: private: bool isModelConsistent() const; + QStringList itemsInModel() const; private: KFileItemModel* m_model; @@ -331,6 +333,62 @@ void KFileItemModelTest::testExpandItems() QCOMPARE(m_model->expandedUrls(), allFolders); } +void KFileItemModelTest::testSorting() +{ + // Create some files with different sizes and modification times to check the different sorting options + QDateTime now = QDateTime::currentDateTime(); + + m_testDir->createFile("a", "A file", now.addDays(-3)); + m_testDir->createFile("b", "A larger file", now.addDays(0)); + m_testDir->createDir("c", now.addDays(-2)); + m_testDir->createFile("d", "The largest file in this directory", now.addDays(-1)); + m_testDir->createFile("e", "An even larger file", now.addDays(-4)); + m_testDir->createFile(".f"); + + m_dirLister->openUrl(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout)); + + // Default: Sort by Name, ascending + QCOMPARE(m_model->sortRole(), QByteArray("name")); + QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder); + QVERIFY(m_model->sortFoldersFirst()); + //QVERIFY(!m_model->showHiddenFiles()); + QCOMPARE(itemsInModel(), QStringList() << "c" << "a" << "b" << "d" << "e"); + + // Sort by Name, descending + m_model->setSortOrder(Qt::DescendingOrder); + QCOMPARE(m_model->sortRole(), QByteArray("name")); + QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder); + QCOMPARE(itemsInModel(), QStringList() << "c" << "e" << "d" << "b" << "a"); + + // Sort by Date, decending + m_model->setSortRole("date"); + QCOMPARE(m_model->sortRole(), QByteArray("date")); + QCOMPARE(m_model->sortOrder(), Qt::DescendingOrder); + QCOMPARE(itemsInModel(), QStringList() << "c" << "b" << "d" << "a" << "e"); + + // Sort by Date, ascending + m_model->setSortOrder(Qt::AscendingOrder); + QCOMPARE(m_model->sortRole(), QByteArray("date")); + QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder); + QCOMPARE(itemsInModel(), QStringList() << "c" << "e" << "a" << "d" << "b"); + + // Sort by Date, ascending, 'Sort Folders First' disabled + m_model->setSortFoldersFirst(false); + QCOMPARE(m_model->sortRole(), QByteArray("date")); + QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder); + QVERIFY(!m_model->sortFoldersFirst()); + QCOMPARE(itemsInModel(), QStringList() << "e" << "a" << "c" << "d" << "b"); + + // Default: Sort by Name, ascending, 'Sort Folders First' disabled + m_model->setSortRole("name"); + QCOMPARE(m_model->sortOrder(), Qt::AscendingOrder); + QVERIFY(!m_model->sortFoldersFirst()); + QCOMPARE(itemsInModel(), QStringList() << "a" << "b" << "c" << "d" << "e"); + + // TODO: Sort by other roles; show/hide hidden files +} + void KFileItemModelTest::testExpansionLevelsCompare_data() { QTest::addColumn<QString>("urlA"); @@ -426,6 +484,17 @@ bool KFileItemModelTest::isModelConsistent() const return true; } +QStringList KFileItemModelTest::itemsInModel() const +{ + QStringList items; + + for (int i = 0; i < m_model->count(); i++) { + items << m_model->data(i).value("name").toString(); + } + + return items; +} + QTEST_KDEMAIN(KFileItemModelTest, NoGUI) #include "kfileitemmodeltest.moc" |
