From 307b1cab436f63b5e879ca65cf3c74065ee4ad14 Mon Sep 17 00:00:00 2001 From: Serge Krot Date: Mon, 1 Oct 2018 19:54:35 +0200 Subject: sw: new unit test for XRefreshable Change-Id: Idaea2e46451ee80b82764e573fdea1c7bf0c86ef Reviewed-on: https://gerrit.libreoffice.org/61213 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt Reviewed-by: Thorsten Behrens --- sw/qa/python/check_xrefreshable.py | 110 +++++++++++++++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 sw/qa/python/check_xrefreshable.py (limited to 'sw/qa/python') diff --git a/sw/qa/python/check_xrefreshable.py b/sw/qa/python/check_xrefreshable.py new file mode 100644 index 000000000000..2d79a947ad1a --- /dev/null +++ b/sw/qa/python/check_xrefreshable.py @@ -0,0 +1,110 @@ +#! /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.util import XRefreshListener + + +refreshed = 0 + + +class XRefreshListenerExtended(unohelper.Base, XRefreshListener): + @classmethod + def refreshed(self, Event): + global refreshed + refreshed += 1 + + @classmethod + def disposing(self, event): + pass + + +class XRefreshable(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls._uno = UnoInProcess() + cls._uno.setUp() + + @classmethod + def tearDownClass(cls): + cls._uno.tearDown() + + def test_None(self): + global refreshed + refreshed = 0 + xDoc = self._uno.openEmptyWriterDoc() + + # attempt to add/remove none + xDoc.addRefreshListener(None) + xDoc.removeRefreshListener(None) + + # refresh without listeners + xDoc.refresh() + xDoc.close(True) + + def test_refresh(self): + global refreshed + refreshed = 0 + + xDoc = self._uno.openEmptyWriterDoc() + xListener = XRefreshListenerExtended() + xDoc.addRefreshListener(xListener) + xDoc.refresh() + xDoc.removeRefreshListener(xListener) + self.assertEqual(1, refreshed) + xDoc.refresh() + self.assertEqual(1, refreshed) + xDoc.close(True) + + def test_refreshTwice(self): + global refreshed + refreshed = 0 + + xDoc = self._uno.openEmptyWriterDoc() + xListener = XRefreshListenerExtended() + xDoc.addRefreshListener(xListener) + xDoc.refresh() + xDoc.refresh() + xDoc.removeRefreshListener(xListener) + self.assertEqual(2, refreshed) + xDoc.refresh() + self.assertEqual(2, refreshed) + xDoc.close(True) + + def test_DoubleInstances(self): + global refreshed + refreshed = 0 + + xDoc = self._uno.openEmptyWriterDoc() + xListener = XRefreshListenerExtended() + + xDoc.addRefreshListener(xListener) + xDoc.addRefreshListener(xListener) + xDoc.addRefreshListener(xListener) + + xDoc.refresh() + xDoc.refresh() + self.assertEqual(3*2, refreshed) + + refreshed = 0 + xDoc.removeRefreshListener(xListener) + xDoc.refresh() + # two instances should remain in the list + self.assertEqual(2, refreshed) + + xDoc.close(True) + + +if __name__ == '__main__': + unittest.main() + +# vim: set shiftwidth=4 softtabstop=4 expandtab: -- cgit