]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/testbase.cpp
Use capitalized KDE includes
[dolphin.git] / src / tests / testbase.cpp
index 2161c9314c4ca6b7a18d3850e31e538da121371a..a0031d0f5e22e458c95b2d8e93205625392df235 100644 (file)
@@ -1,21 +1,21 @@
-/***************************************************************************
- *   Copyright (C) 2010 by Frank Reininghaus (frank78ac@googlemail.com)    *
- *                                                                         *
- *   This program is free software; you can redistribute it and/or modify  *
- *   it under the terms of the GNU General Public License as published by  *
- *   the Free Software Foundation; either version 2 of the License, or     *
- *   (at your option) any later version.                                   *
- *                                                                         *
- *   This program is distributed in the hope that it will be useful,       *
- *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
- *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
- *   GNU General Public License for more details.                          *
- *                                                                         *
- *   You should have received a copy of the GNU General Public License     *
- *   along with this program; if not, write to the                         *
- *   Free Software Foundation, Inc.,                                       *
- *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA            *
- ***************************************************************************/
+/*****************************************************************************
+ *   Copyright (C) 2010-2011 by Frank Reininghaus (frank78ac@googlemail.com) *
+ *                                                                           *
+ *   This program is free software; you can redistribute it and/or modify    *
+ *   it under the terms of the GNU General Public License as published by    *
+ *   the Free Software Foundation; either version 2 of the License, or       *
+ *   (at your option) any later version.                                     *
+ *                                                                           *
+ *   This program is distributed in the hope that it will be useful,         *
+ *   but WITHOUT ANY WARRANTY; without even the implied warranty of          *
+ *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           *
+ *   GNU General Public License for more details.                            *
+ *                                                                           *
+ *   You should have received a copy of the GNU General Public License       *
+ *   along with this program; if not, write to the                           *
+ *   Free Software Foundation, Inc.,                                         *
+ *   51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA              *
+ *****************************************************************************/
 
 #include "testbase.h"
 
 
 #include <KTempDir>
 
-#include <QtCore/QDir>
-#include <QtGui/QAbstractItemView>
+#include <QDir>
+#include <QAbstractItemView>
 
-#include <kdebug.h>
+#include <KDebug>
+
+#ifdef Q_OS_UNIX
+#include <utime.h>
+#else
+#include <sys/utime.h>
+#endif
 
 TestBase::TestBase()
 {
@@ -39,27 +45,17 @@ TestBase::TestBase()
     Q_ASSERT(m_tempDir->exists());
     m_path = m_tempDir->name();
     m_dir = new QDir(m_path);
-    m_dirLister = new DolphinDirLister();
-    m_dirLister->setAutoUpdate(true);
-    m_dolphinModel = new DolphinModel();
-    m_dolphinModel->setDirLister(m_dirLister);
-    m_proxyModel = new DolphinSortFilterProxyModel(0);
-    m_proxyModel->setSourceModel(m_dolphinModel);
-    m_proxyModel->setFilterCaseSensitivity(Qt::CaseInsensitive);
-    m_view = new DolphinView(0, KUrl(m_path), m_proxyModel);
+    m_view = new DolphinView(KUrl(m_path), 0);
 }
 
 TestBase::~TestBase()
 {
     delete m_view;
-    delete m_proxyModel;
-    // m_dolphinModel owns m_dirLister -> do not delete it here!
-    delete m_dolphinModel;
     delete m_dir;
     delete m_tempDir;
 }
 
-QAbstractItemView* TestBase::itemView () const
+QAbstractItemView* TestBase::itemView() const
 {
     return m_view->m_viewAccessor.itemView();
 }
@@ -67,7 +63,7 @@ QAbstractItemView* TestBase::itemView () const
 void TestBase::reloadViewAndWait()
 {
     m_view->reload();
-    QVERIFY(QTest::kWaitForSignal(m_view, SIGNAL(finishedPathLoading(const KUrl&)), 5000));
+    QVERIFY(QTest::kWaitForSignal(m_view, SIGNAL(finishedPathLoading(const KUrl&)), 2000));
 }
 
 KUrl TestBase::testDirUrl() const
@@ -75,7 +71,24 @@ KUrl TestBase::testDirUrl() const
     return KUrl(m_path);
 }
 
-void TestBase::createFile(const QString& path, const QByteArray& data)
+/** The following function is taken from kdelibs/kio/tests/kiotesthelper.h, copyright (C) 2006 by David Faure */
+
+static void setTimeStamp(const QString& path, const QDateTime& mtime)
+{
+#ifdef Q_OS_UNIX
+    struct utimbuf utbuf;
+    utbuf.actime = mtime.toTime_t();
+    utbuf.modtime = utbuf.actime;
+    utime(QFile::encodeName(path), &utbuf);
+#elif defined(Q_OS_WIN)
+    struct _utimbuf utbuf;
+    utbuf.actime = mtime.toTime_t();
+    utbuf.modtime = utbuf.actime;
+    _wutime(reinterpret_cast<const wchar_t *>(path.utf16()), &utbuf);
+#endif
+}
+
+void TestBase::createFile(const QString& path, const QByteArray& data, const QDateTime& time)
 {
     QString absolutePath = path;
     makePathAbsoluteAndCreateParents(absolutePath);
@@ -85,6 +98,10 @@ void TestBase::createFile(const QString& path, const QByteArray& data)
     f.write(data);
     f.close();
 
+    if (time.isValid()) {
+        setTimeStamp(absolutePath, time);
+    }
+
     Q_ASSERT(QFile::exists(absolutePath));
 }
 
@@ -95,15 +112,31 @@ void TestBase::createFiles(const QStringList& files)
     }
 }
 
-void TestBase::createDir(const QString& path)
+void TestBase::createDir(const QString& path, const QDateTime& time)
 {
     QString absolutePath = path;
     makePathAbsoluteAndCreateParents(absolutePath);
     m_dir->mkdir(absolutePath);
 
+    if (time.isValid()) {
+        setTimeStamp(absolutePath, time);
+    }
+
     Q_ASSERT(QFile::exists(absolutePath));
 }
 
+QStringList TestBase::viewItems() const
+{
+    QStringList itemList;
+    const QAbstractItemModel* model = itemView()->model();
+
+    for (int row = 0; row < model->rowCount(); row++) {
+        itemList << model->data(model->index(row, 0), Qt::DisplayRole).toString();
+    }
+
+    return itemList;
+}
+
 void TestBase::makePathAbsoluteAndCreateParents(QString& path)
 {
     QFileInfo fileInfo(path);