From 6ef2cc8b598eec2e54ed89f158e80d19321a602c Mon Sep 17 00:00:00 2001 From: suutari-olli Date: Fri, 26 Feb 2016 23:28:01 +0200 Subject: [PATCH] Added test, fixed comment. --- openlp/core/ui/slidecontroller.py | 7 +++-- .../openlp_core_ui/test_slidecontroller.py | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/openlp/core/ui/slidecontroller.py b/openlp/core/ui/slidecontroller.py index 4a3b91b35..350e3fb59 100644 --- a/openlp/core/ui/slidecontroller.py +++ b/openlp/core/ui/slidecontroller.py @@ -601,11 +601,13 @@ class SlideController(DisplayController, RegistryProperties): def __add_actions_to_widget(self, widget): """ Add actions to the widget specified by `widget` - - :param widget: The UI widget for the actions This defines the controls available when Live display has stolen focus. Examples of this happening: Clicking anything in the live window or certain single screen mode scenarios. Needles to say, blank to modes should not be removed from here. + For some reason this required a test. It may be found in test_slidecontroller.py as + "live_stolen_focus_shortcuts_test. If you want to modify things here, you must also modify them there. (Duh) + + :param widget: The UI widget for the actions """ widget.addActions([ self.previous_item, self.next_item, @@ -983,6 +985,7 @@ class SlideController(DisplayController, RegistryProperties): self.update_preview() self.on_toggle_loop() + def on_theme_display(self, checked=None): """ Handle the Theme screen button diff --git a/tests/functional/openlp_core_ui/test_slidecontroller.py b/tests/functional/openlp_core_ui/test_slidecontroller.py index 7f071a835..af11c00bb 100644 --- a/tests/functional/openlp_core_ui/test_slidecontroller.py +++ b/tests/functional/openlp_core_ui/test_slidecontroller.py @@ -685,6 +685,33 @@ class TestSlideController(TestCase): self.assertEqual('mocked_presentation_item_stop', mocked_execute.call_args_list[1][0][0], 'The presentation should have been stopped.') + def live_stolen_focus_shortcuts_test(self): + """ + Test that all the needed shortcuts are available in scenarios where Live has stolen focus. + These are found under def __add_actions_to_widget(self, widget): in slidecontroller.py + """ + # GIVEN: A slide controller, actions needed + slide_controller = SlideController(None) + mocked_widget = MagicMock() + slide_controller.previous_item = MagicMock() + slide_controller.next_item = MagicMock() + slide_controller.previous_service = MagicMock() + slide_controller.next_service = MagicMock() + slide_controller.escape_item = MagicMock() + slide_controller.desktop_screen = MagicMock() + slide_controller.blank_screen = MagicMock() + slide_controller.theme_screen = MagicMock() + + # WHEN: __add_actions_to_widget is called + slide_controller._SlideController__add_actions_to_widget(mocked_widget) + + # THEN: The call to addActions should be correct + mocked_widget.addActions.assert_called_with([ + slide_controller.previous_item, slide_controller.next_item, + slide_controller.previous_service, slide_controller.next_service, + slide_controller.escape_item, slide_controller.desktop_screen, + slide_controller.theme_screen, slide_controller.blank_screen + ]) class TestInfoLabel(TestCase):