diff --git a/openlp/core/ui/themeform.py b/openlp/core/ui/themeform.py index 29b04477c..a154cd5a0 100644 --- a/openlp/core/ui/themeform.py +++ b/openlp/core/ui/themeform.py @@ -153,7 +153,7 @@ class ThemeForm(QtWidgets.QWizard, Ui_ThemeWizard, RegistryProperties): Calculate the number of lines on a page by rendering text """ # Do not trigger on start up - if self.currentPage != self.welcome_page: + if self.currentPage() != self.welcome_page: self.update_theme() self.theme_manager.generate_image(self.theme, True) diff --git a/tests/functional/openlp_core/ui/media/test_systemplayer.py b/tests/functional/openlp_core/ui/media/test_systemplayer.py index fc03e2541..1726f7e2e 100644 --- a/tests/functional/openlp_core/ui/media/test_systemplayer.py +++ b/tests/functional/openlp_core/ui/media/test_systemplayer.py @@ -508,6 +508,30 @@ class TestCheckMediaWorker(TestCase): # THEN: The correct values should be set up assert worker is not None + @patch('openlp.core.ui.media.systemplayer.functools.partial') + @patch('openlp.core.ui.media.systemplayer.QtMultimedia.QMediaContent') + def test_start(self, MockQMediaContent, mocked_partial): + """ + Test the start method + """ + # GIVEN: A CheckMediaWorker instance + worker = CheckMediaWorker('file.ogv') + MockQMediaContent.side_effect = lambda x: x + mocked_partial.side_effect = lambda x, y: y + + # WHEN: start() is called + with patch.object(worker, 'error') as mocked_error, \ + patch.object(worker, 'mediaStatusChanged') as mocked_status_change, \ + patch.object(worker, 'setMedia') as mocked_set_media, \ + patch.object(worker, 'play') as mocked_play: + worker.start() + + # THEN: The correct methods should be called + mocked_error.connect.assert_called_once_with('error') + mocked_status_change.connect.assert_called_once_with('media') + mocked_set_media.assert_called_once_with(QtCore.QUrl('file:file.ogv')) + mocked_play.assert_called_once_with() + def test_signals_media(self): """ Test the signals() signal of the CheckMediaWorker class with a "media" origin diff --git a/tests/functional/openlp_core/ui/test_firsttimeform.py b/tests/functional/openlp_core/ui/test_firsttimeform.py index cd507452e..76f1be051 100644 --- a/tests/functional/openlp_core/ui/test_firsttimeform.py +++ b/tests/functional/openlp_core/ui/test_firsttimeform.py @@ -233,3 +233,39 @@ class TestFirstTimeForm(TestCase, TestMixin): mocked_message_box.critical.assert_called_once_with( first_time_form, 'Network Error', 'There was a network error attempting to connect to retrieve ' 'initial configuration information', 'OK') + + @patch('openlp.core.ui.firsttimewizard.Settings') + def test_on_projectors_check_box_checked(self, MockSettings): + """ + Test that the projector panel is shown when the checkbox in the first time wizard is checked + """ + # GIVEN: A First Time Wizard and a mocked settings object + frw = FirstTimeForm(None) + mocked_settings = MagicMock() + mocked_settings.value.return_value = True + MockSettings.return_value = mocked_settings + + # WHEN: on_projectors_check_box_clicked() is called + frw.on_projectors_check_box_clicked() + + # THEN: The visibility of the projects panel should have been set + mocked_settings.value.assert_called_once_with('projector/show after wizard') + mocked_settings.setValue.assert_called_once_with('projector/show after wizard', False) + + @patch('openlp.core.ui.firsttimewizard.Settings') + def test_on_projectors_check_box_unchecked(self, MockSettings): + """ + Test that the projector panel is shown when the checkbox in the first time wizard is checked + """ + # GIVEN: A First Time Wizard and a mocked settings object + frw = FirstTimeForm(None) + mocked_settings = MagicMock() + mocked_settings.value.return_value = False + MockSettings.return_value = mocked_settings + + # WHEN: on_projectors_check_box_clicked() is called + frw.on_projectors_check_box_clicked() + + # THEN: The visibility of the projects panel should have been set + mocked_settings.value.assert_called_once_with('projector/show after wizard') + mocked_settings.setValue.assert_called_once_with('projector/show after wizard', True) diff --git a/tests/openlp_core/ui/test_themeform.py b/tests/openlp_core/ui/test_themeform.py new file mode 100644 index 000000000..a45654943 --- /dev/null +++ b/tests/openlp_core/ui/test_themeform.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2018 OpenLP Developers # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Interface tests to test the ThemeWizard class and related methods. +""" +from unittest import TestCase + +from openlp.core.common.registry import Registry +from openlp.core.ui.themeform import ThemeForm +from tests.helpers.testmixin import TestMixin + + +class TestThemeManager(TestCase, TestMixin): + """ + Test the functions in the ThemeManager module + """ + def setUp(self): + """ + Create the UI + """ + Registry.create() + + def test_create_theme_wizard(self): + """ + Test creating a ThemeForm instance + """ + # GIVEN: A ThemeForm class + # WHEN: An object is created + # THEN: There should be no problems + ThemeForm(None)