[Libreoffice-commits] .: chart2/Library_chartview.mk chart2/source sc/Module_sc.mk test/inc test/Library_test.mk test/Package_inc.mk test/source

Markus Mohrhard mmohrhard at kemper.freedesktop.org
Fri Apr 27 14:31:08 PDT 2012


 chart2/Library_chartview.mk           |    1 
 chart2/source/view/main/ChartView.cxx |  116 --------------------------
 sc/Module_sc.mk                       |   12 --
 test/Library_test.mk                  |    1 
 test/Package_inc.mk                   |    1 
 test/inc/test/xshape_dumper.hxx       |   57 +++++++++++++
 test/source/xshape_dumper.cxx         |  149 ++++++++++++++++++++++++++++++++++
 7 files changed, 212 insertions(+), 125 deletions(-)

New commits:
commit beccf477581b1f3e85100d43be81ea55d3b3f912
Author: Markus Mohrhard <markus.mohrhard at googlemail.com>
Date:   Fri Apr 27 23:28:16 2012 +0200

    move xshape dumper into test
    
    XShapeDumper can now be used by other parts of the code too.
    Please keep in mind that changing the dumper affects other parts too and
    might require a regneration of reference files.
    
    Change-Id: I540420a8bdf8afd8d43c5ea0bb0d82d7e0ecc44b

diff --git a/chart2/Library_chartview.mk b/chart2/Library_chartview.mk
index ab3952e..3977a77 100644
--- a/chart2/Library_chartview.mk
+++ b/chart2/Library_chartview.mk
@@ -54,6 +54,7 @@ $(eval $(call gb_Library_use_libraries,chartview,\
     svl \
     svt \
     svxcore \
+    test \
     tl \
     utl \
     vcl \
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 9020d7b..3f44b85 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -113,9 +113,7 @@
 #include <rtl/strbuf.hxx>
 #include <rtl/oustringostreaminserter.hxx>
 
-//libxml2 for dumping
-#include <libxml/xmlwriter.h>
-
+#include <test/xshape_dumper.hxx>
 
 //.............................................................................
 namespace chart
@@ -3026,102 +3024,6 @@ uno::Sequence< ::rtl::OUString > ChartView::getAvailableServiceNames() throw (un
     return aServiceNames;
 }
 
-namespace {
-
-#define DEBUG_DUMPER 0
-
-int writeCallback(void* pContext, const char* sBuffer, int nLen)
-{
-    rtl::OStringBuffer* pBuffer = static_cast<rtl::OStringBuffer*>(pContext);
-    pBuffer->append(sBuffer);
-    return nLen;
-}
-
-int closeCallback(void* )
-{
-    return 0;
-}
-
-void dumpPositionAsAttribute(const awt::Point& rPoint, xmlTextWriterPtr xmlWriter)
-{
-    xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("positionX"), "%" SAL_PRIdINT32, rPoint.X);
-    xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("positionY"), "%" SAL_PRIdINT32, rPoint.Y);
-}
-
-void dumpSizeAsAttribute(const awt::Size& rSize, xmlTextWriterPtr xmlWriter)
-{
-    xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("sizeX"), "%" SAL_PRIdINT32, rSize.Width);
-    xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("sizeY"), "%" SAL_PRIdINT32, rSize.Height);
-}
-
-void dumpShapeDescriptorAsAttribute( uno::Reference< drawing::XShapeDescriptor > xDescr, xmlTextWriterPtr xmlWriter )
-{
-    xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST("type"), "%s", rtl::OUStringToOString(xDescr->getShapeType(), RTL_TEXTENCODING_UTF8).getStr());
-}
-
-void dumpXShapes( uno::Reference< drawing::XShapes > xShapes, xmlTextWriterPtr xmlWriter );
-
-void dumpXShape( uno::Reference< drawing::XShape > xShape, xmlTextWriterPtr xmlWriter  )
-{
-    xmlTextWriterStartElement( xmlWriter, BAD_CAST( "XShape" ) );
-
-    dumpPositionAsAttribute(xShape->getPosition(), xmlWriter);
-    dumpSizeAsAttribute(xShape->getSize(), xmlWriter);
-    uno::Reference< drawing::XShapeDescriptor > xDescr(xShape, uno::UNO_QUERY_THROW);
-    dumpShapeDescriptorAsAttribute(xDescr, xmlWriter);
-
-    uno::Reference< lang::XServiceInfo > xServiceInfo( xShape, uno::UNO_QUERY_THROW );
-    uno::Sequence< rtl::OUString > aServiceNames = xServiceInfo->getSupportedServiceNames();
-
-    uno::Reference< beans::XPropertySet > xPropSet(xShape, uno::UNO_QUERY_THROW);
-    uno::Any aAny = xPropSet->getPropertyValue("Name");
-    rtl::OUString aName;
-    if (aAny >>= aName)
-    {
-        if (!aName.isEmpty())
-            xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("name"), "%s", rtl::OUStringToOString(aName, RTL_TEXTENCODING_UTF8).getStr());
-    }
-    if (xServiceInfo->supportsService("com.sun.star.drawing.Text"))
-    {
-        uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY_THROW);
-        rtl::OUString aText = xText->getString();
-        if(!aText.isEmpty())
-            xmlTextWriterWriteFormatAttribute( xmlWriter, BAD_CAST("text"), "%s", rtl::OUStringToOString(aText, RTL_TEXTENCODING_UTF8).getStr());
-    }
-    else if(xServiceInfo->supportsService("com.sun.star.drawing.GroupShape"))
-    {
-        uno::Reference< drawing::XShapes > xShapes(xShape, uno::UNO_QUERY_THROW);
-        dumpXShapes(xShapes, xmlWriter);
-    }
-#if DEBUG_DUMPER
-    sal_Int32 nServices = aServiceNames.getLength();
-    for (sal_Int32 i = 0; i < nServices; ++i)
-    {
-        xmlTextWriterStartElement(xmlWriter, BAD_CAST( "ServiceName" ));
-        xmlTextWriterWriteFormatAttribute(xmlWriter, BAD_CAST( "name" ), "%s", rtl::OUStringToOString(aServiceNames[i], RTL_TEXTENCODING_UTF8).getStr());
-        xmlTextWriterEndElement( xmlWriter );
-    }
-#endif
-
-    xmlTextWriterEndElement( xmlWriter );
-}
-
-void dumpXShapes( uno::Reference< drawing::XShapes > xShapes, xmlTextWriterPtr xmlWriter )
-{
-    xmlTextWriterStartElement( xmlWriter, BAD_CAST( "XShapes" ) );
-    uno::Reference< container::XIndexAccess > xIA( xShapes, uno::UNO_QUERY_THROW);
-    sal_Int32 nLength = xIA->getCount();
-    for (sal_Int32 i = 0; i < nLength; ++i)
-    {
-        uno::Reference< drawing::XShape > xShape( xIA->getByIndex( i ), uno::UNO_QUERY_THROW );
-        dumpXShape( xShape, xmlWriter );
-    }
-
-    xmlTextWriterEndElement( xmlWriter );
-}
-
-}
-
 rtl::OUString ChartView::dump() throw (uno::RuntimeException)
 {
     impl_updateView();
@@ -3131,20 +3033,8 @@ rtl::OUString ChartView::dump() throw (uno::RuntimeException)
     if (!xPageShapes.is())
         return rtl::OUString();
 
-    rtl::OStringBuffer aString;
-    xmlOutputBufferPtr xmlOutBuffer = xmlOutputBufferCreateIO( writeCallback, closeCallback, &aString, NULL );
-    xmlTextWriterPtr xmlWriter = xmlNewTextWriter( xmlOutBuffer );
-    xmlTextWriterSetIndent( xmlWriter, 1 );
-
-    xmlTextWriterStartDocument( xmlWriter, NULL, NULL, NULL );
-
-    dumpXShapes( xPageShapes, xmlWriter );
-
-    xmlTextWriterEndDocument( xmlWriter );
-    xmlFreeTextWriter( xmlWriter );
-
-
-    return OStringToOUString(aString.makeStringAndClear(), RTL_TEXTENCODING_UTF8);
+    XShapeDumper aDumper(xPageShapes);
+    return aDumper.dump();
 }
 
 //.............................................................................
diff --git a/sc/Module_sc.mk b/sc/Module_sc.mk
index 18ab358..c632de4 100644
--- a/sc/Module_sc.mk
+++ b/sc/Module_sc.mk
@@ -51,19 +51,7 @@ $(eval $(call gb_Module_add_slowcheck_targets,sc,\
 ))
 
 $(eval $(call gb_Module_add_subsequentcheck_targets,sc,\
-    JunitTest_sc_complex \
-    JunitTest_sc_unoapi \
     CppunitTest_sc_chart_regression_test \
-    CppunitTest_sc_cellrangeobj \
-    $(if $(filter-out $(OS),IOS), \
-	    CppunitTest_sc_databaserangeobj) \
-    CppunitTest_sc_datapilottableobj \
-    CppunitTest_sc_datapilotfieldobj \
-    CppunitTest_sc_macros_test \
-    CppunitTest_sc_namedrangeobj \
-    CppunitTest_sc_namedrangesobj \
-    CppunitTest_sc_tablesheetobj \
-    CppunitTest_sc_tablesheetsobj \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/test/Library_test.mk b/test/Library_test.mk
index 8ca0289..c4a9dc9 100644
--- a/test/Library_test.mk
+++ b/test/Library_test.mk
@@ -68,6 +68,7 @@ $(eval $(call gb_Library_use_external,test,cppunit))
 $(eval $(call gb_Library_add_exception_objects,test,\
     test/source/bootstrapfixture \
     test/source/diff/diff \
+    test/source/xshape_dumper \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/test/Package_inc.mk b/test/Package_inc.mk
index aac4b38..8c2970e 100644
--- a/test/Package_inc.mk
+++ b/test/Package_inc.mk
@@ -27,6 +27,7 @@
 
 $(eval $(call gb_Package_Package,test_inc,$(SRCDIR)/test/inc))
 $(eval $(call gb_Package_add_file,test_inc,inc/test/xmldiff.hxx,test/xmldiff.hxx))
+$(eval $(call gb_Package_add_file,test_inc,inc/test/xshape_dumper.hxx,test/xshape_dumper.hxx))
 $(eval $(call gb_Package_add_file,test_inc,inc/test/bootstrapfixture.hxx,test/bootstrapfixture.hxx))
 $(eval $(call gb_Package_add_file,test_inc,inc/test/testdllapi.hxx,test/testdllapi.hxx))
 $(eval $(call gb_Package_add_file,test_inc,inc/test/unoapi_test.hxx,test/unoapi_test.hxx))
diff --git a/test/inc/test/xshape_dumper.hxx b/test/inc/test/xshape_dumper.hxx
new file mode 100644
index 0000000..d4f1ba6
--- /dev/null
+++ b/test/inc/test/xshape_dumper.hxx
@@ -0,0 +1,57 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * Copyright (C) 2012 Markus Mohrhard <markus.mohrhard at googlemail.com> (initial developer)
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include <rtl/ustring.hxx>
+#include <com/sun/star/uno/Reference.hxx>
+#include <libxml/xmlwriter.h>
+#include <com/sun/star/drawing/XShapes.hpp>
+#include <com/sun/star/drawing/XShape.hpp>
+#include <com/sun/star/awt/Point.hpp>
+#include <com/sun/star/awt/Size.hpp>
+#include <test/testdllapi.hxx>
+
+class OOO_DLLPUBLIC_TEST XShapeDumper
+{
+public:
+    XShapeDumper(com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > xShapes ):
+        mxShapes(xShapes) {}
+
+    rtl::OUString dump();
+private:
+    void dumpPositionAsAttribute(const com::sun::star::awt::Point& rPointr);
+    void dumpSizeAsAttribute(const com::sun::star::awt::Size& rSize);
+    void dumpShapeDescriptorAsAttribute( com::sun::star::uno::Reference< com::sun::star::drawing::XShapeDescriptor > xDescr );
+    void dumpXShape( com::sun::star::uno::Reference< com::sun::star::drawing::XShape > xShape );
+    void dumpXShapes( com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > xShapes );
+
+    com::sun::star::uno::Reference< com::sun::star::drawing::XShapes > mxShapes;
+    xmlTextWriterPtr mxmlWriter;
+
+};
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/test/source/xshape_dumper.cxx b/test/source/xshape_dumper.cxx
new file mode 100644
index 0000000..806fff7
--- /dev/null
+++ b/test/source/xshape_dumper.cxx
@@ -0,0 +1,149 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * Version: MPL 1.1 / GPLv3+ / LGPLv3+
+ *
+ * The contents of this file are subject to the Mozilla Public License Version
+ * 1.1 (the "License"); you may not use this file except in compliance with
+ * the License or as specified alternatively below. You may obtain a copy of
+ * the License at http://www.mozilla.org/MPL/
+ *
+ * Software distributed under the License is distributed on an "AS IS" basis,
+ * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+ * for the specific language governing rights and limitations under the
+ * License.
+ *
+ * Major Contributor(s):
+ * Copyright (C) 2012 Markus Mohrhard <markus.mohrhard at googlemail.com> (initial developer)
+ *
+ * All Rights Reserved.
+ *
+ * For minor contributions see the git repository.
+ *
+ * Alternatively, the contents of this file may be used under the terms of
+ * either the GNU General Public License Version 3 or later (the "GPLv3+"), or
+ * the GNU Lesser General Public License Version 3 or later (the "LGPLv3+"),
+ * in which case the provisions of the GPLv3+ or the LGPLv3+ are applicable
+ * instead of those above.
+ */
+
+#include "test/xshape_dumper.hxx"
+#include <rtl/strbuf.hxx>
+#include <rtl/oustringostreaminserter.hxx>
+#include <com/sun/star/lang/XServiceInfo.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <com/sun/star/text/XText.hpp>
+
+using namespace com::sun::star;
+
+namespace {
+
+#define DEBUG_DUMPER 0
+
+int writeCallback(void* pContext, const char* sBuffer, int nLen)
+{
+    rtl::OStringBuffer* pBuffer = static_cast<rtl::OStringBuffer*>(pContext);
+    pBuffer->append(sBuffer);
+    return nLen;
+}
+
+int closeCallback(void* )
+{
+    return 0;
+}
+
+}
+
+void XShapeDumper::dumpPositionAsAttribute(const awt::Point& rPoint)
+{
+    xmlTextWriterWriteFormatAttribute(mxmlWriter, BAD_CAST("positionX"), "%" SAL_PRIdINT32, rPoint.X);
+    xmlTextWriterWriteFormatAttribute(mxmlWriter, BAD_CAST("positionY"), "%" SAL_PRIdINT32, rPoint.Y);
+}
+
+void XShapeDumper::dumpSizeAsAttribute(const awt::Size& rSize)
+{
+    xmlTextWriterWriteFormatAttribute(mxmlWriter, BAD_CAST("sizeX"), "%" SAL_PRIdINT32, rSize.Width);
+    xmlTextWriterWriteFormatAttribute(mxmlWriter, BAD_CAST("sizeY"), "%" SAL_PRIdINT32, rSize.Height);
+}
+
+void XShapeDumper::dumpShapeDescriptorAsAttribute( uno::Reference< drawing::XShapeDescriptor > xDescr )
+{
+    xmlTextWriterWriteFormatAttribute(mxmlWriter, BAD_CAST("type"), "%s", rtl::OUStringToOString(xDescr->getShapeType(), RTL_TEXTENCODING_UTF8).getStr());
+}
+
+void XShapeDumper::dumpXShape( uno::Reference< drawing::XShape > xShape )
+{
+    xmlTextWriterStartElement( mxmlWriter, BAD_CAST( "XShape" ) );
+
+    dumpPositionAsAttribute(xShape->getPosition());
+    dumpSizeAsAttribute(xShape->getSize());
+    uno::Reference< drawing::XShapeDescriptor > xDescr(xShape, uno::UNO_QUERY_THROW);
+    dumpShapeDescriptorAsAttribute(xDescr);
+
+    uno::Reference< lang::XServiceInfo > xServiceInfo( xShape, uno::UNO_QUERY_THROW );
+    uno::Sequence< rtl::OUString > aServiceNames = xServiceInfo->getSupportedServiceNames();
+
+    uno::Reference< beans::XPropertySet > xPropSet(xShape, uno::UNO_QUERY_THROW);
+    uno::Any aAny = xPropSet->getPropertyValue("Name");
+    rtl::OUString aName;
+    if (aAny >>= aName)
+    {
+        if (!aName.isEmpty())
+            xmlTextWriterWriteFormatAttribute( mxmlWriter, BAD_CAST("name"), "%s", rtl::OUStringToOString(aName, RTL_TEXTENCODING_UTF8).getStr());
+    }
+    if (xServiceInfo->supportsService("com.sun.star.drawing.Text"))
+    {
+        uno::Reference< text::XText > xText(xShape, uno::UNO_QUERY_THROW);
+        rtl::OUString aText = xText->getString();
+        if(!aText.isEmpty())
+            xmlTextWriterWriteFormatAttribute( mxmlWriter, BAD_CAST("text"), "%s", rtl::OUStringToOString(aText, RTL_TEXTENCODING_UTF8).getStr());
+    }
+    else if(xServiceInfo->supportsService("com.sun.star.drawing.GroupShape"))
+    {
+        uno::Reference< drawing::XShapes > xShapes(xShape, uno::UNO_QUERY_THROW);
+        dumpXShapes(xShapes);
+    }
+#if DEBUG_DUMPER
+    sal_Int32 nServices = aServiceNames.getLength();
+    for (sal_Int32 i = 0; i < nServices; ++i)
+    {
+        xmlTextWriterStartElement(mxmlWriter, BAD_CAST( "ServiceName" ));
+        xmlTextWriterWriteFormatAttribute(mxmlWriter, BAD_CAST( "name" ), "%s", rtl::OUStringToOString(aServiceNames[i], RTL_TEXTENCODING_UTF8).getStr());
+        xmlTextWriterEndElement( mxmlWriter );
+    }
+#endif
+
+    xmlTextWriterEndElement( mxmlWriter );
+}
+
+void XShapeDumper::dumpXShapes( uno::Reference< drawing::XShapes > xShapes )
+{
+    xmlTextWriterStartElement( mxmlWriter, BAD_CAST( "XShapes" ) );
+    uno::Reference< container::XIndexAccess > xIA( xShapes, uno::UNO_QUERY_THROW);
+    sal_Int32 nLength = xIA->getCount();
+    for (sal_Int32 i = 0; i < nLength; ++i)
+    {
+        uno::Reference< drawing::XShape > xShape( xIA->getByIndex( i ), uno::UNO_QUERY_THROW );
+        dumpXShape( xShape );
+    }
+
+    xmlTextWriterEndElement( mxmlWriter );
+}
+
+rtl::OUString XShapeDumper::dump()
+{
+    rtl::OStringBuffer aString;
+    xmlOutputBufferPtr xmlOutBuffer = xmlOutputBufferCreateIO( writeCallback, closeCallback, &aString, NULL );
+    mxmlWriter = xmlNewTextWriter( xmlOutBuffer );
+    xmlTextWriterSetIndent( mxmlWriter, 1 );
+
+    xmlTextWriterStartDocument( mxmlWriter, NULL, NULL, NULL );
+
+    dumpXShapes( mxShapes );
+
+    xmlTextWriterEndDocument( mxmlWriter );
+    xmlFreeTextWriter( mxmlWriter );
+
+    return OStringToOUString(aString.makeStringAndClear(), RTL_TEXTENCODING_UTF8);
+}
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */


More information about the Libreoffice-commits mailing list