diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rw-r--r-- | test/formats/osxml/OsxmlParserTest.cpp | 30 | ||||
-rw-r--r-- | test/plugins/html/DemoOutputTest.cpp | 27 | ||||
-rw-r--r-- | testdata/integration/osxml/affiliation_typesystem.osxml (renamed from testdata/osxmlparser/affiliation_typesystem.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/bibliography_ontology.osxml (renamed from testdata/osxmlparser/bibliography_ontology.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/book_ontology.osxml | 35 | ||||
-rw-r--r-- | testdata/integration/osxml/comments_ontology.osxml | 40 | ||||
-rw-r--r-- | testdata/integration/osxml/complex_book.osxml (renamed from testdata/osxmlparser/complex_book.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/email_typesystem.osxml (renamed from testdata/osxmlparser/email_typesystem.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/emphasis_ontology.osxml (renamed from testdata/osxmlparser/emphasis_ontology.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/headings_ontology.osxml | 33 | ||||
-rw-r--r-- | testdata/integration/osxml/lists_ontology.osxml (renamed from testdata/osxmlparser/lists_ontology.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/meta_ontology.osxml (renamed from testdata/osxmlparser/meta_ontology.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/simple_annotation.osxml (renamed from testdata/osxmlparser/simple_annotation.osxml) | 0 | ||||
-rw-r--r-- | testdata/integration/osxml/version_typesystem.osxml (renamed from testdata/osxmlparser/version_typesystem.osxml) | 0 |
15 files changed, 109 insertions, 58 deletions
@@ -12,7 +12,7 @@ nbproject target *.autosave .kdev4 -application.kdev4 +*.kdev4 *.aux *.bbl *.bcf diff --git a/test/formats/osxml/OsxmlParserTest.cpp b/test/formats/osxml/OsxmlParserTest.cpp index 03f10d3..603d6c1 100644 --- a/test/formats/osxml/OsxmlParserTest.cpp +++ b/test/formats/osxml/OsxmlParserTest.cpp @@ -384,35 +384,5 @@ TEST(OsxmlParser, documentParsing) } } - -TEST(OsxmlParser, complexDocumentParsing) -{ - logger.reset(); - XmlStandaloneEnvironment env(logger); - Rooted<Node> book_document_node = - env.parse("complex_book.osxml", "", "", RttiSet{&RttiTypes::Document}); - ASSERT_FALSE(logger.hasError()); - ASSERT_FALSE(book_document_node == nullptr); - ASSERT_TRUE(book_document_node->isa(&RttiTypes::Document)); - Rooted<Document> doc = book_document_node.cast<Document>(); - ASSERT_TRUE(doc->validate(logger)); - ASSERT_FALSE(logger.hasError()); -} - -TEST(OsxmlParser, simpleAnnotation) -{ - logger.reset(); - XmlStandaloneEnvironment env(logger); - Rooted<Node> book_document_node = - env.parse("simple_annotation.osxml", "", "", RttiSet{&RttiTypes::Document}); - ASSERT_FALSE(logger.hasError()); - ASSERT_FALSE(book_document_node == nullptr); - ASSERT_TRUE(book_document_node->isa(&RttiTypes::Document)); - Rooted<Document> doc = book_document_node.cast<Document>(); - ASSERT_TRUE(doc->validate(logger)); - ASSERT_FALSE(logger.hasError()); -} - - } diff --git a/test/plugins/html/DemoOutputTest.cpp b/test/plugins/html/DemoOutputTest.cpp index 1c54a14..f2d0a24 100644 --- a/test/plugins/html/DemoOutputTest.cpp +++ b/test/plugins/html/DemoOutputTest.cpp @@ -134,32 +134,5 @@ struct XmlStandaloneEnvironment : public StandaloneEnvironment { } }; -TEST(DemoHTMLTransformer, pipelineTest) -{ - // Construct Manager - TerminalLogger logger{std::cerr, true}; - XmlStandaloneEnvironment env(logger); - Rooted<Node> book_document_node = - env.parse("complex_book.osxml", "", "", RttiSet{&RttiTypes::Document}); - ASSERT_FALSE(logger.hasError()); - ASSERT_FALSE(book_document_node == nullptr); - ASSERT_TRUE(book_document_node->isa(&RttiTypes::Document)); - Rooted<Document> doc = book_document_node.cast<Document>(); - ASSERT_TRUE(doc->validate(logger)); - ASSERT_FALSE(logger.hasError()); - - // we can only do a rough check here. - DemoHTMLTransformer transformer; - std::stringstream out; - transformer.writeHTML(doc, out, logger); - const std::string res = out.str(); - ASSERT_FALSE(res == ""); - ASSERT_TRUE(res.find("Was ist Aufklärung?") != std::string::npos); - ASSERT_TRUE(res.find( - "Aufklärung ist der Ausgang des Menschen aus seiner " - "selbstverschuldeten Unmündigkeit") != std::string::npos); - ASSERT_TRUE(res.find("Sapere aude!") != std::string::npos); -} - } } diff --git a/testdata/osxmlparser/affiliation_typesystem.osxml b/testdata/integration/osxml/affiliation_typesystem.osxml index d84dc30..d84dc30 100644 --- a/testdata/osxmlparser/affiliation_typesystem.osxml +++ b/testdata/integration/osxml/affiliation_typesystem.osxml diff --git a/testdata/osxmlparser/bibliography_ontology.osxml b/testdata/integration/osxml/bibliography_ontology.osxml index 0333133..0333133 100644 --- a/testdata/osxmlparser/bibliography_ontology.osxml +++ b/testdata/integration/osxml/bibliography_ontology.osxml diff --git a/testdata/integration/osxml/book_ontology.osxml b/testdata/integration/osxml/book_ontology.osxml new file mode 100644 index 0000000..2c615ca --- /dev/null +++ b/testdata/integration/osxml/book_ontology.osxml @@ -0,0 +1,35 @@ +<?xml version="1.0" standalone="yes"?> +<!-- The ontology node is the root node of a single ontology definition --> +<ontology name="book"> + <struct name="book" cardinality="{1}" root="true"> + <field> + <childRef ref="book.chapter"/> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="chapter"> + <field> + <childRef ref="book.section"/> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="section"> + <field> + <childRef ref="book.subsection"/> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="subsection"> + <field> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="paragraph" transparent="true"> + <field> + <childRef ref="book.text"/> + </field> + </struct> + <struct name="text" transparent="true"> + <primitive type="string"/> + </struct> +</ontology> diff --git a/testdata/integration/osxml/comments_ontology.osxml b/testdata/integration/osxml/comments_ontology.osxml new file mode 100644 index 0000000..34185d8 --- /dev/null +++ b/testdata/integration/osxml/comments_ontology.osxml @@ -0,0 +1,40 @@ +<?xml version="1.0" standalone="yes"?> +<ontology name="comments"> + <import rel="ontology" src="./book_ontology.osxml"/> + + <!-- an annotation comment --> + <annotation name="comment"> + <field name="replies" subtree="true"> + <childRef ref="reply"/> + </field> + <field name="content"> + <childRef ref="book.paragraph"/> + </field> + </annotation> + + <!-- an point-like structure comment. --> + <struct name="comment"> + <!-- Is there a chance to prevent users from having to redefine these + two fields in comment and reply? Could we use a fieldRef here? + Or would that be circular? --> + <field name="replies" subtree="true"> + <childRef ref="reply"/> + </field> + <field name="content"> + <childRef ref="book.paragraph"/> + </field> + <parentRef ref="book.paragraph"> + <fieldRef ref="$default"/> + </parentRef> + </struct> + <!-- note that replies are organized in a tree fashion: One can also reply + to a reply --> + <struct name="reply"> + <field name="replies" subtree="true"> + <childRef ref="reply"/> + </field> + <field name="content"> + <childRef ref="book.paragraph"/> + </field> + </struct> +</ontology> diff --git a/testdata/osxmlparser/complex_book.osxml b/testdata/integration/osxml/complex_book.osxml index 8eb5f26..8eb5f26 100644 --- a/testdata/osxmlparser/complex_book.osxml +++ b/testdata/integration/osxml/complex_book.osxml diff --git a/testdata/osxmlparser/email_typesystem.osxml b/testdata/integration/osxml/email_typesystem.osxml index 325f89a..325f89a 100644 --- a/testdata/osxmlparser/email_typesystem.osxml +++ b/testdata/integration/osxml/email_typesystem.osxml diff --git a/testdata/osxmlparser/emphasis_ontology.osxml b/testdata/integration/osxml/emphasis_ontology.osxml index 0fdd63a..0fdd63a 100644 --- a/testdata/osxmlparser/emphasis_ontology.osxml +++ b/testdata/integration/osxml/emphasis_ontology.osxml diff --git a/testdata/integration/osxml/headings_ontology.osxml b/testdata/integration/osxml/headings_ontology.osxml new file mode 100644 index 0000000..56c9e7d --- /dev/null +++ b/testdata/integration/osxml/headings_ontology.osxml @@ -0,0 +1,33 @@ +<?xml version="1.0" standalone="yes"?> +<ontology name="headings"> + + <import rel="ontology" src="./book_ontology.osxml"/> + + <struct name="heading" cardinality="1" transparent="true"> + <!-- The parent mechanism is a curious thing. Remind yourself + that parent-child-relationship in this sense are mediated + by fields. So we must either reference a field that is + already there or declare a new one on the fly. --> + <parentRef ref="book.book"> + <field name="heading" subtree="true" optional="true"/> + </parentRef> + <parentRef ref="book.chapter"> + <field name="heading" subtree="true" optional="true"/> + </parentRef> + <parentRef ref="book.section"> + <field name="heading" subtree="true" optional="true"/> + </parentRef> + <parentRef ref="book.subsection"> + <field name="heading" subtree="true" optional="true"/> + </parentRef> + <parentRef ref="book.paragraph"> + <field name="heading" subtree="true" optional="true"/> + </parentRef> + <!-- regarding its fields we have a problem here. We do not want to + declare a new field, because in fact we want to allow every + bit of content that a paragraph would allow - also considering + possible extensions of paragraph by other ontologies. + So we need to reference the default field of paragraph. --> + <fieldRef ref="book.paragraph.$default"/> + </struct> +</ontology> diff --git a/testdata/osxmlparser/lists_ontology.osxml b/testdata/integration/osxml/lists_ontology.osxml index c18494a..c18494a 100644 --- a/testdata/osxmlparser/lists_ontology.osxml +++ b/testdata/integration/osxml/lists_ontology.osxml diff --git a/testdata/osxmlparser/meta_ontology.osxml b/testdata/integration/osxml/meta_ontology.osxml index eb392ce..eb392ce 100644 --- a/testdata/osxmlparser/meta_ontology.osxml +++ b/testdata/integration/osxml/meta_ontology.osxml diff --git a/testdata/osxmlparser/simple_annotation.osxml b/testdata/integration/osxml/simple_annotation.osxml index c0f426a..c0f426a 100644 --- a/testdata/osxmlparser/simple_annotation.osxml +++ b/testdata/integration/osxml/simple_annotation.osxml diff --git a/testdata/osxmlparser/version_typesystem.osxml b/testdata/integration/osxml/version_typesystem.osxml index 0d52736..0d52736 100644 --- a/testdata/osxmlparser/version_typesystem.osxml +++ b/testdata/integration/osxml/version_typesystem.osxml |