1
0
Fork 0
libreoffice/sw/qa/python/check_xmodifiable2.py
Daniel Baumann 8e63e14cf6
Adding upstream version 4:25.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:20:04 +02:00

194 lines
6.1 KiB
Python

#! /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: