]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Add unittest for DolphinSearchBox
authorPeter Penz <peter.penz19@gmail.com>
Fri, 4 Feb 2011 21:13:50 +0000 (22:13 +0100)
committerPeter Penz <peter.penz19@gmail.com>
Fri, 4 Feb 2011 21:13:50 +0000 (22:13 +0100)
A minor API cleanup in DolphinSearchBox has been done related to the test.

src/dolphinviewcontainer.cpp
src/search/dolphinsearchbox.cpp
src/search/dolphinsearchbox.h
src/tests/CMakeLists.txt
src/tests/dolphinsearchboxtest.cpp [new file with mode: 0644]

index 1b921e678d85875b9660db415c01ba59e1f571c9..9222598587af984fac13936480d0c9f613a06212 100644 (file)
@@ -212,7 +212,7 @@ void DolphinViewContainer::setSearchModeEnabled(bool enabled)
     m_urlNavigator->setVisible(!enabled);
 
     if (enabled) {
-        m_searchBox->clearText();
+        m_searchBox->setText(QString());
 
         // Remember the most recent non-search URL as search path
         // of the search-box, so that it can be restored
index f4588f67f45de3dae0af5159cebd614ee70cca25..c7d08ff1fae9e6cb8a21a20a493dd9b92fb25f16 100644 (file)
@@ -73,6 +73,11 @@ DolphinSearchBox::~DolphinSearchBox()
     saveSettings();
 }
 
+void DolphinSearchBox::setText(const QString& text)
+{
+    m_searchInput->setText(text);
+}
+
 QString DolphinSearchBox::text() const
 {
     return m_searchInput->text();
@@ -141,11 +146,6 @@ void DolphinSearchBox::selectAll()
     m_searchInput->selectAll();
 }
 
-void DolphinSearchBox::clearText()
-{
-    m_searchInput->clear();
-}
-
 bool DolphinSearchBox::event(QEvent* event)
 {
     if (event->type() == QEvent::Polish) {
index 3e464804801c8ee66ccb7e10171ebc05c7535f13..07fda5c298dd7a9d2dcf53bafdd0582daa969bdb 100644 (file)
@@ -48,6 +48,12 @@ public:
     explicit DolphinSearchBox(QWidget* parent = 0);
     virtual ~DolphinSearchBox();
 
+    /**
+     * Sets the text that should be used as input for
+     * searching.
+     */
+    void setText(const QString& text);
+
     /**
      * Returns the text that should be used as input
      * for searching.
@@ -69,8 +75,6 @@ public:
      */
     void selectAll();
 
-    void clearText();
-
 protected:
     virtual bool event(QEvent* event);
     virtual void showEvent(QShowEvent* event);
index e0d9aa2be00faf6da29d5bc0785d64e1f4ae471b..5159bf3eaa1713029786aebeeacff330792dbc5d 100644 (file)
@@ -1,17 +1,34 @@
 set( EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_BINARY_DIR} )
 include_directories( ${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_BUILD_DIR}/.. ${KDE4_INCLUDES} )
 
-kde4_add_unit_test(dolphintreeviewtest TEST dolphintreeviewtest.cpp)
-target_link_libraries(dolphintreeviewtest dolphinprivate ${KDE4_KDEUI_LIBS} ${QT_QTTEST_LIBRARY})
-
+# DolphinDetailsView
 kde4_add_unit_test(dolphindetailsviewtest TEST dolphindetailsviewtest.cpp testbase.cpp ../views/zoomlevelinfo.cpp)
 target_link_libraries(dolphindetailsviewtest dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
 
-kde4_add_unit_test(dolphinviewtest_icons TEST dolphinviewtest_icons.cpp dolphinviewtest_allviewmodes.cpp testbase.cpp ../views/zoomlevelinfo.cpp)
-target_link_libraries(dolphinviewtest_icons dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+# DolphinSearchBox
+set(dolphinsearchboxtest_SRCS
+    dolphinsearchboxtest.cpp
+    ../search/dolphinsearchbox.cpp
+    ../search/dolphinsearchinformation.cpp
+)
+kde4_add_kcfg_files(dolphinsearchboxtest_SRCS
+    ../search/dolphin_searchsettings.kcfgc
+)
+kde4_add_unit_test(dolphinsearchboxtest TEST ${dolphinsearchboxtest_SRCS})
+target_link_libraries(dolphinsearchboxtest ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
 
-kde4_add_unit_test(dolphinviewtest_details TEST dolphinviewtest_details.cpp dolphinviewtest_allviewmodes.cpp testbase.cpp ../views/zoomlevelinfo.cpp)
-target_link_libraries(dolphinviewtest_details dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+# DolphinTreeView
+kde4_add_unit_test(dolphintreeviewtest TEST dolphintreeviewtest.cpp)
+target_link_libraries(dolphintreeviewtest dolphinprivate ${KDE4_KDEUI_LIBS} ${QT_QTTEST_LIBRARY})
 
+# DolphinView - columns
 kde4_add_unit_test(dolphinviewtest_columns TEST dolphinviewtest_columns.cpp dolphinviewtest_allviewmodes.cpp testbase.cpp ../views/zoomlevelinfo.cpp)
 target_link_libraries(dolphinviewtest_columns dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+
+# DolphinView - details
+kde4_add_unit_test(dolphinviewtest_details TEST dolphinviewtest_details.cpp dolphinviewtest_allviewmodes.cpp testbase.cpp ../views/zoomlevelinfo.cpp)
+target_link_libraries(dolphinviewtest_details dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
+
+# DolphinView - icons
+kde4_add_unit_test(dolphinviewtest_icons TEST dolphinviewtest_icons.cpp dolphinviewtest_allviewmodes.cpp testbase.cpp ../views/zoomlevelinfo.cpp)
+target_link_libraries(dolphinviewtest_icons dolphinprivate ${KDE4_KIO_LIBS} ${QT_QTTEST_LIBRARY})
diff --git a/src/tests/dolphinsearchboxtest.cpp b/src/tests/dolphinsearchboxtest.cpp
new file mode 100644 (file)
index 0000000..af6b58d
--- /dev/null
@@ -0,0 +1,70 @@
+/***************************************************************************
+ *   Copyright (C) 2011 by Peter Penz <peter.penz19@gmail.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 <qtest_kde.h>
+
+#include "search/dolphinsearchbox.h"
+#include <qtestkeyboard.h>
+
+class DolphinSearchBoxTest : public QObject
+{
+    Q_OBJECT
+
+private slots:
+    void init();
+    void cleanup();
+
+    void testTextClearing();
+
+private:
+    DolphinSearchBox* m_searchBox;
+};
+
+void DolphinSearchBoxTest::init()
+{
+    m_searchBox = new DolphinSearchBox();
+}
+
+void DolphinSearchBoxTest::cleanup()
+{
+    delete m_searchBox;
+}
+
+/**
+ * The test verifies whether the automatic clearing of the text works correctly.
+ * The text may not get cleared when the searchbox gets visible or invisible,
+ * as this would clear the text when switching between tabs.
+ */
+void DolphinSearchBoxTest::testTextClearing()
+{
+    m_searchBox->show();
+    QVERIFY(m_searchBox->text().isEmpty());
+
+    m_searchBox->setText("xyz");
+    m_searchBox->hide();
+    m_searchBox->show();
+    QCOMPARE(m_searchBox->text(), QString("xyz"));
+
+    QTest::keyClick(m_searchBox, Qt::Key_Escape);
+    QVERIFY(m_searchBox->text().isEmpty());
+}
+
+QTEST_KDEMAIN(DolphinSearchBoxTest, GUI)
+
+#include "dolphinsearchboxtest.moc"