Kaydet (Commit) db796cbd authored tarafından kadertarlan's avatar kadertarlan Kaydeden (comit) jan iversen

tdf#97362: Convert Java unit test to Python (check_indexed_property_values.py)

Change-Id: I6c3be8496b4a2225375072d9380d5e226b663905
Reviewed-on: https://gerrit.libreoffice.org/21853Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarjan iversen <jani@documentfoundation.org>
üst 0ce412f3
......@@ -29,7 +29,6 @@ $(eval $(call gb_JunitTest_add_sourcefiles,sw_complex,\
sw/qa/complex/checkColor/CheckChangeColor \
sw/qa/complex/indeterminateState/CheckIndeterminateState \
sw/qa/complex/writer/CheckBookmarks \
sw/qa/complex/writer/CheckIndexedPropertyValues \
sw/qa/complex/writer/CheckTable \
sw/qa/complex/writer/LoadSaveTest \
sw/qa/complex/writer/TestDocument \
......@@ -49,7 +48,6 @@ $(eval $(call gb_JunitTest_add_classes,sw_complex,\
complex.checkColor.CheckChangeColor \
complex.writer.CheckBookmarks \
complex.writer.CheckTable \
complex.writer.CheckIndexedPropertyValues \
complex.writer.TextPortionEnumerationTest \
))
......
......@@ -15,10 +15,11 @@ $(eval $(call gb_PythonTest_set_defs,sw_python,\
$(eval $(call gb_PythonTest_add_modules,sw_python,$(SRCDIR)/sw/qa/python,\
check_index \
check_flies \
check_fields \
check_cross_references \
check_named_property_values \
check_flies \
check_fields \
check_cross_references \
check_named_property_values \
check_indexed_property_values \
check_styles \
check_table \
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.XIndexContainer;
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.*;
/**
* Test the com.sun.star.document.IndexedPropertyValues service
*/
public class CheckIndexedPropertyValues {
@Test public void checkIndexedPropertyValues()
throws com.sun.star.uno.Exception
{
Object instance = connection.getComponentContext().getServiceManager().
createInstanceWithContext(
"com.sun.star.document.IndexedPropertyValues",
connection.getComponentContext());
XIndexContainer xCont = UnoRuntime.queryInterface(XIndexContainer.class, instance);
assertNotNull("XIndexContainer 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";
PropertyValue[] prop3 = new PropertyValue[1];
prop3[0] = new PropertyValue();
prop3[0].Name = "Peter";
prop3[0].Value = "FamilyGuy";
Type t = xCont.getElementType();
assertEquals("Initial container is not empty", 0, xCont.getCount());
xCont.insertByIndex(0, prop1);
PropertyValue[]ret = (PropertyValue[])xCont.getByIndex(0);
assertEquals(prop1[0].Name, ret[0].Name);
assertEquals(prop1[0].Value, ret[0].Value);
xCont.replaceByIndex(0, prop2);
ret = (PropertyValue[])xCont.getByIndex(0);
assertEquals(prop2[0].Name, ret[0].Name);
assertEquals(prop2[0].Value, ret[0].Value);
xCont.removeByIndex(0);
assertTrue("Could not remove PropertyValue.",
!xCont.hasElements() && xCont.getCount()==0);
xCont.insertByIndex(0, prop1);
xCont.insertByIndex(1, prop2);
assertTrue("Did not insert PropertyValue.",
xCont.hasElements() && xCont.getCount()==2);
try {
xCont.removeByIndex(1);
}
catch (com.sun.star.lang.IndexOutOfBoundsException e) {
fail("Could not remove last PropertyValue");
}
xCont.insertByIndex(1, prop2);
xCont.insertByIndex(1, prop3);
ret = (PropertyValue[])xCont.getByIndex(1);
assertEquals(prop3[0].Name, ret[0].Name);
assertEquals(prop3[0].Value, ret[0].Value);
try {
xCont.insertByIndex(25, prop2);
fail("IllegalArgumentException was not thrown.");
}
catch(com.sun.star.lang.IndexOutOfBoundsException e) {
}
try {
xCont.removeByIndex(25);
fail("IndexOutOfBoundsException was not thrown.");
}
catch(com.sun.star.lang.IndexOutOfBoundsException e) {
}
try {
xCont.insertByIndex(3, "Example String");
fail("IllegalArgumentException was not thrown.");
}
catch(com.sun.star.lang.IllegalArgumentException 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 uno
from org.libreoffice.unotest import UnoInProcess
from com.sun.star.beans import PropertyValue
from com.sun.star.container import XIndexContainer
from org.libreoffice.unotest import OfficeConnection
class CheckIndexedPropertyValues(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_checkIndexedPropertyValues(self):
xServiceManager = self.xContext.ServiceManager
xCont = xServiceManager.createInstanceWithContext('com.sun.star.document.IndexedPropertyValues', 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,))
p3 = PropertyValue(Name="Peter", Value="FamilyGuy")
prop3 = uno.Any("[]com.sun.star.beans.PropertyValue", (p3,))
t = xCont.getElementType()
self.assertEqual(0, xCont.getCount()) #Initial container is not empty
uno.invoke(xCont, "insertByIndex", (0, prop1))
ret = xCont.getByIndex(0)
self.assertEqual(p1.Name, ret[0].Name)
self.assertEqual(p1.Value, ret[0].Value)
uno.invoke(xCont, "replaceByIndex", (0, prop2))
ret = xCont.getByIndex(0)
self.assertEqual(p2.Name, ret[0].Name)
self.assertEqual(p2.Value, ret[0].Value)
xCont.removeByIndex(0)
self.assertTrue(not(xCont.hasElements()) and xCont.getCount()==0) #Could not remove PropertyValue
uno.invoke(xCont, "insertByIndex", (0, prop1))
uno.invoke(xCont, "insertByIndex", (1, prop2))
self.assertTrue(xCont.hasElements() and xCont.getCount()==2) #Did not insert PropertyValue
uno.invoke(xCont, "insertByIndex", (1, prop2))
uno.invoke(xCont, "insertByIndex", (1, prop3))
ret = xCont.getByIndex(1)
self.assertEqual(p3.Name, ret[0].Name)
self.assertEqual(p3.Value, ret[0].Value)
with self.assertRaises(Exception):
uno.invoke(xCont, "insertByIndex", (25, prop2))
with self.assertRaises(Exception):
xCont.removeByIndex(25)
with self.assertRaises(Exception):
uno.invoke(xCont, "insertByIndex", (3, "Example String"))
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