From 9d5005a70cc42ee9f45104cc32aa099d0c3d6630 Mon Sep 17 00:00:00 2001 From: umeshkadam Date: Fri, 7 Feb 2014 17:27:49 +0530 Subject: [PATCH] FDO#74430: File Corruption due to repetition of docPr Id Issue : - If there is a scenario where a chart is followed by a shape (may it be in the footer or on a different page ) which is being exported as an alternate content then, the docPr Id is being repeated, ECMA 20.4.2.5 says that the docPr Id should be unique. - Two different variables were been used as counters for the docPr Id, hence there were repitions in the docPr Id. Implementation : - ensured that a single counter is used to track the docPr Id. Conflicts: chart2/qa/extras/chart2export.cxx Reviewed on: https://gerrit.libreoffice.org/7916 Change-Id: I1c105be184d045ef058423f03259eb8c634fcbbe --- chart2/qa/extras/chart2export.cxx | 23 +++++++++++++++++++ chart2/qa/extras/data/docx/FDO74430.docx | Bin 0 -> 19199 bytes sw/source/filter/ww8/docxattributeoutput.cxx | 8 +++++-- sw/source/filter/ww8/docxattributeoutput.hxx | 1 - 4 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 chart2/qa/extras/data/docx/FDO74430.docx diff --git a/chart2/qa/extras/chart2export.cxx b/chart2/qa/extras/chart2export.cxx index 6288d3d3f74e..c15f5af2f5c1 100644 --- a/chart2/qa/extras/chart2export.cxx +++ b/chart2/qa/extras/chart2export.cxx @@ -46,6 +46,7 @@ public: void testFdo74115WallGradientFill(); void testFdo74115WallBitmapFill(); void testBarChartRotation(); + void testShapeFollowedByChart(); CPPUNIT_TEST_SUITE(Chart2ExportTest); CPPUNIT_TEST(test); @@ -64,6 +65,7 @@ public: // CPPUNIT_TEST(testFdo74115WallGradientFill); CPPUNIT_TEST(testFdo74115WallBitmapFill); CPPUNIT_TEST(testBarChartRotation); + CPPUNIT_TEST(testShapeFollowedByChart); CPPUNIT_TEST_SUITE_END(); protected: @@ -169,6 +171,10 @@ xmlNodeSetPtr Chart2ExportTest::getXPathNode(xmlDocPtr pXmlDoc, const OString& r xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("v"), BAD_CAST("urn:schemas-microsoft-com:vml")); xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("c"), BAD_CAST("http://schemas.openxmlformats.org/drawingml/2006/chart")); xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("a"), BAD_CAST("http://schemas.openxmlformats.org/drawingml/2006/main")); + xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("mc"), BAD_CAST("http://schemas.openxmlformats.org/markup-compatibility/2006")); + xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("wps"), BAD_CAST("http://schemas.microsoft.com/office/word/2010/wordprocessingShape")); + xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("wpg"), BAD_CAST("http://schemas.microsoft.com/office/word/2010/wordprocessingGroup")); + xmlXPathRegisterNs(pXmlXpathCtx, BAD_CAST("wp"), BAD_CAST("http://schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing")); xmlXPathObjectPtr pXmlXpathObj = xmlXPathEvalExpression(BAD_CAST(rXPath.getStr()), pXmlXpathCtx); return pXmlXpathObj->nodesetval; } @@ -578,6 +584,23 @@ void Chart2ExportTest::testBarChartRotation() assertXPath(pXmlDoc, "/c:chartSpace/c:chart/c:view3D/c:rotY", "val", "50"); } +void Chart2ExportTest::testShapeFollowedByChart() +{ + /* If there is a scenario where a chart is followed by a shape + which is being exported as an alternate content then, the + docPr Id is being repeated, ECMA 20.4.2.5 says that the + docPr Id should be unique, ensuring the same here. + */ + load("/chart2/qa/extras/data/docx/", "FDO74430.docx"); + xmlDocPtr pXmlDoc = parseExport("word/document", "Office Open XML Text" ); + CPPUNIT_ASSERT(pXmlDoc); + + OUString aValueOfFirstDocPR = getXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[1]/w:drawing[1]/wp:inline[1]/wp:docPr[1]", "id"); + OUString aValueOfSecondDocPR = getXPath(pXmlDoc, "/w:document/w:body/w:p[3]/w:r[2]/mc:AlternateContent[1]/mc:Choice[1]/w:drawing[1]/wp:anchor[1]/wp:docPr[1]", "id"); + CPPUNIT_ASSERT( aValueOfFirstDocPR != aValueOfSecondDocPR ); + +} + CPPUNIT_TEST_SUITE_REGISTRATION(Chart2ExportTest); CPPUNIT_PLUGIN_IMPLEMENT(); diff --git a/chart2/qa/extras/data/docx/FDO74430.docx b/chart2/qa/extras/data/docx/FDO74430.docx new file mode 100644 index 0000000000000000000000000000000000000000..f4a68b519db2639f7cce353a47b2d21dfb095289 GIT binary patch literal 19199 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 u_&=r=zsvuptNBYB01yVIwEsugetName(); + /* If there is a scenario where a chart is followed by a shape + which is being exported as an alternate content then, the + docPr Id is being repeated, ECMA 20.4.2.5 says that the + docPr Id should be unique, ensuring the same here. + */ m_pSerializer->singleElementNS( XML_wp, XML_docPr, - XML_id, I32S( ++m_docPrID ), + XML_id, I32S( m_anchorId++ ), XML_name, USS( sName ), FSEND ); @@ -6281,7 +6286,6 @@ DocxAttributeOutput::DocxAttributeOutput( DocxExport &rExport, FSHelperPtr pSeri m_pFootnotesList( new ::docx::FootnotesList() ), m_pEndnotesList( new ::docx::FootnotesList() ), m_footnoteEndnoteRefTag( 0 ), - m_docPrID(0), m_pSectionInfo( NULL ), m_pRedlineData( NULL ), m_nRedlineId( 0 ), diff --git a/sw/source/filter/ww8/docxattributeoutput.hxx b/sw/source/filter/ww8/docxattributeoutput.hxx index c7965c8f6ca4..8d167c0dc92a 100644 --- a/sw/source/filter/ww8/docxattributeoutput.hxx +++ b/sw/source/filter/ww8/docxattributeoutput.hxx @@ -691,7 +691,6 @@ private: ::docx::FootnotesList *m_pFootnotesList; ::docx::FootnotesList *m_pEndnotesList; int m_footnoteEndnoteRefTag; - int m_docPrID; boost::scoped_ptr< const WW8_SepInfo > m_pSectionInfo; /// Redline data to remember in the text run.