From f2a2468e015d5e34afbf8f18506dfda68fd31938 Mon Sep 17 00:00:00 2001 From: Felipe Polo-Wood Date: Sat, 19 Oct 2013 19:18:31 -0400 Subject: [PATCH] Added tests for loading titles and notes on three presentation controllers --- .../presentations/test_impresscontroller.py | 92 ++++++++++++++++++ .../test_powerpointcontroller.py | 89 +++++++++++++++++ .../test_powerpointviewercontroller.py | 90 +++++++++++++++++ tests/resources/test.pptx | Bin 0 -> 46925 bytes 4 files changed, 271 insertions(+) create mode 100644 tests/functional/openlp_plugins/presentations/test_impresscontroller.py create mode 100644 tests/functional/openlp_plugins/presentations/test_powerpointcontroller.py create mode 100644 tests/functional/openlp_plugins/presentations/test_powerpointviewercontroller.py create mode 100644 tests/resources/test.pptx diff --git a/tests/functional/openlp_plugins/presentations/test_impresscontroller.py b/tests/functional/openlp_plugins/presentations/test_impresscontroller.py new file mode 100644 index 000000000..82ff71270 --- /dev/null +++ b/tests/functional/openlp_plugins/presentations/test_impresscontroller.py @@ -0,0 +1,92 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2013 Raoul Snyman # +# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan # +# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, # +# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. # +# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, # +# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # +# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, # +# Frode Woldsund, Martin Zibricky, Patrick Zimmermann # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Functional tests to test the Impress class and related methods. +""" +from unittest import TestCase +import os +from mock import MagicMock, patch +from openlp.plugins.presentations.lib.impresscontroller import ImpressController, ImpressDocument + +TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources')) + +class TestLibModule(TestCase): + + def setUp(self): + mocked_plugin = MagicMock() + mocked_plugin.settings_section = 'presentations' + self.file_name = os.path.join(TEST_PATH,"test.pptx") + self.ppc = ImpressController(mocked_plugin) + self.doc = ImpressDocument(self.ppc,self.file_name) + self.doc.presentation_deleted() + + #add _test to the function + # I don't haver Impress to verify + def verify_installation_test(self): + """ + Test the installation of ImpressViewer + """ + # GIVEN: A boolean value set to true + # WHEN: We "convert" it to a bool + isInstalled = self.ppc.check_available() + # THEN: We should get back a True bool + assert isInstalled is True, u'The result should be True' + + # add _test to the following if necessary + # I don't have Impress to verify + def verify_loading_document(self): + """ + Test loading a document + """ + # GIVEN: the filename + print(self.file_name) + # WHEN: loading the filename + self.doc = ImpressDocument(self.ppc,self.file_name) + self.doc.load_presentation() + result = self.doc.is_loaded() + # THEN: result should be true + assert result is True, u'The result should be True' + + def verify_titles_test(self): + """ + Test reading the titles from Impress + """ + # GIVEN: + self.doc = ImpressDocument(self.ppc,self.file_name) + self.doc.load_presentation() + self.doc.create_titles_and_notes() + #self.doc.load_presentation() + # WHEN reading the titles and notes + titles,notes = self.doc.get_titles_and_notes() + print("titles: ".join(titles)) + print("notes: ".join(notes)) + # THEN there should be exactly 5 titles and 5 notes + assert len(titles)==5, u'There should be five titles' + assert len(notes)==5, u'Theres should be five notes' + \ No newline at end of file diff --git a/tests/functional/openlp_plugins/presentations/test_powerpointcontroller.py b/tests/functional/openlp_plugins/presentations/test_powerpointcontroller.py new file mode 100644 index 000000000..7a7f5b4d3 --- /dev/null +++ b/tests/functional/openlp_plugins/presentations/test_powerpointcontroller.py @@ -0,0 +1,89 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2013 Raoul Snyman # +# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan # +# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, # +# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. # +# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, # +# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # +# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, # +# Frode Woldsund, Martin Zibricky, Patrick Zimmermann # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Functional tests to test the PowerPointController class and related methods. +""" +from unittest import TestCase +import os +from mock import MagicMock, patch +from openlp.plugins.presentations.lib.powerpointcontroller import PowerpointController, PowerpointDocument + +TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources')) + +class TestLibModule(TestCase): + + def setUp(self): + mocked_plugin = MagicMock() + mocked_plugin.settings_section = 'presentations' + self.ppc = PowerpointController(mocked_plugin) + self.file_name = os.path.join(TEST_PATH,"test.pptx") + self.doc = PowerpointDocument(self.ppc,self.file_name) + self.doc.presentation_deleted() + + def verify_installation_test(self): + """ + Test the installation of Powerpoint + """ + # GIVEN: A boolean value set to true + # WHEN: We "convert" it to a bool + isInstalled = self.ppc.check_available() + # THEN: We should get back a True bool + assert isInstalled is True, u'The result should be True' + + # add _test to the following if necessary + def verify_loading_document(self): + """ + Test loading a document in PowerPoint + """ + # GIVEN: the filename + print(self.file_name) + # WHEN: loading the filename + self.doc = PowerpointDocument(self.ppc,self.file_name) + self.doc.load_presentation() + result = self.doc.is_loaded() + # THEN: result should be true + assert result is True, u'The result should be True' + + def verify_titles_test(self): + """ + Test reading the titles from PowerPoint + """ + # GIVEN: + self.doc = PowerpointDocument(self.ppc,self.file_name) + self.doc.load_presentation() + self.doc.create_titles_and_notes() + #self.doc.load_presentation() + # WHEN reading the titles and notes + titles,notes = self.doc.get_titles_and_notes() + print("titles: ".join(titles)) + print("notes: ".join(notes)) + # THEN there should be exactly 5 titles and 5 notes + assert len(titles)==5, u'There should be five titles' + assert len(notes)==5, u'Theres should be five notes' + \ No newline at end of file diff --git a/tests/functional/openlp_plugins/presentations/test_powerpointviewercontroller.py b/tests/functional/openlp_plugins/presentations/test_powerpointviewercontroller.py new file mode 100644 index 000000000..398cb4209 --- /dev/null +++ b/tests/functional/openlp_plugins/presentations/test_powerpointviewercontroller.py @@ -0,0 +1,90 @@ +# -*- coding: utf-8 -*- +# vim: autoindent shiftwidth=4 expandtab textwidth=120 tabstop=4 softtabstop=4 + +############################################################################### +# OpenLP - Open Source Lyrics Projection # +# --------------------------------------------------------------------------- # +# Copyright (c) 2008-2013 Raoul Snyman # +# Portions copyright (c) 2008-2013 Tim Bentley, Gerald Britton, Jonathan # +# Corwin, Samuel Findlay, Michael Gorven, Scott Guerrieri, Matthias Hub, # +# Meinert Jordan, Armin Köhler, Erik Lundin, Edwin Lunando, Brian T. Meyer. # +# Joshua Miller, Stevan Pettit, Andreas Preikschat, Mattias Põldaru, # +# Christian Richter, Philip Ridout, Simon Scudder, Jeffrey Smith, # +# Maikel Stuivenberg, Martin Thompson, Jon Tibble, Dave Warnock, # +# Frode Woldsund, Martin Zibricky, Patrick Zimmermann # +# --------------------------------------------------------------------------- # +# 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 # +############################################################################### +""" +Functional tests to test the PptviewController class and related methods. +""" +from unittest import TestCase +import os +from mock import MagicMock, patch +from openlp.plugins.presentations.lib.pptviewcontroller import PptviewController, PptviewDocument + +TEST_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), '..', '..', '..', 'resources')) + +class TestLibModule(TestCase): + + def setUp(self): + mocked_plugin = MagicMock() + mocked_plugin.settings_section = 'presentations' + self.ppc = PptviewController(mocked_plugin) + self.file_name = os.path.join(TEST_PATH,"test.pptx") + self.doc = PptviewDocument(self.ppc,self.file_name) + self.doc.presentation_deleted() + + #add _test to the function + # I don't haver powerpointviewer to verify + def verify_installation(self): + """ + Test the installation of PowerpointViewer + """ + # GIVEN: A boolean value set to true + # WHEN: We "convert" it to a bool + isInstalled = self.ppc.check_available() + # THEN: We should get back a True bool + assert isInstalled is True, u'The result should be True' + + # add _test to the following if necessary + # I don't have powerpointviewer to verify + def verify_loading_document(self): + """ + Test loading a document in PowerpointViewer + """ + # GIVEN: the filename + print(self.file_name) + # WHEN: loading the filename + self.doc = PptviewDocument(self.ppc,self.file_name) + self.doc.load_presentation() + result = self.doc.is_loaded() + # THEN: result should be true + assert result is True, u'The result should be True' + + def verify_titles_test(self): + """ + Test reading the titles from PowerpointViewer + """ + # GIVEN: + self.doc = PptviewDocument(self.ppc,self.file_name) + self.doc.create_titles_and_notes() + # WHEN reading the titles and notes + titles,notes = self.doc.get_titles_and_notes() + print("titles: ".join(titles)) + print("notes: ".join(notes)) + # THEN there should be exactly 5 titles and 5 notes + assert len(titles)==5, u'There should be five titles' + assert len(notes)==5, u'Theres should be five notes' + \ No newline at end of file diff --git a/tests/resources/test.pptx b/tests/resources/test.pptx new file mode 100644 index 0000000000000000000000000000000000000000..c8beab172e7377370dc82d91809874ce255dde3d GIT binary patch literal 46925 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 arQLPH*5-w@bP$O|>E{XkZ{7RA`ScghAm`oy literal 0 HcmV?d00001