summaryrefslogtreecommitdiff
path: root/emfio/qa
diff options
context:
space:
mode:
authorPatrick Jaap <patrick.jaap@tu-dresden.de>2017-08-22 12:31:15 +0200
committerThorsten Behrens <Thorsten.Behrens@CIB.de>2017-08-24 17:13:26 +0200
commit8d1dc9a662d2e1bc833d5488f3f0013f98e7f3fd (patch)
tree57135fc8b4757ab72043ca08bbedf90f904952d3 /emfio/qa
parent1098fba99acb8c8cc7e87c55ece12ef175593147 (diff)
emfio: unit test for the EMF+ renderer
Two unit tests, which test the EMF+ records DrawString and DrawLine independently. To this end, a fixed view decomposition of metafiles is implemented. The chosen primitives should be optimal, even for future extensions of the EMF+ parser. Change-Id: I12672d3b294ff0fdae63c7a5ce211517ef8f763c Reviewed-on: https://gerrit.libreoffice.org/41425 Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de> Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'emfio/qa')
-rw-r--r--emfio/qa/cppunit/emf/EmfImportTest.cxx42
-rw-r--r--emfio/qa/cppunit/emf/data/TestDrawLine.emfbin0 -> 2032 bytes
-rw-r--r--emfio/qa/cppunit/emf/data/TestDrawString.emfbin0 -> 2308 bytes
3 files changed, 42 insertions, 0 deletions
diff --git a/emfio/qa/cppunit/emf/EmfImportTest.cxx b/emfio/qa/cppunit/emf/EmfImportTest.cxx
index ca766b8b67f3..bc14c4bd3062 100644
--- a/emfio/qa/cppunit/emf/EmfImportTest.cxx
+++ b/emfio/qa/cppunit/emf/EmfImportTest.cxx
@@ -39,12 +39,16 @@ class Test : public test::BootstrapFixture, public XmlTestTools
void checkRectPrimitive(Primitive2DSequence const & rPrimitive);
void testWorking();
+ void TestDrawString();
+ void TestDrawLine();
Primitive2DSequence parseEmf(const OUString& aSource);
public:
CPPUNIT_TEST_SUITE(Test);
CPPUNIT_TEST(testWorking);
+ CPPUNIT_TEST(TestDrawString);
+ CPPUNIT_TEST(TestDrawLine);
CPPUNIT_TEST_SUITE_END();
};
@@ -88,6 +92,44 @@ void Test::testWorking()
checkRectPrimitive(aSequenceRect);
}
+void Test::TestDrawString()
+{
+ // This unit checks for a correct import of an EMF+ file with only one DrawString Record
+ // Since the text is undecorated the optimal choice is a simpletextportion primitive
+
+ // first, get the sequence of primitives and dump it
+ Primitive2DSequence aSequence = parseEmf("/emfio/qa/cppunit/emf/data/TestDrawString.emf");
+ CPPUNIT_ASSERT_EQUAL(1, (int) aSequence.getLength());
+ Primitive2dXmlDump dumper;
+ xmlDocPtr pDocument = dumper.dumpAndParse(comphelper::sequenceToContainer<Primitive2DContainer>(aSequence));
+ CPPUNIT_ASSERT (pDocument);
+
+ // check correct import of the DrawString: height, position, text, color and font
+ assertXPath(pDocument, "/primitive2D/metafile/transform/textsimpleportion", "height", "276");
+ assertXPath(pDocument, "/primitive2D/metafile/transform/textsimpleportion", "x", "25");
+ assertXPath(pDocument, "/primitive2D/metafile/transform/textsimpleportion", "y", "323");
+ assertXPath(pDocument, "/primitive2D/metafile/transform/textsimpleportion", "text", "TEST");
+ assertXPath(pDocument, "/primitive2D/metafile/transform/textsimpleportion", "fontcolor", "#000000");
+ assertXPath(pDocument, "/primitive2D/metafile/transform/textsimpleportion", "familyname", "CALIBRI");
+}
+
+void Test::TestDrawLine()
+{
+ // This unit checks for a correct import of an EMF+ file with only one DrawLine Record
+ // The line is colored and has a specified width, therefore a polypolygonstroke primitive is the optimal choice
+
+ // first, get the sequence of primitives and dump it
+ Primitive2DSequence aSequence = parseEmf("/emfio/qa/cppunit/emf/data/TestDrawLine.emf");
+ CPPUNIT_ASSERT_EQUAL(1, (int) aSequence.getLength());
+ Primitive2dXmlDump dumper;
+ xmlDocPtr pDocument = dumper.dumpAndParse(comphelper::sequenceToContainer<Primitive2DContainer>(aSequence));
+ CPPUNIT_ASSERT (pDocument);
+
+ // check correct import of the DrawLine: color and width of the line
+ assertXPath(pDocument, "/primitive2D/metafile/transform/polypolygonstroke/line", "color", "#000000");
+ assertXPath(pDocument, "/primitive2D/metafile/transform/polypolygonstroke/line", "width", "33");
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
}
diff --git a/emfio/qa/cppunit/emf/data/TestDrawLine.emf b/emfio/qa/cppunit/emf/data/TestDrawLine.emf
new file mode 100644
index 000000000000..89946c523f98
--- /dev/null
+++ b/emfio/qa/cppunit/emf/data/TestDrawLine.emf
Binary files differ
diff --git a/emfio/qa/cppunit/emf/data/TestDrawString.emf b/emfio/qa/cppunit/emf/data/TestDrawString.emf
new file mode 100644
index 000000000000..c7976f53b3c0
--- /dev/null
+++ b/emfio/qa/cppunit/emf/data/TestDrawString.emf
Binary files differ