-/***************************************************************************
- * 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()
{
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();
}
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
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);
f.write(data);
f.close();
+ if (time.isValid()) {
+ setTimeStamp(absolutePath, time);
+ }
+
Q_ASSERT(QFile::exists(absolutePath));
}
}
}
-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);