summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/plugins/css/CSSParserTest.cpp39
1 files changed, 38 insertions, 1 deletions
diff --git a/test/plugins/css/CSSParserTest.cpp b/test/plugins/css/CSSParserTest.cpp
index 84d4893..8880fc5 100644
--- a/test/plugins/css/CSSParserTest.cpp
+++ b/test/plugins/css/CSSParserTest.cpp
@@ -24,7 +24,7 @@
namespace ousia {
namespace parser {
-namespace css {
+namespace css {
TEST(CSSParser, testParseSelectors)
{
// create a string describing a SelectorTree as input.
@@ -58,6 +58,7 @@ TEST(CSSParser, testParseSelectors)
ASSERT_EQ(select, A->getPseudoSelector());
}
ASSERT_EQ(2, A->getEdges().size());
+ ASSERT_FALSE(A->isAccepting());
{
// assert A > B
std::vector<Rooted<SelectorNode>> Achildren =
@@ -70,6 +71,7 @@ TEST(CSSParser, testParseSelectors)
ASSERT_EQ(select, B->getPseudoSelector());
}
ASSERT_EQ(0, B->getEdges().size());
+ ASSERT_TRUE(B->isAccepting());
// assert A B:r
Achildren = A->getChildren(SelectionOperator::DESCENDANT, "B");
ASSERT_EQ(1, Achildren.size());
@@ -80,6 +82,7 @@ TEST(CSSParser, testParseSelectors)
ASSERT_EQ(select, Br->getPseudoSelector());
}
ASSERT_EQ(0, Br->getEdges().size());
+ ASSERT_TRUE(Br->isAccepting());
}
// assert C#a
children = root->getChildren("C");
@@ -91,6 +94,7 @@ TEST(CSSParser, testParseSelectors)
ASSERT_EQ(select, C->getPseudoSelector());
}
ASSERT_EQ(1, C->getEdges().size());
+ ASSERT_FALSE(C->isAccepting());
{
// assert C#a A[bla=\"blub\"]
std::vector<Rooted<SelectorNode>> Cchildren =
@@ -103,6 +107,7 @@ TEST(CSSParser, testParseSelectors)
ASSERT_EQ(select, A->getPseudoSelector());
}
ASSERT_EQ(0, A->getEdges().size());
+ ASSERT_TRUE(A->isAccepting());
}
// assert A::g(4,2,3)
children = root->getChildren("A");
@@ -114,7 +119,39 @@ TEST(CSSParser, testParseSelectors)
ASSERT_EQ(select, Ag->getPseudoSelector());
}
ASSERT_EQ(0, Ag->getEdges().size());
+ ASSERT_TRUE(Ag->isAccepting());
}
+
+TEST(CSSParser, testParseCSS)
+{
+ // create the CSS input
+ std::stringstream input;
+ input << "A, B A {\n";
+ input << "/*\n";
+ input << " * Some multiline\n";
+ input << " * comment\n";
+ input << " */\n";
+ input << "\t ident1 : \"val1\";\n";
+ input << "\t ident2 : \"val2\";\n";
+ input << "}\n";
+ input << "A:select(a,b) {\n";
+ input << "\t ident3 : \"val3\";\n";
+ input << "}\n";
+ input << "A {\n";
+ input << "\t ident1 : \"val4\";\n";
+ input << "}\n";
+
+
+ // initialize an empty parser context.
+ StandaloneParserContext ctx;
+
+ // parse the input.
+ CSSParser instance;
+ Rooted<SelectorNode> root = instance.parse(input, ctx).cast<SelectorNode>();
+
+
+}
+
}
}
}