Kaydet (Commit) e516f8be authored tarafından Pallavi Jadhav's avatar Pallavi Jadhav Kaydeden (comit) Norbert Thiebaud

fdo#72226: Fix for Stock chart Invalid RT

  Issue :
    In chart1.xml,
       <c:chart>
        <c:plotArea>
         <c:stockChart>
    there are four types of series as Open,Low,High
    and Close.

    For Open series,
      <c:ser>
       <c:idx val="0" />
       <c:order val="0" />
    an attribute "val" should be 1 and not 0.
    i.e. index should start from 1 and not from 0.

  Implementation :
    - In ChartExport::exportCandleStickSeries(),
      Using idx variable, we are writing index value
      which should be greater than 0. So for idx=0,
      we are adding value 1 while writing index value.
    - Added Unit tese case for chart export

Conflicts:
	chart2/qa/extras/chart2export.cxx

Change-Id: I4d5ffefbc8fcf62b50c13ca1b3ed80290962fc4e
Reviewed-on: https://gerrit.libreoffice.org/6925Tested-by: 's avatarNorbert Thiebaud <nthiebaud@gmail.com>
Reviewed-by: 's avatarNorbert Thiebaud <nthiebaud@gmail.com>
üst 784d3e2b
...@@ -23,10 +23,13 @@ public: ...@@ -23,10 +23,13 @@ public:
void testErrorBarXLSX(); void testErrorBarXLSX();
void testTrendline(); void testTrendline();
void testStockChart();
CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST_SUITE(Chart2ExportTest);
CPPUNIT_TEST(test); CPPUNIT_TEST(test);
CPPUNIT_TEST(testErrorBarXLSX); CPPUNIT_TEST(testErrorBarXLSX);
CPPUNIT_TEST(testTrendline); CPPUNIT_TEST(testTrendline);
CPPUNIT_TEST(testStockChart);
CPPUNIT_TEST_SUITE_END(); CPPUNIT_TEST_SUITE_END();
private: private:
...@@ -255,6 +258,25 @@ void Chart2ExportTest::testTrendline() ...@@ -255,6 +258,25 @@ void Chart2ExportTest::testTrendline()
} }
void Chart2ExportTest::testStockChart()
{
/* For attached file Stock_Chart.docx, in chart1.xml,
* <c:stockChart>, there are four types of series as
* Open,Low,High and Close.
* For Open series, in <c:idx val="0" />
* an attribute val of index should start from 1 and not from 0.
* Which was problem area.
*/
load("/chart2/qa/extras/data/docx/", "testStockChart.docx");
{
xmlDocPtr pXmlDoc = parseExport("word/charts/chart1.xml");
if (!pXmlDoc)
return;
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:stockChart/c:ser[1]/c:idx", "val", "1");
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:stockChart/c:ser[1]/c:order", "val", "1");
assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:plotArea/c:stockChart/c:ser[1]/c:tx/c:strRef/c:strCache/c:pt/c:v", "Open");
}
}
CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest);
CPPUNIT_PLUGIN_IMPLEMENT(); CPPUNIT_PLUGIN_IMPLEMENT();
......
...@@ -1626,6 +1626,7 @@ void ChartExport::exportCandleStickSeries( ...@@ -1626,6 +1626,7 @@ void ChartExport::exportCandleStickSeries(
Reference< chart2::XChartDocument > xNewDoc( getModel(), uno::UNO_QUERY ); Reference< chart2::XChartDocument > xNewDoc( getModel(), uno::UNO_QUERY );
const char* sSeries[] = {"values-first","values-max","values-min","values-last",0}; const char* sSeries[] = {"values-first","values-max","values-min","values-last",0};
for( sal_Int32 idx = 0; sSeries[idx] != 0 ; idx++ ) for( sal_Int32 idx = 0; sSeries[idx] != 0 ; idx++ )
{ {
Reference< chart2::data::XLabeledDataSequence > xLabeledSeq( lcl_getDataSequenceByRole( aSeqCnt, OUString::createFromAscii(sSeries[idx]) ) ); Reference< chart2::data::XLabeledDataSequence > xLabeledSeq( lcl_getDataSequenceByRole( aSeqCnt, OUString::createFromAscii(sSeries[idx]) ) );
...@@ -1639,11 +1640,12 @@ void ChartExport::exportCandleStickSeries( ...@@ -1639,11 +1640,12 @@ void ChartExport::exportCandleStickSeries(
FSEND ); FSEND );
// TODO: idx and order // TODO: idx and order
// idx attribute should start from 1 and not from 0.
pFS->singleElement( FSNS( XML_c, XML_idx ), pFS->singleElement( FSNS( XML_c, XML_idx ),
XML_val, I32S(idx), XML_val, I32S(idx+1),
FSEND ); FSEND );
pFS->singleElement( FSNS( XML_c, XML_order ), pFS->singleElement( FSNS( XML_c, XML_order ),
XML_val, I32S(idx), XML_val, I32S(idx+1),
FSEND ); FSEND );
// export label // export label
......
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