From: Peter Penz Date: Fri, 18 May 2007 23:36:58 +0000 (+0000) Subject: David Faure wrote: X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/15b965af3a9c5387af74fad9ccf884ed15394d2c David Faure wrote: > 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 --- diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index ed064f4e5..595146d5b 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -1,6 +1,7 @@ add_subdirectory( pics ) add_subdirectory( servicemenus ) +#add_subdirectory( tests ) include_directories( ${CMAKE_SOURCE_DIR}/libkonq ${KDE4_INCLUDE_DIR} ${QT_INCLUDES} ) diff --git a/src/renamedialog.cpp b/src/renamedialog.cpp index def141e04..f8f549ddf 100644 --- a/src/renamedialog.cpp +++ b/src/renamedialog.cpp @@ -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 diff --git a/src/renamedialog.h b/src/renamedialog.h index ec19e2697..b99fed291 100644 --- a/src/renamedialog.h +++ b/src/renamedialog.h @@ -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 index 000000000..687d68d9c --- /dev/null +++ b/src/tests/CMakeLists.txt @@ -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 index 000000000..8914bc067 --- /dev/null +++ b/src/tests/renamedialogtest.cpp @@ -0,0 +1,45 @@ +/*************************************************************************** + * Copyright (C) 2006 by Peter Penz * + * * + * 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 + +#include "renamedialogtest.h" +#include + +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 index 000000000..0aabc62a5 --- /dev/null +++ b/src/tests/renamedialogtest.h @@ -0,0 +1,33 @@ +/*************************************************************************** + * Copyright (C) 2006 by Peter Penz * + * * + * 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 + +class RenameDialogTest : public QObject +{ + Q_OBJECT + +private slots: + void testExtensionString(); +}; + +#endif