]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/testbase.cpp
Add function TestBase::waitForFinishedPathLoading()
[dolphin.git] / src / tests / testbase.cpp
index a0031d0f5e22e458c95b2d8e93205625392df235..38909e671809e763a9ac83d738d7b3539fb39fcb 100644 (file)
 #include "views/dolphindirlister.h"
 #include "views/dolphinsortfilterproxymodel.h"
 
-#include <KTempDir>
-
-#include <QDir>
 #include <QAbstractItemView>
 
-#include <KDebug>
-
-#ifdef Q_OS_UNIX
-#include <utime.h>
-#else
-#include <sys/utime.h>
-#endif
-
-TestBase::TestBase()
-{
-    m_tempDir = new KTempDir;
-    Q_ASSERT(m_tempDir->exists());
-    m_path = m_tempDir->name();
-    m_dir = new QDir(m_path);
-    m_view = new DolphinView(KUrl(m_path), 0);
-}
-
-TestBase::~TestBase()
-{
-    delete m_view;
-    delete m_dir;
-    delete m_tempDir;
-}
-
-QAbstractItemView* TestBase::itemView() const
-{
-    return m_view->m_viewAccessor.itemView();
-}
-
-void TestBase::reloadViewAndWait()
-{
-    m_view->reload();
-    QVERIFY(QTest::kWaitForSignal(m_view, SIGNAL(finishedPathLoading(const KUrl&)), 2000));
-}
-
-KUrl TestBase::testDirUrl() const
-{
-    return KUrl(m_path);
-}
-
-/** 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)
+QAbstractItemView* TestBase::itemView(const DolphinView* view)
 {
-    QString absolutePath = path;
-    makePathAbsoluteAndCreateParents(absolutePath);
-
-    QFile f(absolutePath);
-    f.open(QIODevice::WriteOnly);
-    f.write(data);
-    f.close();
-
-    if (time.isValid()) {
-        setTimeStamp(absolutePath, time);
-    }
-
-    Q_ASSERT(QFile::exists(absolutePath));
+    return view->m_viewAccessor.itemView();
 }
 
-void TestBase::createFiles(const QStringList& files)
+bool TestBase::waitForFinishedPathLoading(DolphinView* view, int milliseconds)
 {
-    foreach(const QString& path, files) {
-        createFile(path);
-    }
+    return QTest::kWaitForSignal(view, SIGNAL(finishedPathLoading(const KUrl&)), milliseconds);
 }
 
-void TestBase::createDir(const QString& path, const QDateTime& time)
+void TestBase::reloadViewAndWait(DolphinView* view)
 {
-    QString absolutePath = path;
-    makePathAbsoluteAndCreateParents(absolutePath);
-    m_dir->mkdir(absolutePath);
-
-    if (time.isValid()) {
-        setTimeStamp(absolutePath, time);
-    }
-
-    Q_ASSERT(QFile::exists(absolutePath));
+    view->reload();
+    QVERIFY(waitForFinishedPathLoading(view));
 }
 
-QStringList TestBase::viewItems() const
+QStringList TestBase::viewItems(const DolphinView* view)
 {
     QStringList itemList;
-    const QAbstractItemModel* model = itemView()->model();
+    const QAbstractItemModel* model = itemView(view)->model();
 
     for (int row = 0; row < model->rowCount(); row++) {
         itemList << model->data(model->index(row, 0), Qt::DisplayRole).toString();
@@ -136,29 +55,3 @@ QStringList TestBase::viewItems() const
 
     return itemList;
 }
-
-void TestBase::makePathAbsoluteAndCreateParents(QString& path)
-{
-    QFileInfo fileInfo(path);
-    if (!fileInfo.isAbsolute()) {
-        path = m_path + path;
-        fileInfo.setFile(path);
-    }
-
-    const QDir dir = fileInfo.dir();
-    if (!dir.exists()) {
-        createDir(dir.absolutePath());
-    }
-
-    Q_ASSERT(dir.exists());
-}
-
-void TestBase::cleanupTestDir()
-{
-    delete m_tempDir;
-    m_tempDir = new KTempDir;
-    Q_ASSERT(m_tempDir->exists());
-    m_path = m_tempDir->name();
-    m_dir->setPath(m_path);
-    m_view->setUrl(m_path);
-}