summaryrefslogtreecommitdiff
path: root/test/plugins/html/DemoOutputTest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/plugins/html/DemoOutputTest.cpp')
-rw-r--r--test/plugins/html/DemoOutputTest.cpp45
1 files changed, 45 insertions, 0 deletions
diff --git a/test/plugins/html/DemoOutputTest.cpp b/test/plugins/html/DemoOutputTest.cpp
index 4ab2c53..5a34112 100644
--- a/test/plugins/html/DemoOutputTest.cpp
+++ b/test/plugins/html/DemoOutputTest.cpp
@@ -49,6 +49,7 @@ TEST(DemoHTMLTransformer, writeHTML)
// Construct the document.
Rooted<model::Document> doc = model::constructAdvancedDocument(
mgr, logger, bookDom, headingDom, listDom, emDom);
+ ASSERT_TRUE(doc != nullptr);
#ifdef MANAGER_GRAPHVIZ_EXPORT
// dump the manager state
@@ -59,5 +60,49 @@ TEST(DemoHTMLTransformer, writeHTML)
DemoHTMLTransformer transformer;
transformer.writeHTML(doc, std::cout);
}
+
+TEST(DemoHTMLTransformer, AnnotationProcessing)
+{
+ // Construct Manager
+ TerminalLogger logger{std::cerr, true};
+ Manager mgr{1};
+ Rooted<model::SystemTypesystem> sys{new model::SystemTypesystem(mgr)};
+ // Get the domains.
+ Rooted<model::Domain> bookDom =
+ model::constructBookDomain(mgr, sys, logger);
+ Rooted<model::Domain> emDom =
+ model::constructEmphasisDomain(mgr, sys, logger);
+ // Construct a document only containing overlapping annotations.
+ // it has the form: <em>bla<strong>blub</em>bla</strong>
+ Rooted<model::Document> doc{new model::Document(mgr, "annotations.oxd")};
+ doc->addDomains({bookDom, emDom});
+ Rooted<model::StructuredEntity> book =
+ buildRootStructuredEntity(doc, logger, {"book"});
+ ASSERT_TRUE(book != nullptr);
+ Rooted<model::StructuredEntity> p =
+ buildStructuredEntity(doc, logger, book, {"paragraph"});
+ ASSERT_TRUE(p != nullptr);
+ Rooted<model::AnnotationEntity::Anchor> em_start =
+ buildAnchor(logger, p, "1");
+ ASSERT_TRUE(em_start != nullptr);
+ ASSERT_TRUE(addText(logger, doc, p, "bla"));
+ Rooted<model::AnnotationEntity::Anchor> strong_start =
+ buildAnchor(logger, p, "2");
+ ASSERT_TRUE(strong_start != nullptr);
+ ASSERT_TRUE(addText(logger, doc, p, "blub"));
+ Rooted<model::AnnotationEntity::Anchor> em_end =
+ buildAnchor(logger, p, "3");
+ ASSERT_TRUE(em_end != nullptr);
+ ASSERT_TRUE(addText(logger, doc, p, "bla"));
+ Rooted<model::AnnotationEntity::Anchor> strong_end =
+ buildAnchor(logger, p, "4");
+ ASSERT_TRUE(strong_end != nullptr);
+ buildAnnotationEntity(doc, logger, {"emphasized"}, em_start, em_end);
+ buildAnnotationEntity(doc, logger, {"strong"}, strong_start, strong_end);
+
+ // TODO: change this. Don't use printouts
+ DemoHTMLTransformer transformer;
+ transformer.writeHTML(doc, std::cout);
+}
}
}