diff --git a/tests/functional/openlp_core_lib/test_htmlbuilder.py b/tests/functional/openlp_core_lib/test_htmlbuilder.py index ae6a96a23..5e2ed0fa8 100644 --- a/tests/functional/openlp_core_lib/test_htmlbuilder.py +++ b/tests/functional/openlp_core_lib/test_htmlbuilder.py @@ -7,9 +7,168 @@ from mock import MagicMock, patch from PyQt4 import QtCore -from openlp.core.lib.htmlbuilder import build_footer_css, build_lyrics_outline_css, build_lyrics_css +from openlp.core.lib.htmlbuilder import build_html, build_background_css, build_lyrics_css, build_lyrics_outline_css, \ + build_lyrics_format_css, build_footer_css +BUILD_HTML = """ + + + +OpenLP Display + + + + + + +plugin HTML +
+ +
+ + +""" +BACKGROUND_CSS = """ +""" +LYRICS_CSS = 'white-space:pre-wrap; word-wrap: break-word; text-align: left; vertical-align: top; ' + \ + 'font-family: Arial; font-size: 40pt; color: #FFFFFF; line-height: 100%; margin: 0;padding: 0; ' + \ + 'padding-bottom: 0; padding-left: 0px; width: 1260px; height: 921px; ' +LYRICS_OUTLINE_CSS = ' -webkit-text-stroke: 0.125em #000000; -webkit-text-fill-color: #FFFFFF; ' +LYRICS_FORMAT_CSS = """ +""" FOOTER_CSS = """ left: 10px; bottom: 0px; @@ -20,45 +179,79 @@ FOOTER_CSS = """ text-align: left; white-space: nowrap; """ -OUTLINE_CSS = ' -webkit-text-stroke: 0.125em #000000; -webkit-text-fill-color: #FFFFFF; ' -LYRICS_CSS = 'white-space:pre-wrap; word-wrap: break-word; text-align: left; vertical-align: top; ' + \ - 'font-family: Arial; font-size: 40pt; color: #FFFFFF; line-height: 100%; margin: 0;padding: 0; ' + \ - 'padding-bottom: 0; padding-left: 0px; width: 1260px; height: 921px; ' + class Htmbuilder(TestCase): - def build_html(self): - pass - - def build_background_css(self): - pass - - def build_lyrics_css_test(self): + def build_html_test(self): """ + Test the build_html() function + """ + # GIVEN: Mocked arguments and function. + with patch('openlp.core.lib.htmlbuilder.build_background_css') as mocked_build_background_css, \ + patch('openlp.core.lib.htmlbuilder.build_footer_css') as mocked_build_footer_css, \ + patch('openlp.core.lib.htmlbuilder.build_lyrics_css') as mocked_build_lyrics_css: + # Mocked function. + mocked_build_background_css.return_value = '' + mocked_build_footer_css.return_value = 'dummy: dummy;' + mocked_build_lyrics_css.return_value = '' + # Mocked arguments. + item = MagicMock() + item.bg_image_bytes = None + screen = MagicMock() + is_live = False + background = None + plugin = MagicMock() + plugin.get_display_css = MagicMock(return_value='plugin CSS') + plugin.get_display_javascript = MagicMock(return_value='plugin JS') + plugin.get_display_html = MagicMock(return_value='plugin HTML') + plugins = [plugin] + + # WHEN: Create the html. + html = build_html(item, screen, is_live, background, plugins=plugins) + + # THEN: The returned html should match. + assert html == BUILD_HTML + + def build_background_css_tes(self): + """ + Test the build_background_css() function + """ + # THEN: The returned html should match. + pass + + def build_lyrics_css_tes(self): + """ + Test the build_lyrics_css() function """ with patch('openlp.core.lib.htmlbuilder.build_lyrics_format_css') as mocked_method:# mocked_method.return_value = '' item = MagicMock() - item.main = - item.themedata.font_main_shadow = - item.themedata.font_main_shadow_color = - item.themedata.font_main_shadow_size = - item.themedata.font_main_shadow = - print(build_lyrics_css(item)) +# item.main = +# item.themedata.font_main_shadow = +# item.themedata.font_main_shadow_color = +# item.themedata.font_main_shadow_size = +# item.themedata.font_main_shadow = + assert LYRICS_CSS == build_lyrics_css(item), 'The lyrics css should be equal.' def build_lyrics_outline_css_test(self): """ Test the build_lyrics_outline_css() function """ + # GIVEN: The mocked theme data. theme_data = MagicMock() theme_data.font_main_outline = True theme_data.font_main_outline_size = 2 theme_data.font_main_color = '#FFFFFF' theme_data.font_main_outline_color = '#000000' - assert OUTLINE_CSS == build_lyrics_outline_css(theme_data), 'The outline css should be equal.' + # WHEN: Create the css. + css = build_lyrics_outline_css(theme_data) - def build_lyrics_format_css(self): + # THEN: The css should be equal. + assert LYRICS_OUTLINE_CSS == css, 'The outline css should be equal.' + + def build_lyrics_format_css_tes(self): """ Test the build_lyrics_format_css() function """ @@ -68,12 +261,17 @@ class Htmbuilder(TestCase): """ Test the build_footer_css() function """ - # Create a theme. + # GIVEN: Create a theme. item = MagicMock() item.footer = QtCore.QRect(10, 921, 1260, 103) item.themedata.font_footer_name = 'Arial' item.themedata.font_footer_size = 12 item.themedata.font_footer_color = '#FFFFFF' height = 1024 - assert FOOTER_CSS == build_footer_css(item, height), 'The footer strings should be equal.' + + # WHEN: create the css. + css = build_footer_css(item, height) + + # THEN: THE css should be the same. + assert FOOTER_CSS == css,'The footer strings should be equal.'