summaryrefslogtreecommitdiff
path: root/test/source/mtfxmldump.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'test/source/mtfxmldump.cxx')
-rw-r--r--test/source/mtfxmldump.cxx25
1 files changed, 20 insertions, 5 deletions
diff --git a/test/source/mtfxmldump.cxx b/test/source/mtfxmldump.cxx
index e1a6abdff0f3..5e329a3b85a2 100644
--- a/test/source/mtfxmldump.cxx
+++ b/test/source/mtfxmldump.cxx
@@ -8,6 +8,7 @@
*/
#include <test/mtfxmldump.hxx>
+#include <test/xmltesttools.hxx>
#include <test/xmlwriter.hxx>
#include <vcl/metaact.hxx>
@@ -137,9 +138,8 @@ OUString convertLineStyleToString(LineStyle eAlign)
} // anonymous namespace
-MetafileXmlDump::MetafileXmlDump(SvStream& rStream) :
- maFilter(512, false),
- mrStream(rStream)
+MetafileXmlDump::MetafileXmlDump() :
+ maFilter(512, false)
{}
MetafileXmlDump::~MetafileXmlDump()
@@ -160,9 +160,16 @@ void MetafileXmlDump::filterNoneActionTypes()
maFilter.assign(512, false);
}
-void MetafileXmlDump::dump(GDIMetaFile& rMetaFile)
+xmlDocPtr MetafileXmlDump::dumpAndParse(GDIMetaFile& rMetaFile, const OUString& rTempStreamName)
{
- xmlOutputBufferPtr xmlOutBuffer = xmlOutputBufferCreateIO(lclWriteCallback, lclCloseCallback, &mrStream, NULL);
+ SvStream *pStream = NULL;
+
+ if (rTempStreamName.isEmpty())
+ pStream = new SvMemoryStream();
+ else
+ pStream = new SvFileStream(rTempStreamName, STREAM_STD_READWRITE);
+
+ xmlOutputBufferPtr xmlOutBuffer = xmlOutputBufferCreateIO(lclWriteCallback, lclCloseCallback, pStream, NULL);
xmlTextWriterPtr xmlWriter = xmlNewTextWriter( xmlOutBuffer );
xmlTextWriterSetIndent( xmlWriter, 1 );
@@ -392,6 +399,14 @@ void MetafileXmlDump::dump(GDIMetaFile& rMetaFile)
aWriter.endElement();
aWriter.endDocument();
+
+ pStream->Seek(STREAM_SEEK_TO_BEGIN);
+
+ xmlDocPtr pDoc = XmlTestTools::parseXmlStream(pStream);
+
+ delete pStream;
+
+ return pDoc;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */