diff options
author | Vasily Melenchuk <vasily.melenchuk@cib.de> | 2018-09-20 11:24:48 +0300 |
---|---|---|
committer | Thorsten Behrens <Thorsten.Behrens@CIB.de> | 2018-09-25 22:19:00 +0200 |
commit | 6328c56e1819cf85cb58539f7f3bace8ff577245 (patch) | |
tree | 47f883dc1d704bbcfaeaf2a422683daab59b60f4 /sw/qa/python | |
parent | 67c8049a3abcaf9aa692fc9ba768b5db9fbb2f05 (diff) |
sw: new unit test for XTextFieldsSupplier
Change-Id: I44c2fd97beeaa328774e241459b2a631b6a72030
Reviewed-on: https://gerrit.libreoffice.org/60794
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'sw/qa/python')
-rw-r--r-- | sw/qa/python/testdocuments/xtextfieldssupplier.odt | bin | 0 -> 11259 bytes | |||
-rwxr-xr-x | sw/qa/python/xtextfieldssupplier.py | 89 |
2 files changed, 89 insertions, 0 deletions
diff --git a/sw/qa/python/testdocuments/xtextfieldssupplier.odt b/sw/qa/python/testdocuments/xtextfieldssupplier.odt Binary files differnew file mode 100644 index 000000000000..0b7764a2b6aa --- /dev/null +++ b/sw/qa/python/testdocuments/xtextfieldssupplier.odt diff --git a/sw/qa/python/xtextfieldssupplier.py b/sw/qa/python/xtextfieldssupplier.py new file mode 100755 index 000000000000..ab1e96f89246 --- /dev/null +++ b/sw/qa/python/xtextfieldssupplier.py @@ -0,0 +1,89 @@ +#! /usr/bin/env python +# -*- tab-width: 4; indent-tabs-mode: nil; py-indent-offset: 4 -*- +# +# This file is part of the LibreOffice project. +# +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +import unittest +import unohelper +from org.libreoffice.unotest import UnoInProcess +from com.sun.star.container import NoSuchElementException +import uno + + +class TestXTextFieldsSupplier(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls._uno = UnoInProcess() + cls._uno.setUp() + + @classmethod + def tearDownClass(cls): + cls._uno.tearDown() + + def test_getTextFields(self): + xDoc = self.__class__._uno.openDocFromTDOC("xtextfieldssupplier.odt") + self.assertIsNotNone(xDoc, "document was not loaded") + xTextFieldsSupplier = xDoc + + # Get text fields collection + xTextFields = xTextFieldsSupplier.getTextFields() + self.assertIsNotNone(xTextFields, "getTextFields fails") + + # Iterate through collection and ensure that we receive expected fields + fieldTypesList = [ + "com.sun.star.text.textfield.PageNumber", + "com.sun.star.text.textfield.Annotation", + "com.sun.star.text.textfield.docinfo.CreateDateTime" + ] + xFieldEnum = xTextFields.createEnumeration() + for fieldType, xField in zip(fieldTypesList, xFieldEnum): + self.assertTrue(xField.supportsService(fieldType), + "field " + xField.getPresentation(True) + + " does not support " + fieldType + " service!") + + xDoc.close(True) + + def test_getTextFieldMasters(self): + xDoc = self.__class__._uno.openDocFromTDOC("xtextfieldssupplier.odt") + self.assertIsNotNone(xDoc, "document was not loaded") + xTextFieldsSupplier = xDoc + + # Get text fields master + xFieldMasters = xTextFieldsSupplier.getTextFieldMasters() + self.assertIsNotNone(xFieldMasters, "getTextFieldMasters fails") + self.assertTrue(xFieldMasters.hasElements(), "TextFieldMaster has no elements") + + # Check elements in TextFieldsMaster collection + masterNames = [ + "com.sun.star.text.fieldmaster.SetExpression.Illustration", + "com.sun.star.text.fieldmaster.SetExpression.Table", + "com.sun.star.text.fieldmaster.SetExpression.Text", + "com.sun.star.text.fieldmaster.SetExpression.Drawing", + "com.sun.star.text.fieldmaster.SetExpression.Figure", + ] + for masterName in masterNames: + self.assertTrue(xFieldMasters.hasByName(masterName), + "TextFieldMaster has no element " + masterName) + self.assertIsNotNone(xFieldMasters.getByName(masterName), + "can't get " + masterName + " from TextFieldMaster") + + # Ensure that invalid elements are not accessible + invalidMasterName = "com.sun.star.text.fieldmaster.SetExpression.NoSuchMaster" + self.assertFalse(xFieldMasters.hasByName(invalidMasterName), + "TextFieldMaster has element " + invalidMasterName) + + with self.assertRaises(NoSuchElementException): + xFieldMasters.getByName(invalidMasterName) + + xDoc.close(True) + + +if __name__ == '__main__': + unittest.main() + +# vim: set shiftwidth=4 softtabstop=4 expandtab: |