diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-15 05:54:39 +0000 |
commit | 267c6f2ac71f92999e969232431ba04678e7437e (patch) | |
tree | 358c9467650e1d0a1d7227a21dac2e3d08b622b2 /sw/qa/python/xscriptprovider.py | |
parent | Initial commit. (diff) | |
download | libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.tar.xz libreoffice-267c6f2ac71f92999e969232431ba04678e7437e.zip |
Adding upstream version 4:24.2.0.upstream/4%24.2.0
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'sw/qa/python/xscriptprovider.py')
-rw-r--r-- | sw/qa/python/xscriptprovider.py | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/sw/qa/python/xscriptprovider.py b/sw/qa/python/xscriptprovider.py new file mode 100644 index 0000000000..b63812a590 --- /dev/null +++ b/sw/qa/python/xscriptprovider.py @@ -0,0 +1,80 @@ +#! /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 uno + +from org.libreoffice.unotest import UnoInProcess +from com.sun.star.script.provider import ScriptFrameworkErrorException + +class TestXScriptProvider(unittest.TestCase): + + @classmethod + def setUpClass(cls): + cls._uno = UnoInProcess() + cls._uno.setUp() + + @classmethod + def tearDownClass(cls): + cls._uno.tearDown() + + def setUp(self): + xMasterScriptProviderFactory = create_master_script_provider_factory() + self.xScriptProvider = xMasterScriptProviderFactory.createScriptProvider("") + + def tearDown(self): + del self.xScriptProvider + + def test_get_script_application(self): + #getScript for built-in StarBasic function + xScript = self.xScriptProvider.getScript( + "vnd.sun.star.script:Tools.Misc.CreateNewDocument?language=Basic&" + "location=application") + + self.assertIsNotNone(xScript, "xScript was not loaded") + + def test_get_script_document(self): + #getScript for StarBasic function in loaded document + x_doc = self.__class__._uno.openTemplateFromTDOC("xscriptprovider.odt") + + xMasterScriptProviderFactory = create_master_script_provider_factory() + xScriptProvider = xMasterScriptProviderFactory.createScriptProvider(x_doc) + + xScript = xScriptProvider.getScript( + "vnd.sun.star.script:Standard.Module1.Main?language=Basic&" + "location=document") + + self.assertIsNotNone(xScript, "xScript was not loaded") + + x_doc.close(True) + + def test_get_script_invalid_uri(self): + # getScript fails with invalid URI + with self.assertRaises(ScriptFrameworkErrorException): + self.xScriptProvider.getScript("invalid URI, isn't it?") + + def test_get_script_not_found(self): + # getScript fails when script not found + with self.assertRaises(ScriptFrameworkErrorException): + self.xScriptProvider.getScript( + "vnd.sun.star.script:NotExisting.NotExisting.NotExisting?" + "language=Basic&location=document") + +def create_master_script_provider_factory(): + xServiceManager = uno.getComponentContext().ServiceManager + + return xServiceManager.createInstanceWithContext( + "com.sun.star.script.provider.MasterScriptProviderFactory", + uno.getComponentContext()) + +if __name__ == '__main__': + unittest.main() + +# vim: set shiftwidth=4 softtabstop=4 expandtab: |