Kaydet (Commit) 4a377f5d authored tarafından kadertarlan's avatar kadertarlan Kaydeden (comit) Björn Michaelsen

Convert Java unit test to Python (check_named_property_values.py)

Change-Id: I70d05395b8b5ca89c6a2ebf63c1b4a7760a1559e
Reviewed-on: https://gerrit.libreoffice.org/21829Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarBjörn Michaelsen <bjoern.michaelsen@canonical.com>
üst 34fed415
...@@ -30,7 +30,6 @@ $(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\ ...@@ -30,7 +30,6 @@ $(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/indeterminateState/CheckIndeterminateState \ sw/qa/complex/indeterminateState/CheckIndeterminateState \
sw/qa/complex/writer/CheckBookmarks \ sw/qa/complex/writer/CheckBookmarks \
sw/qa/complex/writer/CheckIndexedPropertyValues \ sw/qa/complex/writer/CheckIndexedPropertyValues \
sw/qa/complex/writer/CheckNamedPropertyValues \
sw/qa/complex/writer/CheckTable \ sw/qa/complex/writer/CheckTable \
sw/qa/complex/writer/LoadSaveTest \ sw/qa/complex/writer/LoadSaveTest \
sw/qa/complex/writer/TestDocument \ sw/qa/complex/writer/TestDocument \
...@@ -51,7 +50,6 @@ $(eval $(call gb_JunitTest_add_classes,sw_complex,\ ...@@ -51,7 +50,6 @@ $(eval $(call gb_JunitTest_add_classes,sw_complex,\
complex.writer.CheckBookmarks \ complex.writer.CheckBookmarks \
complex.writer.CheckTable \ complex.writer.CheckTable \
complex.writer.CheckIndexedPropertyValues \ complex.writer.CheckIndexedPropertyValues \
complex.writer.CheckNamedPropertyValues \
complex.writer.TextPortionEnumerationTest \ complex.writer.TextPortionEnumerationTest \
)) ))
......
...@@ -18,6 +18,7 @@ $(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\ ...@@ -18,6 +18,7 @@ $(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\
check_flies \ check_flies \
check_fields \ check_fields \
check_cross_references \ check_cross_references \
check_named_property_values \
check_styles \ check_styles \
check_table \ check_table \
get_expression \ get_expression \
......
/*
* 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/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
package complex.writer;
import com.sun.star.beans.PropertyValue;
import com.sun.star.container.XNameContainer;
import com.sun.star.uno.UnoRuntime;
import com.sun.star.uno.Type;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
import org.openoffice.test.OfficeConnection;
import static org.junit.Assert.*;
/**
*
*/
public class CheckNamedPropertyValues {
@Test public void checkNamedPropertyValues()
throws com.sun.star.uno.Exception
{
Object instance = connection.getComponentContext().getServiceManager().
createInstanceWithContext( "com.sun.star.document.NamedPropertyValues", connection.getComponentContext());
XNameContainer xCont = UnoRuntime.queryInterface(XNameContainer.class, instance);
assertNotNull("XNameContainer was queried but returned null.", xCont);
PropertyValue[] prop1 = new PropertyValue[1];
prop1[0] = new PropertyValue();
prop1[0].Name = "Jupp";
prop1[0].Value = "GoodGuy";
PropertyValue[] prop2 = new PropertyValue[1];
prop2[0] = new PropertyValue();
prop2[0].Name = "Horst";
prop2[0].Value = "BadGuy";
Type t = xCont.getElementType();
assertFalse("Initial container is not empty.", xCont.hasElements());
xCont.insertByName("prop1", prop1);
PropertyValue[]ret = (PropertyValue[])xCont.getByName("prop1");
assertEquals(prop1[0].Name, ret[0].Name);
assertEquals(prop1[0].Value, ret[0].Value);
xCont.replaceByName("prop1", prop2);
ret = (PropertyValue[])xCont.getByName("prop1");
assertEquals(prop2[0].Name, ret[0].Name);
assertEquals(prop2[0].Value, ret[0].Value);
xCont.removeByName("prop1");
assertFalse("Could not remove PropertyValue.", xCont.hasElements());
xCont.insertByName("prop1", prop1);
xCont.insertByName("prop2", prop2);
assertTrue("Did not insert PropertyValue.", xCont.hasElements());
String[] names = xCont.getElementNames();
assertEquals("Not all element names were returned.", 2, names.length);
for (int i=0; i<names.length; i++) {
assertTrue(
"Got a wrong element name",
names[i].equals("prop1") || names[i].equals("prop2"));
}
try {
xCont.insertByName("prop2", prop1);
fail("ElementExistException was not thrown.");
}
catch(com.sun.star.container.ElementExistException e) {
}
try {
xCont.insertByName("prop3", "Example String");
fail("IllegalArgumentException was not thrown.");
}
catch(com.sun.star.lang.IllegalArgumentException e) {
}
try {
xCont.removeByName("prop3");
fail("NoSuchElementException was not thrown.");
}
catch(com.sun.star.container.NoSuchElementException e) {
}
}
@BeforeClass public static void setUpConnection() throws Exception {
connection.setUp();
}
@AfterClass public static void tearDownConnection()
throws InterruptedException, com.sun.star.uno.Exception
{
connection.tearDown();
}
private static final OfficeConnection connection = new OfficeConnection();
}
'''
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/.
This file incorporates work covered by the following license notice:
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed
with this work for additional information regarding copyright
ownership. The ASF licenses this file to you under the Apache
License, Version 2.0 (the "License"); you may not use this file
except in compliance with the License. You may obtain a copy of
the License at http://www.apache.org/licenses/LICENSE-2.0 .
'''
import unittest
import unohelper
import os
import uno
from org.libreoffice.unotest import UnoInProcess
from com.sun.star.beans import PropertyValue
from com.sun.star.container import XNameContainer
from org.libreoffice.unotest import OfficeConnection
class CheckNamedPropertyValues(unittest.TestCase):
@classmethod
def setUpClass(cls):
cls._uno = UnoInProcess()
cls._uno.setUp()
cls.xContext = cls._uno.getContext()
cls.xDoc = cls._uno.openEmptyWriterDoc()
@classmethod
def tearDownClass(cls):
cls._uno.tearDown()
def test_checkNamedPropertyValues(self):
xServiceManager = self.xContext.ServiceManager
xCont = xServiceManager.createInstanceWithContext('com.sun.star.document.NamedPropertyValues', self.xContext)
p1 = PropertyValue(Name="Jupp", Value="GoodGuy")
prop1 = uno.Any("[]com.sun.star.beans.PropertyValue", (p1,))
p2 = PropertyValue(Name="Horst", Value="BadGuy")
prop2 = uno.Any("[]com.sun.star.beans.PropertyValue", (p2,))
t = xCont.getElementType()
self.assertFalse(xCont.hasElements()) #Initial container is not empty
uno.invoke(xCont, "insertByName", ("prop1", prop1))
ret = xCont["prop1"]
self.assertEqual(p1.Name, ret[0].Name)
self.assertEqual(p1.Value, ret[0].Value)
uno.invoke(xCont, "replaceByName", ("prop1", prop2))
ret = xCont["prop1"]
self.assertEqual(p2.Name, ret[0].Name)
self.assertEqual(p2.Value, ret[0].Value)
xCont.removeByName("prop1")
self.assertFalse(xCont.hasElements()) #Could not remove PropertyValue.
uno.invoke(xCont, "insertByName", ("prop1", prop1))
uno.invoke(xCont, "insertByName", ("prop2", prop2))
self.assertTrue(xCont.hasElements()) #Did not insert PropertyValue
names = xCont.getElementNames()
self.assertEqual(2, len(names)) #Not all element names were returned
for i in range(len(names)):
self.assertTrue( names[i]=="prop1" or names[i]=="prop2") #Got a wrong element name
with self.assertRaises(Exception):
uno.invoke(xCont, "insertByName", ("prop2", prop1))
with self.assertRaises(Exception):
uno.invoke(xCont, "insertByName",("prop3", "Example String"))
with self.assertRaises(Exception):
xCont.removeByName("prop3")
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment