summaryrefslogtreecommitdiff
path: root/test/plugins
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2014-12-12 11:30:46 +0100
committerBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2014-12-12 11:30:46 +0100
commit3a86b9dbe2c98c32f08942b07354a0361e8bafdb (patch)
tree890c45e664534f8ce49a0f4cb9aeba68520f7543 /test/plugins
parent5fde58b21baa7d92194c7910a85ab542a61897a9 (diff)
Slight changes to logging mechanism.
Diffstat (limited to 'test/plugins')
-rw-r--r--test/plugins/css/CSSParserTest.cpp47
1 files changed, 42 insertions, 5 deletions
diff --git a/test/plugins/css/CSSParserTest.cpp b/test/plugins/css/CSSParserTest.cpp
index 3ea3a19..e043f60 100644
--- a/test/plugins/css/CSSParserTest.cpp
+++ b/test/plugins/css/CSSParserTest.cpp
@@ -18,6 +18,7 @@
#include <gtest/gtest.h>
+#include <iostream>
#include <sstream>
#include <plugins/css/CSSParser.hpp>
@@ -130,7 +131,6 @@ TEST(CSSParser, testParseSelectors)
TEST(CSSParser, testParseCSS)
{
-
// create the CSS input
std::stringstream input;
input << "A, B A {\n";
@@ -203,7 +203,7 @@ TEST(CSSParser, testParseCSS)
Rooted<SelectorNode> Aselect = children[1];
ASSERT_EQ("A", Aselect->getName());
{
- PseudoSelector select{"select",{"a","b"}, false};
+ PseudoSelector select{"select", {"a", "b"}, false};
ASSERT_EQ(select, Aselect->getPseudoSelector());
}
ASSERT_EQ(0, Aselect->getEdges().size());
@@ -225,7 +225,7 @@ TEST(CSSParser, testParseCSS)
*/
children = root->getChildren("B");
ASSERT_EQ(1, children.size());
-
+
Rooted<SelectorNode> B = children[0];
ASSERT_EQ("B", B->getName());
{
@@ -235,10 +235,10 @@ TEST(CSSParser, testParseCSS)
ASSERT_EQ(1, B->getEdges().size());
ASSERT_FALSE(B->isAccepting());
ASSERT_EQ(0, B->getRuleSet()->getRules().size());
-
+
children = B->getChildren("A");
ASSERT_EQ(1, children.size());
-
+
Rooted<SelectorNode> BA = children[0];
ASSERT_EQ("A", BA->getName());
{
@@ -258,6 +258,43 @@ TEST(CSSParser, testParseCSS)
ASSERT_EQ("val2", v.asString());
}
}
+
+void assertException(std::string css)
+{
+ std::stringstream input;
+ input << css;
+ // initialize a parser context.
+ TerminalLogger logger(std::cerr, true);
+ Scope scope(nullptr);
+ Registry registry(logger);
+ Manager manager;
+ ParserContext ctx{scope, registry, logger, manager};
+
+ bool seenException = false;
+ // parse the input.
+ CSSParser instance;
+ try {
+ instance.parse(input, ctx).cast<SelectorNode>();
+ }
+ catch (ParserException ex) {
+ logger.log(ex);
+ seenException = true;
+ }
+ ASSERT_TRUE(seenException);
+}
+
+TEST(CSSParser, testParseExceptions)
+{
+ assertException(", ");
+ assertException("A::myGenerative , ");
+ assertException("A::(a)");
+ assertException("A::f()");
+ assertException("A#");
+ assertException("A[]");
+ assertException("A[a");
+ assertException("A[a=]");
+ assertException("A > ");
+}
}
}
}