From: Peter Penz Date: Fri, 4 Feb 2011 21:13:50 +0000 (+0100) Subject: Add unittest for DolphinSearchBox X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/17d217b862ec21668632576fd9df86d3a0cd5813 Add unittest for DolphinSearchBox A minor API cleanup in DolphinSearchBox has been done related to the test. --- diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 1b921e678..922259858 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -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 diff --git a/src/search/dolphinsearchbox.cpp b/src/search/dolphinsearchbox.cpp index f4588f67f..c7d08ff1f 100644 --- a/src/search/dolphinsearchbox.cpp +++ b/src/search/dolphinsearchbox.cpp @@ -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) { diff --git a/src/search/dolphinsearchbox.h b/src/search/dolphinsearchbox.h index 3e4648048..07fda5c29 100644 --- a/src/search/dolphinsearchbox.h +++ b/src/search/dolphinsearchbox.h @@ -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); diff --git a/src/tests/CMakeLists.txt b/src/tests/CMakeLists.txt index e0d9aa2be..5159bf3ea 100644 --- a/src/tests/CMakeLists.txt +++ b/src/tests/CMakeLists.txt @@ -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 index 000000000..af6b58d32 --- /dev/null +++ b/src/tests/dolphinsearchboxtest.cpp @@ -0,0 +1,70 @@ +/*************************************************************************** + * Copyright (C) 2011 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 "search/dolphinsearchbox.h" +#include + +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"