X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/b1e69cae00a708aa50dbd03eca944e83a639d861..ca5d3fde114dfdb280e46995e8a425d3ec558596:/src/tests/testbase.h diff --git a/src/tests/testbase.h b/src/tests/testbase.h index 121c230ca..957d822c3 100644 --- a/src/tests/testbase.h +++ b/src/tests/testbase.h @@ -1,40 +1,36 @@ -/*************************************************************************** - * 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 * + *****************************************************************************/ + +#ifndef TESTBASE_H +#define TESTBASE_H + +#include -#ifndef TESTHELPER_H -#define TESTHELPER_H - -#include - -class KTempDir; class QAbstractItemView; -class QDir; class DolphinDirLister; class DolphinModel; class DolphinSortFilterProxyModel; class DolphinView; -/* - * The class TestBase aims to make writing Dolphin unit tests easier. - * It provides functionality that almost every unit test needs: setup of the DolphinView and - * easy creation of test files and subfolders in a temporary directory which is removed in - * the TestBase destructor. +/** + * The class TestBase (which is a friend of DolphinView's) provides access to some + * parts of DolphinView to the unit tests. * * TODO: TestBase should also backup the DolphinSettings and restore them later! */ @@ -45,45 +41,27 @@ class TestBase : public QObject public: - TestBase(); - ~TestBase(); - - // Returns the item view (icons, details, or columns) - QAbstractItemView* itemView () const; + TestBase() {}; + ~TestBase() {}; - KUrl testDirUrl() const; + /** Returns the item view (icons, details, or columns) */ + static QAbstractItemView* itemView(const DolphinView* view); - /* - * The following functions create either a file, a list of files, or a directory. - * The paths may be absolute or relative to the test directory. Any missing parent - * directories will be created automatically. + /** + * Waits until the view emits its finishedPathLoading(const KUrl&) signal. + * Asserts if the signal is not received within the given number of milliseconds. */ + static void waitForFinishedPathLoading(DolphinView* view, int milliseconds=20000); - void createFile(const QString& path, const QByteArray& data = QByteArray("test")); - void createFiles(const QStringList& files); - void createDir(const QString& path); - - /* - * Remove the test directory and create an empty one. - */ - - void cleanupTestDir(); - - // Make members that are accessed frequently by the derived test classes public - - DolphinDirLister* m_dirLister; - DolphinModel* m_dolphinModel; - DolphinSortFilterProxyModel* m_proxyModel; - DolphinView* m_view; - -private: + /** Reloads the view and waits for the finishedPathLoading(const KUrl&) signal. */ + static void reloadViewAndWait(DolphinView* view); - KTempDir* m_tempDir; - QString m_path; - QDir* m_dir; + /** Returns the items shown in the view. The order corresponds to the sort order of the view. */ + static QStringList viewItems(const DolphinView* view); - void makePathAbsoluteAndCreateParents(QString& path); + /** Returns the items which are selected in the view. The order corresponds to the sort order of the view. */ + static QStringList selectedItems(const DolphinView* view); }; -#endif \ No newline at end of file +#endif