From af9a8fb23a525dc0392890762651f315b32544e8 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Tue, 5 Jul 2016 13:49:26 +0200 Subject: Added simple test for SPObject (bzr r14954.1.16) --- testfiles/src/sp-object-test.cpp | 69 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 testfiles/src/sp-object-test.cpp (limited to 'testfiles/src/sp-object-test.cpp') diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp new file mode 100644 index 000000000..594fd9eb7 --- /dev/null +++ b/testfiles/src/sp-object-test.cpp @@ -0,0 +1,69 @@ +/* + * Multiindex container for selection + * + * Authors: + * Adrian Boguszewski + * + * Copyright (C) 2016 Adrian Boguszewski + * + * Released under GNU GPL, read the file 'COPYING' for more information + */ +#include +#include +#include +#include +#include + +class SPObjectTest: public DocPerCaseTest { +public: + SPObjectTest() { + a = new SPItem(); + b = new SPItem(); + c = new SPItem(); + d = new SPItem(); + e = new SPItem(); + } + ~SPObjectTest() { + delete a; + delete b; + delete c; + delete d; + delete e; + } + SPObject* a; + SPObject* b; + SPObject* c; + SPObject* d; + SPObject* e; +}; + +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()); + EXPECT_TRUE(a->hasChildren()); + EXPECT_EQ(d, a->lastChild()); + auto children = a->childList(false); + EXPECT_EQ(3, children.size()); + 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()); + children = a->childList(false); + EXPECT_EQ(2, children.size()); + EXPECT_EQ(c, children[0]); + EXPECT_EQ(b, children[1]); + a->detach(c); + a->detach(b); + EXPECT_FALSE(a->hasChildren()); +} -- cgit v1.2.3 From 058e95a59ccb2ab1748392acdfdbbffd516c9c81 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Mon, 11 Jul 2016 14:24:52 +0200 Subject: First part of new SPObject children list (bzr r14954.1.17) --- testfiles/src/sp-object-test.cpp | 78 +++++++++++++++++++++++++++++++--------- 1 file changed, 62 insertions(+), 16 deletions(-) (limited to 'testfiles/src/sp-object-test.cpp') 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 #include #include +#include #include +#include +#include + +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 -- cgit v1.2.3 From d1947e768272c703674129d5c583204ff2b59251 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 13 Jul 2016 13:36:19 +0200 Subject: Second part of new SPObject children list (bzr r14954.1.19) --- testfiles/src/sp-object-test.cpp | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'testfiles/src/sp-object-test.cpp') diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index 8419cea23..6ef9cd54c 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -59,6 +59,7 @@ TEST_F(SPObjectTest, Basics) { a->attach(b, nullptr); a->attach(d, c); EXPECT_TRUE(a->hasChildren()); + EXPECT_EQ(b, a->firstChild()); EXPECT_EQ(d, a->lastChild()); auto children = a->childList(false); EXPECT_EQ(3, children.size()); @@ -93,6 +94,8 @@ TEST_F(SPObjectTest, Basics) { EXPECT_EQ(2, a->childList(false).size()); a->releaseReferences(); EXPECT_FALSE(a->hasChildren()); + EXPECT_EQ(nullptr, a->firstChild()); + EXPECT_EQ(nullptr, a->lastChild()); } TEST_F(SPObjectTest, Advanced) { @@ -102,6 +105,15 @@ TEST_F(SPObjectTest, Advanced) { 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())); + EXPECT_EQ(d, e->getPrev()); + EXPECT_EQ(c, d->getPrev()); + EXPECT_EQ(b, c->getPrev()); + EXPECT_EQ(nullptr, b->getPrev()); + std::vector tmp = {b, c, d, e}; + int index = 0; + for(auto& child: a->_children) { + EXPECT_EQ(tmp[index++], &child); + } } TEST_F(SPObjectTest, Tmp) { @@ -109,7 +121,12 @@ TEST_F(SPObjectTest, Tmp) { 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()); + std::vector tmp; + for (SPObject *q = a->firstChild(); q; q = q->getNext()) { + tmp.push_back(q); + } + int index = 0; + for(auto& child: a->_children) { + EXPECT_EQ(tmp[index++], &child); + } } \ No newline at end of file -- cgit v1.2.3 From 9e210a6d1333c3366681547e3e81593ef69ff73e Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Thu, 14 Jul 2016 12:56:49 +0200 Subject: Last part of new SPObject children list (bzr r14954.1.20) --- testfiles/src/sp-object-test.cpp | 20 +++++--------------- 1 file changed, 5 insertions(+), 15 deletions(-) (limited to 'testfiles/src/sp-object-test.cpp') diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index 6ef9cd54c..a2c31d6d7 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -16,6 +16,7 @@ #include #include #include +#include using namespace Inkscape; using namespace Inkscape::XML; @@ -109,24 +110,13 @@ TEST_F(SPObjectTest, Advanced) { EXPECT_EQ(c, d->getPrev()); EXPECT_EQ(b, c->getPrev()); EXPECT_EQ(nullptr, b->getPrev()); + EXPECT_EQ(nullptr, e->getNext()); + EXPECT_EQ(e, d->getNext()); + EXPECT_EQ(d, c->getNext()); + EXPECT_EQ(c, b->getNext()); std::vector tmp = {b, c, d, e}; int index = 0; for(auto& child: a->_children) { EXPECT_EQ(tmp[index++], &child); } } - -TEST_F(SPObjectTest, Tmp) { - a->attach(b, a->lastChild()); - a->attach(c, a->lastChild()); - a->attach(d, a->lastChild()); - a->attach(e, a->lastChild()); - std::vector tmp; - for (SPObject *q = a->firstChild(); q; q = q->getNext()) { - tmp.push_back(q); - } - int index = 0; - for(auto& child: a->_children) { - EXPECT_EQ(tmp[index++], &child); - } -} \ No newline at end of file -- cgit v1.2.3 From 24d3f50003ca3cec6a03a7f5267cc4fe5588c69f Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Thu, 14 Jul 2016 13:17:21 +0200 Subject: Renamed children list in SPObject (bzr r14954.1.21) --- testfiles/src/sp-object-test.cpp | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) (limited to 'testfiles/src/sp-object-test.cpp') diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index a2c31d6d7..cb4f6fc46 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -68,23 +68,23 @@ TEST_F(SPObjectTest, Basics) { EXPECT_EQ(c, children[1]); EXPECT_EQ(d, children[2]); a->attach(b, a->lastChild()); - EXPECT_EQ(3, a->_children.size()); + 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()); + 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()); + 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()); + 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()); + 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); @@ -116,7 +116,7 @@ TEST_F(SPObjectTest, Advanced) { EXPECT_EQ(c, b->getNext()); std::vector tmp = {b, c, d, e}; int index = 0; - for(auto& child: a->_children) { + for(auto& child: a->children) { EXPECT_EQ(tmp[index++], &child); } } -- cgit v1.2.3 From ff4fbbc93f67afd6cbf851691833a50d6c76b350 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Wed, 27 Jul 2016 12:19:03 +0200 Subject: Renamed some functions, fixed tests (bzr r14954.1.28) --- testfiles/src/sp-object-test.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'testfiles/src/sp-object-test.cpp') diff --git a/testfiles/src/sp-object-test.cpp b/testfiles/src/sp-object-test.cpp index cb4f6fc46..df811647f 100644 --- a/testfiles/src/sp-object-test.cpp +++ b/testfiles/src/sp-object-test.cpp @@ -14,9 +14,7 @@ #include #include #include -#include #include -#include using namespace Inkscape; using namespace Inkscape::XML; @@ -42,11 +40,11 @@ public: a->invoke_build(_doc, at, 0); } ~SPObjectTest() { - delete a; - delete b; - delete c; - delete d; delete e; + delete d; + delete c; + delete b; + delete a; } SPObject* a; SPObject* b; -- cgit v1.2.3