diff options
| author | Adrian Boguszewski <adrbogus1@student.pg.gda.pl> | 2016-07-11 12:24:52 +0000 |
|---|---|---|
| committer | Adrian Boguszewski <adrbogus1@student.pg.gda.pl> | 2016-07-11 12:24:52 +0000 |
| commit | 058e95a59ccb2ab1748392acdfdbbffd516c9c81 (patch) | |
| tree | 86e3958aaad129307f45e590269924b14bca303d /testfiles/src/sp-object-test.cpp | |
| parent | Added simple test for SPObject (diff) | |
| download | inkscape-058e95a59ccb2ab1748392acdfdbbffd516c9c81.tar.gz inkscape-058e95a59ccb2ab1748392acdfdbbffd516c9c81.zip | |
First part of new SPObject children list
(bzr r14954.1.17)
Diffstat (limited to 'testfiles/src/sp-object-test.cpp')
| -rw-r--r-- | testfiles/src/sp-object-test.cpp | 78 |
1 files changed, 62 insertions, 16 deletions
diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index 594fd9eb7..8419cea23 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -12,7 +12,13 @@ #include <src/sp-object.h> #include <src/sp-item.h> #include <src/xml/node.h> +#include <src/xml/text-node.h> #include <doc-per-case-test.h> +#include <src/util/share.h> +#include <src/xml/simple-document.h> + +using namespace Inkscape; +using namespace Inkscape::XML; class SPObjectTest: public DocPerCaseTest { public: @@ -22,6 +28,17 @@ public: c = new SPItem(); d = new SPItem(); e = new SPItem(); + auto sd = new SimpleDocument(); + auto et = new TextNode(Util::share_string("e"), sd); + auto dt = new TextNode(Util::share_string("d"), sd); + auto ct = new TextNode(Util::share_string("c"), sd); + auto bt = new TextNode(Util::share_string("b"), sd); + auto at = new TextNode(Util::share_string("a"), sd); + e->invoke_build(_doc, et, 0); + d->invoke_build(_doc, dt, 0); + c->invoke_build(_doc, ct, 0); + b->invoke_build(_doc, bt, 0); + a->invoke_build(_doc, at, 0); } ~SPObjectTest() { delete a; @@ -38,12 +55,9 @@ public: }; TEST_F(SPObjectTest, Basics) { - d->invoke_build(_doc, _doc->rroot, 1); - c->invoke_build(_doc, _doc->rroot, 1); - b->invoke_build(_doc, _doc->rroot, 1); - a->attach(b, a->lastChild()); a->attach(c, a->lastChild()); - a->attach(d, a->lastChild()); + a->attach(b, nullptr); + a->attach(d, c); EXPECT_TRUE(a->hasChildren()); EXPECT_EQ(d, a->lastChild()); auto children = a->childList(false); @@ -51,19 +65,51 @@ TEST_F(SPObjectTest, Basics) { EXPECT_EQ(b, children[0]); EXPECT_EQ(c, children[1]); EXPECT_EQ(d, children[2]); - b->reorder(d); - children = a->childList(false); - EXPECT_EQ(3, children.size()); - EXPECT_EQ(c, children[0]); - EXPECT_EQ(d, children[1]); - EXPECT_EQ(b, children[2]); - a->detach(d); - EXPECT_EQ(b, a->lastChild()); + a->attach(b, a->lastChild()); + EXPECT_EQ(3, a->_children.size()); + a->reorder(b, b); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(b, &a->_children.front()); + EXPECT_EQ(d, &a->_children.back()); + a->reorder(b, d); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(c, &a->_children.front()); + EXPECT_EQ(b, &a->_children.back()); + a->reorder(d, nullptr); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(d, &a->_children.front()); + EXPECT_EQ(b, &a->_children.back()); + a->reorder(c, b); + EXPECT_EQ(3, a->_children.size()); + EXPECT_EQ(d, &a->_children.front()); + EXPECT_EQ(c, &a->_children.back()); + a->detach(b); + EXPECT_EQ(c, a->lastChild()); children = a->childList(false); EXPECT_EQ(2, children.size()); - EXPECT_EQ(c, children[0]); - EXPECT_EQ(b, children[1]); - a->detach(c); + EXPECT_EQ(d, children[0]); + EXPECT_EQ(c, children[1]); a->detach(b); + EXPECT_EQ(2, a->childList(false).size()); + a->releaseReferences(); EXPECT_FALSE(a->hasChildren()); } + +TEST_F(SPObjectTest, Advanced) { + a->attach(b, a->lastChild()); + a->attach(c, a->lastChild()); + a->attach(d, a->lastChild()); + a->attach(e, a->lastChild()); + EXPECT_EQ(e, a->get_child_by_repr(e->getRepr())); + EXPECT_EQ(c, a->get_child_by_repr(c->getRepr())); +} + +TEST_F(SPObjectTest, Tmp) { + a->attach(b, a->lastChild()); + a->attach(c, a->lastChild()); + a->attach(d, a->lastChild()); + a->attach(e, a->lastChild()); + EXPECT_TRUE(a->hasChildren()); + a->releaseReferences(); + EXPECT_FALSE(a->hasChildren()); +}
\ No newline at end of file |
