From 2629c62e415e9c02fe73f61c92d8148b8dad5bf9 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Sun, 25 Jan 2015 23:16:54 +0100 Subject: Adapted tests to StandaloneEnvironment, using complete pipeline in XmlParserTest --- test/core/parser/ParserStackTest.cpp | 17 +++---- test/plugins/css/CSSParserTest.cpp | 21 +++++---- test/plugins/xml/XmlParserTest.cpp | 91 ++++++++++++++---------------------- 3 files changed, 57 insertions(+), 72 deletions(-) (limited to 'test') diff --git a/test/core/parser/ParserStackTest.cpp b/test/core/parser/ParserStackTest.cpp index 81160da..e0c68cc 100644 --- a/test/core/parser/ParserStackTest.cpp +++ b/test/core/parser/ParserStackTest.cpp @@ -21,10 +21,12 @@ #include #include -#include +#include namespace ousia { +ConcreteLogger logger; + static const State STATE_DOCUMENT = 0; static const State STATE_BODY = 1; static const State STATE_EMPTY = 2; @@ -67,8 +69,8 @@ static const std::multimap TEST_HANDLERS{ TEST(ParserStack, simpleTest) { - StandaloneParserContext ctx; - ParserStack s{ctx.context, TEST_HANDLERS}; + StandaloneEnvironment env(logger); + ParserStack s{env.context, TEST_HANDLERS}; startCount = 0; endCount = 0; @@ -130,8 +132,8 @@ TEST(ParserStack, simpleTest) TEST(ParserStack, errorHandling) { - StandaloneParserContext ctx; - ParserStack s{ctx.context, TEST_HANDLERS}; + StandaloneEnvironment env(logger); + ParserStack s{env.context, TEST_HANDLERS}; ASSERT_THROW(s.start("body", {}), OusiaException); s.start("document", {}); @@ -149,9 +151,8 @@ TEST(ParserStack, errorHandling) TEST(ParserStack, validation) { - ConcreteLogger logger; - StandaloneParserContext ctx(logger); - ParserStack s{ctx.context, TEST_HANDLERS}; + StandaloneEnvironment env(logger); + ParserStack s{env.context, TEST_HANDLERS}; s.start("arguments", {}); ASSERT_TRUE(logger.hasError()); diff --git a/test/plugins/css/CSSParserTest.cpp b/test/plugins/css/CSSParserTest.cpp index 46b4ebb..33b97af 100644 --- a/test/plugins/css/CSSParserTest.cpp +++ b/test/plugins/css/CSSParserTest.cpp @@ -22,10 +22,14 @@ #include #include -#include +#include #include namespace ousia { + +static TerminalLogger logger(std::cerr, true); +//static ConcreteLogger logger; + TEST(CSSParser, testParseSelectors) { // create a string describing a SelectorTree @@ -39,12 +43,12 @@ TEST(CSSParser, testParseSelectors) */ // initialize an empty parser context. - StandaloneParserContext ctx; + StandaloneEnvironment env(logger); // parse the data. CSSParser instance; Rooted root = - instance.parse(data, ctx.context).cast(); + instance.parse(data, env.context).cast(); // we expect three children of the root node overall. ASSERT_EQ(3U, root->getEdges().size()); @@ -149,13 +153,13 @@ TEST(CSSParser, testParseCSS) input << "}\n"; // initialize an empty parser context. - StandaloneParserContext ctx; + StandaloneEnvironment env(logger); // parse the input. CSSParser instance; CharReader reader{input}; Rooted root = - instance.parse(reader, ctx.context).cast(); + instance.parse(reader, env.context).cast(); // we expect three children of the root node overall. ASSERT_EQ(3U, root->getEdges().size()); @@ -264,12 +268,13 @@ TEST(CSSParser, testParseCSS) void assertException(std::string css) { CharReader reader(css); - TerminalLogger logger(std::cerr, true); { - StandaloneParserContext ctx(logger); + StandaloneEnvironment env(logger); CSSParser instance; + + logger.reset(); try { - instance.parse(reader, ctx.context).cast(); + instance.parse(reader, env.context).cast(); } catch (LoggableException ex) { logger.log(ex); diff --git a/test/plugins/xml/XmlParserTest.cpp b/test/plugins/xml/XmlParserTest.cpp index 3ed7417..3660c35 100644 --- a/test/plugins/xml/XmlParserTest.cpp +++ b/test/plugins/xml/XmlParserTest.cpp @@ -21,75 +21,54 @@ #include #include -#include #include +#include #include -#include +#include +#include #include namespace ousia { -static TerminalLogger logger(std::cerr, true); +namespace RttiTypes { +extern const Rtti Document; +extern const Rtti Typesystem; +} -TEST(XmlParser, mismatchedTagException) -{ - StandaloneParserContext ctx; - XmlParser p; +struct XmlStandaloneEnvironment : public StandaloneEnvironment { + XmlParser xmlParser; + FileLocator fileLocator; - bool hadException = false; - try { - p.parse("\n", ctx.context); - } - catch (LoggableException ex) { - hadException = true; + XmlStandaloneEnvironment(ConcreteLogger &logger) + : StandaloneEnvironment(logger) + { + fileLocator.addUnittestSearchPath("xmlparser"); + + registry.registerDefaultExtensions(); + registry.registerParser({"text/vnd.ousia.oxm", "text/vnd.ousia.oxd"}, + {&RttiTypes::Document, &RttiTypes::Typesystem}, + &xmlParser); + registry.registerResourceLocator(&fileLocator); } - ASSERT_TRUE(hadException); +}; + +static TerminalLogger logger(std::cerr, true); + +TEST(XmlParser, mismatchedTag) +{ + XmlStandaloneEnvironment env(logger); + env.project->parse("mismatchedTag.oxm", "", "", + RttiSet{&RttiTypes::Document}, logger); + ASSERT_TRUE(logger.hasError()); } -const char *TEST_DATA = - "\n" - "\n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - " \n" - "\n"; - -TEST(XmlParser, namespaces) +TEST(XmlParser, generic) { - StandaloneParserContext ctx(logger); - XmlParser p; - CharReader reader(TEST_DATA); - { - try { - p.parse(TEST_DATA, ctx.context); - } - catch (LoggableException ex) { - logger.log(ex); - } - ctx.manager.exportGraphviz("xmlDocument.dot"); - } + XmlStandaloneEnvironment env(logger); + env.project->parse("generic.oxm", "", "", RttiSet{&RttiTypes::Document}, + logger); + env.manager.exportGraphviz("xmlDocument.dot"); } } -- cgit v1.2.3