Unittest problem with service com.sun.star.drawing.GraphicExportFilter

Regina Henschel rb.henschel at t-online.de
Tue Oct 25 19:59:07 UTC 2022


Hi Michael,

Michael Stahl schrieb am 25.10.2022 um 18:36:
> On 25.10.22 18:24, Regina Henschel wrote:
>> Hi all,
>>
>> this is about https://gerrit.libreoffice.org/c/core/+/141830
>> tdf#83671 SmartArt: preserve pos and size for metafile
>>
>> If you try the patch, you will see, that the SmartArt is imported in 
>> Calc as group object with one child object. The child is a 
>> "com.sun.star.drawing.GraphicObjectShape". Copying to Draw shows, that 
>> it is indeed a metafile. So the patch seems to be correct.
>>
>> But the unit test fails. It has the warning
>> warn:oox.drawingml:2860:13240:oox/source/drawingml/shape.cxx:2039: 
>> Shape::renderDiagramToGraphic com.sun.star.uno.DeploymentException 
>> message: "component context fails to supply service 
>> com.sun.star.drawing.GraphicExportFilter of type 
>> com.sun.star.drawing.XGraphicExportFilter"
>>
>> The warning comes from method create() from class GraphicExportFilter, 
>> where creating of "the_instance" fails. And so indeed no metafile is 
>> created.
>>
>> I have no idea about the reason as in a normal running LO the import 
>> works and resaving as ods or xlsx has no problems.
> 
> the unit test makefile is missing some component file.

Ah. I wouldn't have thought of that.

> 
> many unit tests use the whole services.rdb but some unfortunately have a 
> long list of individiual files inside a call to 
> gb_CppunitTest_use_components.

CppunitTest_sc_subsequent_filters_test2.mk is:
$(eval $(call sc_subsequent_test,filters_test2))

That is, it uses template sc_subsequent_test in subsequent_setup.mk

I have added svx/util/svxcore there and now the unit test works.

> 
> you can find the component file with a command like this:
> 
>> git grep com.sun.star.drawing.GraphicExportFilter $(git ls-files 
>> '*.component')
> svx/util/svxcore.component:    <service 
> name="com.sun.star.drawing.GraphicExportFilter"/>
> 
> then add the "svx/util/svxcore" to the gb_CppunitTest_use_components 
> list in the test's CppunitTest_*.mk - don't forget the '\' must be the 
> last character of the line.
> 

Thank you for your quick help.

Kind regards,
Regina



More information about the LibreOffice mailing list