diff options
author | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2014-12-03 17:01:46 +0100 |
---|---|---|
committer | Benjamin Paassen <bpaassen@techfak.uni-bielefeld.de> | 2014-12-03 17:01:46 +0100 |
commit | e91ba1faf25790eea34e7ae743aff06752f1ea8c (patch) | |
tree | 8ebacca554e639ddcbc547621076154d5cfaba45 /test/core/CSSTest.cpp | |
parent | 4a398a6771b42e1c928e2cbee35f8e5645e40369 (diff) |
Convenience versions for SelectorNode::getChildren.
Diffstat (limited to 'test/core/CSSTest.cpp')
-rw-r--r-- | test/core/CSSTest.cpp | 54 |
1 files changed, 48 insertions, 6 deletions
diff --git a/test/core/CSSTest.cpp b/test/core/CSSTest.cpp index 2c695d9..fdb8238 100644 --- a/test/core/CSSTest.cpp +++ b/test/core/CSSTest.cpp @@ -115,13 +115,55 @@ TEST(Specificity, testOperators) TEST(SelectorNode, testGetChildren) { Manager mgr(1); - Rooted<SelectorNode> root{new SelectorNode{mgr, "root", {"true", false}}}; - Rooted<SelectorNode> child{new SelectorNode{mgr, "A", {"true", false}}}; - root->getEdges().push_back( - new SelectorNode::SelectorEdge{mgr, child, SelectionOperator::DESCENDANT}); + // build some children. + Rooted<SelectorNode> root{new SelectorNode{mgr, "root"}}; + Rooted<SelectorNode> A{new SelectorNode{mgr, "A"}}; + Rooted<SelectorNode> AMy_Select{ + new SelectorNode{mgr, "A", {"my_select", {"a", "b"}, false}}}; + Rooted<SelectorNode> B{new SelectorNode{mgr, "B"}}; + + std::vector<Rooted<SelectorNode>> children = {A, AMy_Select, B}; + + for (auto &c : children) { + root->getEdges().push_back(new SelectorNode::SelectorEdge{ + mgr, c, SelectionOperator::DESCENDANT}); + } + root->getEdges().push_back(new SelectorNode::SelectorEdge{ + mgr, B, SelectionOperator::DIRECT_DESCENDANT}); + + // make some checks. + std::vector<Rooted<SelectorNode>> expected = {A}; std::vector<Rooted<SelectorNode>> actual = root->getChildren(SelectionOperator::DESCENDANT, "A", {"true", false}); - ASSERT_EQ(1,actual.size()); - ASSERT_EQ(child, actual[0]); + ASSERT_EQ(expected, actual); + + expected = {A, AMy_Select}; + actual = root->getChildren(SelectionOperator::DESCENDANT, "A"); + ASSERT_EQ(expected, actual); + actual = root->getChildren("A"); + ASSERT_EQ(expected, actual); + + expected = {A, AMy_Select, B}; + actual = root->getChildren(SelectionOperator::DESCENDANT); + ASSERT_EQ(expected, actual); + + expected = {B}; + actual = root->getChildren(SelectionOperator::DIRECT_DESCENDANT); + ASSERT_EQ(expected, actual); + + expected = {B, B}; + actual = root->getChildren("B"); + ASSERT_EQ(expected, actual); + + { + expected = {A, B, B}; + PseudoSelector select = {"true", false}; + actual = root->getChildren(select); + ASSERT_EQ(expected, actual); + } + + expected = {A, AMy_Select, B, B}; + actual = root->getChildren(); + ASSERT_EQ(expected, actual); } } |