]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/tests/testbase.h
Show icon overlays in the Informationen Panel.
[dolphin.git] / src / tests / testbase.h
index 121c230ca0e3ebe39197e68edd56300931ab57ad..957d822c3bff83c1198db93016b28a66b750a512 100644 (file)
@@ -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 <QtCore/QObject>
 
-#ifndef TESTHELPER_H
-#define TESTHELPER_H
-
-#include <KUrl>
-
-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