← Back to team overview

openlp-core team mailing list archive

[Merge] lp:~googol/openlp/mainwindow-spelling into lp:openlp

 

Andreas Preikschat has proposed merging lp:~googol/openlp/mainwindow-spelling into lp:openlp.

Requested reviews:
  Tim Bentley (trb143)

For more details, see:
https://code.launchpad.net/~googol/openlp/mainwindow-spelling/+merge/212317

- fixed a spelling mistake

http://ci.openlp.org/view/Branch/job/Branch-01-Pull/38/console
-- 
https://code.launchpad.net/~googol/openlp/mainwindow-spelling/+merge/212317
Your team OpenLP Core is subscribed to branch lp:openlp.
=== modified file 'openlp/core/lib/searchedit.py'
--- openlp/core/lib/searchedit.py	2014-03-20 19:10:31 +0000
+++ openlp/core/lib/searchedit.py	2014-03-23 10:56:49 +0000
@@ -178,15 +178,8 @@
         correct action on the button, and set the current search type (using the list of identifiers provided by the
         developer), the ``searchTypeChanged(int)`` signal is emitted with the identifier.
         """
-        sender = self.sender()
         for action in self.menu_button.menu().actions():
+            # Why is this needed?
             action.setChecked(False)
-        self.menu_button.setDefaultAction(sender)
-        self._current_search_type = sender.data()
-        # setplaceholder_text has been implemented in Qt 4.7 and in at least
-        # PyQt 4.9 (I am not sure, if it was implemented in PyQt 4.8).
-        try:
-            self.setPlaceholderText(self.menu_button.defaultAction().placeholder_text)
-        except AttributeError:
-            pass
-        self.emit(QtCore.SIGNAL('searchTypeChanged(int)'), self._current_search_type)
+        sender = self.sender()
+        self.set_current_search_type(sender.data())

=== modified file 'openlp/core/ui/mainwindow.py'
--- openlp/core/ui/mainwindow.py	2014-03-20 19:10:31 +0000
+++ openlp/core/ui/mainwindow.py	2014-03-23 10:56:49 +0000
@@ -652,7 +652,7 @@
                                            translate('OpenLP.MainWindow', 'Are you sure you want to re-run the First '
                                                      'Time Wizard?\n\nRe-running this wizard may make changes to your '
                                                      'current OpenLP configuration and possibly add songs to your '
-                                                     '#existing songs list and change your default theme.'),
+                                                     'existing songs list and change your default theme.'),
                                            QtGui.QMessageBox.StandardButtons(QtGui.QMessageBox.Yes |
                                                                              QtGui.QMessageBox.No),
                                            QtGui.QMessageBox.No)

=== added file 'tests/interfaces/openlp_core_lib/test_searchedit.py'
--- tests/interfaces/openlp_core_lib/test_searchedit.py	1970-01-01 00:00:00 +0000
+++ tests/interfaces/openlp_core_lib/test_searchedit.py	2014-03-23 10:56:49 +0000
@@ -0,0 +1,138 @@
+# -*- coding: utf-8 -*-
+# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4
+
+###############################################################################
+# OpenLP - Open Source Lyrics Projection                                      #
+# --------------------------------------------------------------------------- #
+# Copyright (c) 2008-2014 Raoul Snyman                                        #
+# Portions copyright (c) 2008-2014 Tim Bentley, Gerald Britton, Jonathan      #
+# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub,      #
+# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer.   #
+# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru,          #
+# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith,             #
+# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock,              #
+# Frode Woldsund, Martin Zibricky, Patrick Zimmermann                         #
+# --------------------------------------------------------------------------- #
+# 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; version 2 of the License.                              #
+#                                                                             #
+# 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., 59  #
+# Temple Place, Suite 330, Boston, MA 02111-1307 USA                          #
+###############################################################################
+"""
+Module to test the EditCustomForm.
+"""
+from unittest import TestCase
+from unittest.mock import MagicMock
+
+from PyQt4 import QtCore, QtGui, QtTest
+
+from openlp.core.common import Registry
+from openlp.core.lib.searchedit import SearchEdit
+from tests.helpers.testmixin import TestMixin
+
+
+class SearchTypes(object):
+    First = 0
+    Second = 1
+
+
+SECOND_PLACEHOLDER_TEXT = "Second Placeholder Text"
+SEARCH_TYPES = [(SearchTypes.First, QtGui.QIcon(), "First", "First Placeholder Text"),
+                (SearchTypes.Second, QtGui.QIcon(), "Second", SECOND_PLACEHOLDER_TEXT)]
+
+
+class TestSearchEdit(TestCase, TestMixin):
+    """
+    Test the EditCustomForm.
+    """
+    def setUp(self):
+        """
+        Create the UI
+        """
+        Registry.create()
+        self.get_application()
+        self.main_window = QtGui.QMainWindow()
+        Registry().register('main_window', self.main_window)
+
+        self.search_edit = SearchEdit(self.main_window)
+        # To complete set up we have to set the search types.
+        self.search_edit.set_search_types(SEARCH_TYPES)
+
+    def tearDown(self):
+        """
+        Delete all the C++ objects at the end so that we don't have a segfault
+        """
+        del self.main_window
+
+
+    def set_search_types_test(self):
+        """
+        Test setting the search types of the search edit.
+        """
+        # GIVEN: The search edit with the search types set. NOTE: The set_search_types(types) is called in the setUp()
+        # method!
+
+        # WHEN:
+
+        # THEN: The first search type should be the first one in the list.
+        assert self.search_edit.current_search_type() == SearchTypes.First, "The first search type should be selected."
+
+    def set_current_search_type_test(self):
+        """
+        Test if changing the search type works.
+        """
+        # GIVEN:
+        # WHEN: Change the search type
+        result = self.search_edit.set_current_search_type(SearchTypes.Second)
+
+        # THEN:
+        assert result, "The call should return success (True)."
+        assert self.search_edit.current_search_type() == SearchTypes.Second,\
+            "The search type should be SearchTypes.Second"
+        assert self.search_edit.placeholderText() == SECOND_PLACEHOLDER_TEXT,\
+            "The correct placeholder text should be 'Second Placeholder Text'."
+
+    def clear_button_visibility_test(self):
+        """
+        Test if the clear button is hidden/shown correctly.
+        """
+        # GIVEN: Everything is left to its defaults (hidden).
+        assert self.search_edit.clear_button.isHidden(), "Pre condition not met. Button should be hidden."
+
+        # WHEN: Type something in the search edit.
+        QtTest.QTest.keyPress(self.search_edit, QtCore.Qt.Key_A)
+        QtTest.QTest.keyRelease(self.search_edit, QtCore.Qt.Key_A)
+
+        # THEN: The clear button should not be hidden any more.
+        assert not self.search_edit.clear_button.isHidden(), "The clear button should be visible."
+
+    def press_clear_button_test(self):
+        """
+        Check if the search edit behaves correctly when pressing the clear button.
+        """
+        # GIVEN: A search edit with text.
+        QtTest.QTest.keyPress(self.search_edit, QtCore.Qt.Key_A)
+        QtTest.QTest.keyRelease(self.search_edit, QtCore.Qt.Key_A)
+
+        # WHEN: Press the clear button.
+        QtTest.QTest.mouseClick(self.search_edit.clear_button, QtCore.Qt.LeftButton)
+
+        # THEN: The search edit text should be cleared and the button be hidden.
+        assert not self.search_edit.text(), "The search edit should not have any text."
+        assert self.search_edit.clear_button.isHidden(), "The clear button should be hidden."
+
+    def resize_event_test(self):
+        """
+        Just check if the resizeEvent() method is re-implemented.
+        """
+        assert hasattr(self.search_edit, "resizeEvent"), "The search edit should re-implement the resizeEvent method."
+
+        
\ No newline at end of file


Follow ups