From: Dawit Alemayehu Date: Thu, 20 Jun 2013 12:41:12 +0000 (-0400) Subject: Merge remote-tracking branch 'origin/KDE/4.10' X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/fda88516e9c32ed93cb4fe47a3a9a9bf2aecc456 Merge remote-tracking branch 'origin/KDE/4.10' --- fda88516e9c32ed93cb4fe47a3a9a9bf2aecc456 diff --cc src/tests/kfileitemmodeltest.cpp index 6c2a1465f,fd6c2be90..0ad7a378d --- a/src/tests/kfileitemmodeltest.cpp +++ b/src/tests/kfileitemmodeltest.cpp @@@ -320,9 -319,48 +322,48 @@@ void KFileItemModelTest::testSetDataWit QCOMPARE(m_model->data(0).value("rating").toInt(), ratingIndex0); QCOMPARE(m_model->data(1).value("rating").toInt(), ratingIndex1); QCOMPARE(m_model->data(2).value("rating").toInt(), ratingIndex2); - QVERIFY(isModelConsistent()); + QVERIFY(m_model->isConsistent()); } + void KFileItemModelTest::testChangeSortRole() + { + QCOMPARE(m_model->sortRole(), QByteArray("text")); + + QStringList files; + files << "a.txt" << "b.jpg" << "c.txt"; + m_testDir->createFiles(files); + + m_model->loadDirectory(m_testDir->url()); + QVERIFY(QTest::kWaitForSignal(m_model, SIGNAL(itemsInserted(KItemRangeList)), DefaultTimeout)); + QCOMPARE(itemsInModel(), QStringList() << "a.txt" << "b.jpg" << "c.txt"); + + // Simulate that KFileItemModelRolesUpdater determines the mime type. + // Resorting the files by 'type' will only work immediately if their + // mime types are known. + for (int index = 0; index < m_model->count(); ++index) { + m_model->fileItem(index).determineMimeType(); + } + + // Now: sort by type. + QSignalSpy spyItemsMoved(m_model, SIGNAL(itemsMoved(KItemRange,QList))); + m_model->setSortRole("type"); + QCOMPARE(m_model->sortRole(), QByteArray("type")); + QVERIFY(!spyItemsMoved.isEmpty()); + + // The actual order of the files might depend on the translation of the + // result of KFileItem::mimeComment() in the user's language. + QStringList version1; + version1 << "b.jpg" << "a.txt" << "c.txt"; + + QStringList version2; + version2 << "a.txt" << "c.txt" << "b.jpg"; + + const bool ok1 = (itemsInModel() == version1); + const bool ok2 = (itemsInModel() == version2); + + QVERIFY(ok1 || ok2); + } + void KFileItemModelTest::testModelConsistencyWhenInsertingItems() { //QSKIP("Temporary disabled", SkipSingle);