diff options
Diffstat (limited to 'test/plugins')
| -rw-r--r-- | test/plugins/html/DemoOutputTest.cpp | 45 | 
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); +}  }  }  | 
