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