[Libreoffice-commits] core.git: 8 commits - chart2/qa oox/source test/source
Markus Mohrhard
markus.mohrhard at collabora.co.uk
Wed Mar 26 16:00:10 PDT 2014
chart2/qa/extras/chart2export.cxx | 60 +++++++++++++++++++++++++++++++
chart2/qa/extras/charttest.hxx | 13 +++---
chart2/qa/extras/data/xlsx/gapWidth.xlsx |binary
oox/source/export/chartexport.cxx | 3 -
test/source/bootstrapfixture.cxx | 2 -
5 files changed, 69 insertions(+), 9 deletions(-)
New commits:
commit 0b4712812fa78b5bbfb9313c36a14f46e1bc662d
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:55:56 2014 +0100
enable the export validation for chart ODS tests
Don't even think about using the new skip flag for your shiny new test.
If you itnroduce tests that show validation errors fix them!!
Change-Id: I21bf61a113a35ca204a54d18246848a5788ae559
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index a817c59f..7697bab 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -421,6 +421,7 @@ void Chart2ExportTest::testErrorBarXLSX()
// in an export -> import cycle using different file formats - ODS, XLS and XLSX.
void Chart2ExportTest::testTrendline()
{
+ mbSkipValidation = true;
load("/chart2/qa/extras/data/ods/", "trendline.ods");
checkTrendlinesInChart(getChartDocFromSheet( 0, mxComponent));
reload("calc8");
diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx
index e9f0047..7a2b22c 100644
--- a/chart2/qa/extras/charttest.hxx
+++ b/chart2/qa/extras/charttest.hxx
@@ -52,6 +52,7 @@ using namespace com::sun::star::uno;
class ChartTest : public test::BootstrapFixture, public unotest::MacrosTest
{
public:
+ ChartTest():mbSkipValidation(false) {}
void load( const OUString& rDir, const OUString& rFileName );
boost::shared_ptr<utl::TempFile> reload( const OUString& rFileName );
uno::Sequence < OUString > getImpressChartColumnDescriptions( const char* pDir, const char* pName );
@@ -65,6 +66,7 @@ public:
protected:
Reference< lang::XComponent > mxComponent;
OUString maServiceName;
+ bool mbSkipValidation; // if you set this flag for a new test I'm going to haunt you!
};
OUString ChartTest::getFileExtension( const OUString& aFileName )
@@ -112,7 +114,8 @@ boost::shared_ptr<utl::TempFile> ChartTest::reload(const OUString& rFilterName)
}
else if(rFilterName == "calc8")
{
- validate(pTempFile->GetFileName(), test::ODF);
+ if(!mbSkipValidation)
+ validate(pTempFile->GetFileName(), test::ODF);
}
CPPUNIT_ASSERT(mxComponent.is());
commit 712daf33c826101a43e918d0a6285e21ac6e339a
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:46:04 2014 +0100
remove unimplemented method
Change-Id: I28c735478142bcb438ac24482612d5fb52a65f6e
diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx
index 05ffda9..e9f0047 100644
--- a/chart2/qa/extras/charttest.hxx
+++ b/chart2/qa/extras/charttest.hxx
@@ -59,7 +59,6 @@ public:
uno::Reference< chart::XChartDocument > getChartDocFromImpress( const char* pDir, const char* pName );
- void loadDocx(const char* pDir, const char* pName);
virtual void setUp();
virtual void tearDown();
commit e8ed900016f0c51bc0374bae2a2963510e1ddbdc
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:45:42 2014 +0100
improve formatting
Change-Id: Ic174dee2b0c3005b15b30348bf6aebf20ce50fb8
diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx
index e1ce5a5..05ffda9 100644
--- a/chart2/qa/extras/charttest.hxx
+++ b/chart2/qa/extras/charttest.hxx
@@ -49,7 +49,6 @@
using namespace com::sun::star;
using namespace com::sun::star::uno;
-
class ChartTest : public test::BootstrapFixture, public unotest::MacrosTest
{
public:
@@ -114,7 +113,7 @@ boost::shared_ptr<utl::TempFile> ChartTest::reload(const OUString& rFilterName)
}
else if(rFilterName == "calc8")
{
- // validate(pTempFile->GetFileName(), test::ODF);
+ validate(pTempFile->GetFileName(), test::ODF);
}
CPPUNIT_ASSERT(mxComponent.is());
@@ -136,6 +135,7 @@ void ChartTest::tearDown()
test::BootstrapFixture::tearDown();
}
+
Reference< lang::XComponent > getChartCompFromSheet( sal_Int32 nSheet, uno::Reference< lang::XComponent > xComponent )
{
// let us assume that we only have one chart per sheet
@@ -165,6 +165,7 @@ Reference< lang::XComponent > getChartCompFromSheet( sal_Int32 nSheet, uno::Refe
return xChartComp;
}
+
Reference< chart2::XChartDocument > getChartDocFromSheet( sal_Int32 nSheet, uno::Reference< lang::XComponent > xComponent )
{
uno::Reference< chart2::XChartDocument > xChartDoc ( getChartCompFromSheet(nSheet, xComponent), UNO_QUERY_THROW );
@@ -210,7 +211,6 @@ Reference< chart2::XDataSeries > getDataSeriesFromDoc( uno::Reference< chart2::X
return xSeries;
}
-
uno::Sequence < OUString > getWriterChartColumnDescriptions( Reference< lang::XComponent > mxComponent )
{
uno::Reference<drawing::XDrawPageSupplier> xDrawPageSupplier(mxComponent, uno::UNO_QUERY);
commit eaeaf871f1d77bf15e262451bc103b4eb976ca72
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:43:41 2014 +0100
improve validation failure message
Change-Id: I1a613899d18a004149d3e637d796bc2f6687e6c4
diff --git a/test/source/bootstrapfixture.cxx b/test/source/bootstrapfixture.cxx
index a980731..c7f8da1 100644
--- a/test/source/bootstrapfixture.cxx
+++ b/test/source/bootstrapfixture.cxx
@@ -191,7 +191,7 @@ void test::BootstrapFixture::validate(const OUString& rPath, test::ValidationFor
if( aContentOUString.indexOf("Error") != -1 )
{
SAL_WARN("test", aContentOUString);
- CPPUNIT_FAIL("validation errors during export");
+ CPPUNIT_FAIL(aContentString.getStr());
}
}
#endif
commit e940e177af57de12211d00049f773bcbf9bffe7d
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:34:04 2014 +0100
handle xlsx files correctly as well
Change-Id: I24d63386d158e130aeb340235d71eb05cbd679f4
diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx
index a659945..e1ce5a5 100644
--- a/chart2/qa/extras/charttest.hxx
+++ b/chart2/qa/extras/charttest.hxx
@@ -79,7 +79,7 @@ OUString ChartTest::getFileExtension( const OUString& aFileName )
void ChartTest::load( const OUString& aDir, const OUString& aName )
{
OUString extension = getFileExtension(aName);
- if(extension == "ods")
+ if(extension == "ods" || extension == "xlsx")
{
maServiceName = "com.sun.star.sheet.SpreadsheetDocument";
}
commit 70c96dc14784aab5a209f7f5b0021540ab74c502
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:33:03 2014 +0100
unimplemented method
Change-Id: I5820bde974a42f32c404aa2b14b410534f10db29
diff --git a/chart2/qa/extras/charttest.hxx b/chart2/qa/extras/charttest.hxx
index d4edddd..a659945 100644
--- a/chart2/qa/extras/charttest.hxx
+++ b/chart2/qa/extras/charttest.hxx
@@ -61,7 +61,6 @@ public:
uno::Reference< chart::XChartDocument > getChartDocFromImpress( const char* pDir, const char* pName );
void loadDocx(const char* pDir, const char* pName);
- utl::TempFile reloadDocx();
virtual void setUp();
virtual void tearDown();
commit b0d99224c777fa8f532fa8014207240c60220008
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 23:29:21 2014 +0100
add test for improved overlap chart export
Change-Id: Id1466f7a95470a7c90a7752971e126d3f4b45766
diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx
index c0d20f1..a817c59f 100644
--- a/chart2/qa/extras/chart2export.cxx
+++ b/chart2/qa/extras/chart2export.cxx
@@ -53,6 +53,7 @@ public:
void testChartCrash();
void testPieChartRotation();
void testEmbeddingsOleObjectGrabBag();
+ void testGapWidthXLSX();
CPPUNIT_TEST_SUITE(Chart2ExportTest);
CPPUNIT_TEST(test);
@@ -78,6 +79,7 @@ public:
CPPUNIT_TEST(testChartCrash);
CPPUNIT_TEST(testPieChartRotation);
CPPUNIT_TEST(testEmbeddingsOleObjectGrabBag);
+ CPPUNIT_TEST(testGapWidthXLSX);
CPPUNIT_TEST_SUITE_END();
protected:
@@ -712,6 +714,63 @@ void Chart2ExportTest::testEmbeddingsOleObjectGrabBag()
CPPUNIT_ASSERT(bEmbeddings); // Grab Bag has all the expected elements
}
+namespace {
+
+void checkGapWidth(Reference<beans::XPropertySet> xPropSet, sal_Int32 nValue)
+{
+ uno::Any aAny = xPropSet->getPropertyValue("GapwidthSequence");
+ CPPUNIT_ASSERT(aAny.hasValue());
+ uno::Sequence< sal_Int32 > aSequence;
+ aAny >>= aSequence;
+ CPPUNIT_ASSERT(aSequence.getLength());
+ CPPUNIT_ASSERT_EQUAL(nValue, aSequence[0]);
+}
+
+void checkOverlap(Reference<beans::XPropertySet> xPropSet, sal_Int32 nValue)
+{
+ uno::Any aAny = xPropSet->getPropertyValue("OverlapSequence");
+ CPPUNIT_ASSERT(aAny.hasValue());
+ uno::Sequence< sal_Int32 > aSequence;
+ aAny >>= aSequence;
+ CPPUNIT_ASSERT(aSequence.getLength());
+ CPPUNIT_ASSERT_EQUAL(nValue, aSequence[0]);
+}
+
+void checkSheetForGapWidthAndOverlap(uno::Reference< chart2::XChartDocument > xChartDoc,
+ sal_Int32 nExpectedGapWidth, sal_Int32 nExpectedOverlap)
+{
+ CPPUNIT_ASSERT(xChartDoc.is());
+
+ Reference< chart2::XChartType > xChartType = getChartTypeFromDoc( xChartDoc, 0, 0 );
+ CPPUNIT_ASSERT(xChartType.is());
+
+ Reference< beans::XPropertySet > xPropSet( xChartType, uno::UNO_QUERY_THROW );
+ checkGapWidth(xPropSet, nExpectedGapWidth);
+ checkOverlap(xPropSet, nExpectedOverlap);
+
+}
+
+}
+
+void Chart2ExportTest::testGapWidthXLSX()
+{
+ load("/chart2/qa/extras/data/xlsx/", "gapWidth.xlsx");
+
+ uno::Reference< chart2::XChartDocument > xChartDoc = getChartDocFromSheet( 0, mxComponent );
+ checkSheetForGapWidthAndOverlap(xChartDoc, 120, -60);
+
+ xChartDoc = getChartDocFromSheet( 1, mxComponent );
+ checkSheetForGapWidthAndOverlap(xChartDoc, 50, 30);
+
+ reload("Calc Office Open XML");
+
+ xChartDoc = getChartDocFromSheet( 0, mxComponent );
+ checkSheetForGapWidthAndOverlap(xChartDoc, 120, -60);
+
+ xChartDoc = getChartDocFromSheet( 1, mxComponent );
+ checkSheetForGapWidthAndOverlap(xChartDoc, 50, 30);
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/chart2/qa/extras/data/xlsx/gapWidth.xlsx b/chart2/qa/extras/data/xlsx/gapWidth.xlsx
new file mode 100644
index 0000000..0e9c0ee
Binary files /dev/null and b/chart2/qa/extras/data/xlsx/gapWidth.xlsx differ
commit a1f85043237b6b02549b69aad90d687c0d4e08fc
Author: Markus Mohrhard <markus.mohrhard at collabora.co.uk>
Date: Wed Mar 26 22:50:57 2014 +0100
support negative overlap
Change-Id: I1ec67a8697148d650f56650c6320964ac39dfedf
diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx
index 0d30e29..b38f308 100644
--- a/oox/source/export/chartexport.cxx
+++ b/oox/source/export/chartexport.cxx
@@ -1364,8 +1364,7 @@ void ChartExport::exportBarChart( Reference< chart2::XChartType > xChartType )
if( aBarPositionSequence.getLength() )
{
sal_Int32 nOverlap = aBarPositionSequence[0];
- if( nOverlap > 0 )
- pFS->singleElement( FSNS( XML_c, XML_overlap ),
+ pFS->singleElement( FSNS( XML_c, XML_overlap ),
XML_val, I32S( nOverlap ),
FSEND );
}
More information about the Libreoffice-commits
mailing list