openlp/tests/interfaces/openlp_plugins/custom/forms/test_customslideform.py

68 lines
2.0 KiB
Python
Raw Normal View History

2013-03-30 09:01:21 +00:00
"""
Module to test the EditCustomSlideForm.
"""
from unittest import TestCase
from mock import MagicMock, patch
from PyQt4 import QtGui
from openlp.core.lib import Registry
from openlp.plugins.custom.forms.editcustomslideform import EditCustomSlideForm
class TestEditCustomSlideForm(TestCase):
"""
Test the EditCustomSlideForm.
"""
def setUp(self):
"""
Create the UI
"""
Registry.create()
self.app = QtGui.QApplication([])
self.main_window = QtGui.QMainWindow()
Registry().register(u'main_window', self.main_window)
self.form = EditCustomSlideForm()
def tearDown(self):
"""
Delete all the C++ objects at the end so that we don't have a segfault
"""
del self.form
del self.main_window
del self.app
def basic_test(self):
"""
Test if the dialog is correctly set up.
"""
# GIVEN: A mocked QDialog.exec_() method
with patch(u'PyQt4.QtGui.QDialog.exec_') as mocked_exec:
# WHEN: Show the dialog.
self.form.exec_()
# THEN: The dialog should be empty.
assert self.form.slide_text_edit.toPlainText() == u'', u'There should not be any text in the text editor.'
def set_text_test(self):
"""
Test the set_text() method.
"""
# GIVEN: A mocked QDialog.exec_() method
with patch(u'PyQt4.QtGui.QDialog.exec_') as mocked_exec:
mocked_set_focus = MagicMock()
self.form.slide_text_edit.setFocus = mocked_set_focus
wanted_text = u'THIS TEXT SHOULD BE SHOWN.'
# WHEN: Show the dialog and set the text.
self.form.exec_()
self.form.set_text(wanted_text)
# THEN: The dialog should show the text.
assert self.form.slide_text_edit.toPlainText() == wanted_text, \
u'The text editor should show the correct text.'
# THEN: The dialog should have focus.
mocked_set_focus.assert_called_with()