]> cloud.milkyroute.net Git - dolphin.git/commitdiff
David Faure wrote:
authorPeter Penz <peter.penz19@gmail.com>
Fri, 18 May 2007 23:36:58 +0000 (23:36 +0000)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 18 May 2007 23:36:58 +0000 (23:36 +0000)
> Sounds like the kind of method that would benefit greatly from a unit test :)

OK, committing my first unit test for KDE. Although very minimal it's at least a start ;-) (currently deactivated as I've some problem in CMakeList.txt)

svn path=/trunk/KDE/kdebase/apps/; revision=666162

src/CMakeLists.txt
src/renamedialog.cpp
src/renamedialog.h
src/tests/CMakeLists.txt [new file with mode: 0644]
src/tests/renamedialogtest.cpp [new file with mode: 0644]
src/tests/renamedialogtest.h [new file with mode: 0644]

index ed064f4e5e7f8a06fadc721ec164ca9a3b117607..595146d5b516478df8146bb76a79b79cfc29e422 100644 (file)
@@ -1,6 +1,7 @@
 
 add_subdirectory( pics )
 add_subdirectory( servicemenus )
+#add_subdirectory( tests )
 
 include_directories( ${CMAKE_SOURCE_DIR}/libkonq ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} )
 
index def141e047a104bee6d8dc40ee78b761ff9d337c..f8f549ddfcbe867b3f61348f5cc395f67087c96b 100644 (file)
@@ -120,7 +120,7 @@ void RenameDialog::slotButtonClicked(int button)
     KDialog::slotButtonClicked(button);
 }
 
-QString RenameDialog::extensionString(const QString& name) const
+QString RenameDialog::extensionString(const QString& name)
 {
     QString extension;
     bool foundExtension = false;  // true if at least one valid file extension
index ec19e2697cfa02237bc11bd8361da6eec8ffc236..b99fed29179b7ef1663eeb619d9aba577433be9f 100644 (file)
@@ -92,13 +92,15 @@ private:
      * "Image.1.12.gif" -> ".gif"
      * "Image.tar.1.12.gz" -> ".tar.1.12.gz"
      */
-    QString extensionString(const QString& name) const;
+    static QString extensionString(const QString& name);
 
 private:
     bool m_renameOneItem;
     KLineEdit* m_lineEdit;
     QString m_newName;
     QString m_errorString;
+
+    friend class RenameDialogTest; // allow access for unit testing
 };
 
 #endif
diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt
new file mode 100644 (file)
index 0000000..687d68d
--- /dev/null
@@ -0,0 +1,19 @@
+if(KDE4_BUILD_TESTS)
+
+  include_directories( ${CMAKE_SOURCE_DIR}/apps/dolphin/src )
+
+  # Tests don't need to go into toplevel/bin, they are fine in the current dir.
+  set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
+
+  ########### renamedialogtest ###############
+
+  kde4_automoc(renamedialogtest.cpp)
+
+  kde4_add_executable(renamedialogtest RUN_UNINSTALLED renamedialogtest.cpp)
+
+  target_link_libraries(renamedialogtest dolphin ${QT_QTTEST_LIBRARY})
+
+  ############################################
+
+endif(KDE4_BUILD_TESTS)
+
diff --git a/src/tests/renamedialogtest.cpp b/src/tests/renamedialogtest.cpp
new file mode 100644 (file)
index 0000000..8914bc0
--- /dev/null
@@ -0,0 +1,45 @@
+/***************************************************************************
+ *   Copyright (C) 2006 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   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 <qtest_kde.h>
+
+#include "renamedialogtest.h"
+#include <renamedialog.h>
+
+QTEST_KDEMAIN(RenameDialogTest, NoGUI)
+
+void RenameDialogTest::testExtensionString()
+{
+    QString result;
+
+    result = RenameDialog::extensionString("Image.gif");
+    QCOMPARE(result, QString(".gif"));
+
+    result = RenameDialog::extensionString("package.tar.gz");
+    QCOMPARE(result, QString(".tar.gz"));
+
+    result = RenameDialog::extensionString("cmake-2.4.5");
+    QCOMPARE(result, QString());
+
+    result = RenameDialog::extensionString("Image.1.12.gif");
+    QCOMPARE(result, QString(".gif"));
+
+    result = RenameDialog::extensionString("Image.tar.1.12.gz");
+    QCOMPARE(result, QString(".tar.1.12.gz"));
+}
diff --git a/src/tests/renamedialogtest.h b/src/tests/renamedialogtest.h
new file mode 100644 (file)
index 0000000..0aabc62
--- /dev/null
@@ -0,0 +1,33 @@
+/***************************************************************************
+ *   Copyright (C) 2006 by Peter Penz <peter.penz@gmx.at>                  *
+ *                                                                         *
+ *   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 RENAMEDIALOGTEST_H
+#define RENAMEDIALOGTEST_H
+
+#include <QObject>
+
+class RenameDialogTest : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void testExtensionString();
+};
+
+#endif