Fix bug and test it

This commit is contained in:
Tim Bentley 2016-08-13 05:45:37 +01:00
parent 585321376d
commit a7dd65245a
2 changed files with 40 additions and 1 deletions

View File

@ -1321,7 +1321,7 @@ class ServiceManager(OpenLPMixin, RegistryMixin, QtWidgets.QWidget, Ui_ServiceMa
""" """
The theme may have changed in the settings dialog so make sure the theme combo box is in the correct state. The theme may have changed in the settings dialog so make sure the theme combo box is in the correct state.
""" """
visible = self.renderer.theme_level == ThemeLevel.Global visible = self.renderer.theme_level != ThemeLevel.Global
self.toolbar.actions['theme_combo_box'].setVisible(visible) self.toolbar.actions['theme_combo_box'].setVisible(visible)
self.toolbar.actions['theme_label'].setVisible(visible) self.toolbar.actions['theme_label'].setVisible(visible)
self.regenerate_service_items() self.regenerate_service_items()

View File

@ -27,6 +27,7 @@ from unittest import TestCase
from openlp.core.common import Registry, ThemeLevel from openlp.core.common import Registry, ThemeLevel
from openlp.core.lib import ServiceItem, ServiceItemType, ItemCapabilities from openlp.core.lib import ServiceItem, ServiceItemType, ItemCapabilities
from openlp.core.lib.toolbar import OpenLPToolbar
from openlp.core.ui import ServiceManager from openlp.core.ui import ServiceManager
from tests.functional import MagicMock, patch from tests.functional import MagicMock, patch
@ -592,3 +593,41 @@ class TestServiceManager(TestCase):
# THEN: The "save_as" method is called to save the service # THEN: The "save_as" method is called to save the service
self.assertTrue(result) self.assertTrue(result)
mocked_save_file_as.assert_called_with() mocked_save_file_as.assert_called_with()
@patch(u'openlp.core.ui.servicemanager.ServiceManager.regenerate_service_items')
def test_theme_change(self, mocked_regenerate_service_items):
"""
Test that when a Toolbar theme combobox displays correctly
"""
# GIVEN: A service manager, a service to save with a theme level of the renderer
mocked_renderer = MagicMock()
service_manager = ServiceManager(None)
Registry().register('renderer', mocked_renderer)
service_manager.toolbar = OpenLPToolbar(None)
service_manager.toolbar.add_toolbar_action('theme_combo_box', triggers=MagicMock())
service_manager.toolbar.add_toolbar_action('theme_label', triggers=MagicMock())
# WHEN: The service manager has a Global theme
mocked_renderer.theme_level = ThemeLevel.Global
result = service_manager.theme_change()
# THEN: The the theme toolbar should not be visible
self.assertFalse(service_manager.toolbar.actions['theme_combo_box'].isVisible(),
'The visibility should be False')
# WHEN: The service manager has a Service theme
mocked_renderer.theme_level = ThemeLevel.Service
result = service_manager.theme_change()
# THEN: The the theme toolbar should not be visible
self.assertTrue(service_manager.toolbar.actions['theme_combo_box'].isVisible(),
'The visibility should be True')
# WHEN: The service manager has a Song theme
mocked_renderer.theme_level = ThemeLevel.Song
result = service_manager.theme_change()
# THEN: The the theme toolbar should not be visible
self.assertTrue(service_manager.toolbar.actions['theme_combo_box'].isVisible(),
'The visibility should be true')