From 267c6f2ac71f92999e969232431ba04678e7437e Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 07:54:39 +0200 Subject: Adding upstream version 4:24.2.0. Signed-off-by: Daniel Baumann --- sw/qa/python/check_xmodifiable2.py | 194 +++++++++++++++++++++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 sw/qa/python/check_xmodifiable2.py (limited to 'sw/qa/python/check_xmodifiable2.py') diff --git a/sw/qa/python/check_xmodifiable2.py b/sw/qa/python/check_xmodifiable2.py new file mode 100644 index 0000000000..b860e1f31d --- /dev/null +++ b/sw/qa/python/check_xmodifiable2.py @@ -0,0 +1,194 @@ +#! /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 +from org.libreoffice.unotest import UnoInProcess + + +class XModifiable2(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls._uno = UnoInProcess() + cls._uno.setUp() + + @classmethod + def tearDownClass(cls): + cls._uno.tearDown() + + def test_XModifiable2(self): + # initialization + xDoc = self._uno.openEmptyWriterDoc() + + # perform unit test + self.assertTrue(xDoc.isSetModifiedEnabled()) + + self.assertTrue(xDoc.disableSetModified()) + self.assertFalse(xDoc.isSetModifiedEnabled()) + + self.assertFalse(xDoc.enableSetModified()) + self.assertTrue(xDoc.isSetModifiedEnabled()) + + # clean up + xDoc.close(True) + + def test_XModifiable2_Double(self): + # initialization + xDoc = self._uno.openEmptyWriterDoc() + + # perform unit test + self.assertTrue(xDoc.isSetModifiedEnabled()) + + # try to disable + # Expected return value: + # `TRUE` the changing of the modified state was disabled + self.assertTrue(xDoc.disableSetModified()) + self.assertFalse(xDoc.isSetModifiedEnabled()) + + # try to disable twice + # Expected return value: + # `FALSE` the changing of the modified state was already disabled + self.assertFalse(xDoc.disableSetModified()) + self.assertFalse(xDoc.isSetModifiedEnabled()) + + # try to disable third time + # Expected return value: + # `FALSE` the changing of the modified state was already disabled + # i.e. the same as in previous call + self.assertFalse(xDoc.disableSetModified()) + self.assertFalse(xDoc.isSetModifiedEnabled()) + + # try to enable + # Expected return value: + # `FALSE` the changing of the modified state was enabled + self.assertFalse(xDoc.enableSetModified()) + self.assertTrue(xDoc.isSetModifiedEnabled()) + + # try to enable twice + # Expected return value: + # `TRUE` the changing of the modified state was already enabled + self.assertTrue(xDoc.enableSetModified()) + self.assertTrue(xDoc.isSetModifiedEnabled()) + + # try to enable third time + # Expected return value: + # `TRUE` the changing of the modified state was already enabled + # i.e. the same as in previous call + self.assertTrue(xDoc.enableSetModified()) + self.assertTrue(xDoc.isSetModifiedEnabled()) + + # clean up + xDoc.close(True) + + def test_XModifiable2_setModified(self): + # initialization + xDoc = self._uno.openEmptyWriterDoc() + + # perform unit test + # try to set modified flag when modification enabled + self.assertTrue(xDoc.isSetModifiedEnabled()) + + self.assertFalse(xDoc.isModified()) + xDoc.setModified(True) + self.assertTrue(xDoc.isModified()) + + xDoc.setModified(False) + self.assertFalse(xDoc.isModified()) + + # try to set modified flag when modification disabled + self.assertTrue(xDoc.disableSetModified()) + self.assertFalse(xDoc.isSetModifiedEnabled()) + + self.assertFalse(xDoc.isModified()) + xDoc.setModified(True) + self.assertFalse(xDoc.isModified()) + + self.assertFalse(xDoc.enableSetModified()) + self.assertTrue(xDoc.isSetModifiedEnabled()) + + # document is still not modified + self.assertFalse(xDoc.isModified()) + + # try to set modified flag when modification enabled + # and when we have changed the modification possibility + self.assertTrue(xDoc.isSetModifiedEnabled()) + + self.assertFalse(xDoc.isModified()) + xDoc.setModified(True) + self.assertTrue(xDoc.isModified()) + + xDoc.setModified(False) + self.assertFalse(xDoc.isModified()) + + # clean up + xDoc.close(True) + + def test_setModified_ByContent(self): + # initialization + xDoc = self._uno.openEmptyWriterDoc() + + # perform unit test: + # set modified flag using text editing + # when modification of the flag is enabled + self.assertTrue(xDoc.isSetModifiedEnabled()) + self.assertFalse(xDoc.isModified()) + + cursor = xDoc.Text.createTextCursor() + xDoc.Text.insertString(cursor, "The first paragraph", 0) + + self.assertTrue(xDoc.isSetModifiedEnabled()) + self.assertTrue(xDoc.isModified()) + + # clean up + xDoc.close(True) + + def test_setModified_ByContent_Blocked(self): + # initialization + xDoc = self._uno.openEmptyWriterDoc() + + # perform unit test: + # it is unable to set modified flag using text editing + # when modification of the flag was disabled + self.assertTrue(xDoc.disableSetModified()) + self.assertFalse(xDoc.isSetModifiedEnabled()) + self.assertFalse(xDoc.isModified()) + + cursor = xDoc.Text.createTextCursor() + xDoc.Text.insertString(cursor, "The first paragraph", 0) + + self.assertFalse(xDoc.isSetModifiedEnabled()) + self.assertFalse(xDoc.isModified()) + + # clean up + xDoc.close(True) + + def test_WriteProtectedDocument(self): + # initialization + xDoc = self._uno.openTemplateFromTDOC('WriteProtected.odt') + + # perform unit test: + # it is able to set modified flag using text editing despite + # ODT file was marked to be opened as read-only + self.assertTrue(xDoc.isSetModifiedEnabled()) + self.assertFalse(xDoc.isModified()) + + cursor = xDoc.Text.createTextCursor() + xDoc.Text.insertString(cursor, "The first paragraph", 0) + + self.assertTrue(xDoc.isSetModifiedEnabled()) + self.assertTrue(xDoc.isModified()) + + # clean up + xDoc.close(True) + + +if __name__ == '__main__': + unittest.main() + +# vim: set shiftwidth=4 softtabstop=4 expandtab: -- cgit v1.2.3