From 5633812ca77f35e52db62e7b432761e0e59253fe Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Thu, 9 Jun 2016 17:19:23 +0200 Subject: Removed Object class and temporary test dependencies (bzr r14954.1.4) --- testfiles/src/object-set-test.cpp | 15 +++-------- testfiles/src/object-test.cpp | 56 --------------------------------------- 2 files changed, 4 insertions(+), 67 deletions(-) delete mode 100644 testfiles/src/object-test.cpp (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index ff341b162..b0d236128 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -9,11 +9,10 @@ * Released under GNU GPL, read the file 'COPYING' for more information */ #include +#include #include "object-set.h" -#include "document.h" -#include "xml/simple-document.h" -class ObjectSetTest: public testing::Test { +class ObjectSetTest: public DocPerCaseTest { public: ObjectSetTest() { A = new SPObject(); @@ -71,10 +70,7 @@ TEST_F(ObjectSetTest, Basics) { TEST_F(ObjectSetTest, Autoremoving) { SPObject* Q = new SPObject(); - // TODO temporary - SPDocument *document = new SPDocument(); - Inkscape::XML::Node *rroot = new Inkscape::XML::SimpleDocument(); - Q->invoke_build(document, rroot, 0); + Q->invoke_build(_doc, _doc->rroot, 1); set.add(Q); EXPECT_TRUE(set.contains(Q)); EXPECT_EQ(1, set.size()); @@ -172,10 +168,7 @@ TEST_F(ObjectSetTest, Removing) { TEST_F(ObjectSetTest, TwoSets) { SPObject* Q = new SPObject(); - // TODO temporary - SPDocument *document = new SPDocument(); - Inkscape::XML::Node *rroot = new Inkscape::XML::SimpleDocument(); - Q->invoke_build(document, rroot, 0); + Q->invoke_build(_doc, _doc->rroot, 1); A->attach(B, nullptr); A->attach(Q, nullptr); set.add(A); diff --git a/testfiles/src/object-test.cpp b/testfiles/src/object-test.cpp deleted file mode 100644 index 83e90b2ec..000000000 --- a/testfiles/src/object-test.cpp +++ /dev/null @@ -1,56 +0,0 @@ -#include "gtest/gtest.h" -#include "object.h" - -class ObjectTest: public testing::Test { -public: - ObjectTest() { - object = new Object("parent"); - childOfChild = new Object("childOfChild"); - child = new Object("child"); - child2 = new Object("child2"); - object2 = new Object("object2"); - child3 = new Object("child3"); - } - ~ObjectTest() { - delete child3; - delete child2; - delete childOfChild; - delete child; - delete object2; - delete object; - } - Object* object; - Object* object2; - Object* child; - Object* childOfChild; - Object* child2; - Object* child3; -}; - -TEST_F(ObjectTest, AddChild) { - EXPECT_EQ(0, object->getChildren().size()); - object->addChild(child); - EXPECT_EQ(1, object->getChildren().size()); - EXPECT_EQ(child, &(object->getChildren().front())); - EXPECT_EQ(object, child->getParent()); -} - -TEST_F(ObjectTest, IsDescendantOf) { - object->addChild(child); - child->addChild(childOfChild); - object->addChild(child2); - object2->addChild(child3); - EXPECT_TRUE(child->isDescendantOf(object)); - EXPECT_TRUE(childOfChild->isDescendantOf(child)); - EXPECT_TRUE(childOfChild->isDescendantOf(object)); - EXPECT_TRUE(child2->isDescendantOf(object)); - EXPECT_TRUE(child3->isDescendantOf(object2)); - EXPECT_FALSE(child->isDescendantOf(child2)); - EXPECT_FALSE(child2->isDescendantOf(child)); - EXPECT_FALSE(object->isDescendantOf(childOfChild)); - EXPECT_FALSE(object->isDescendantOf(child)); - EXPECT_FALSE(object->isDescendantOf(object2)); - EXPECT_FALSE(object2->isDescendantOf(object)); - EXPECT_FALSE(child2->isDescendantOf(child3)); - EXPECT_FALSE(child3->isDescendantOf(child2)); -} -- cgit v1.2.3 From 1636c1dd1651780d01759676b194312529f211f7 Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Sat, 25 Jun 2016 22:24:26 +0200 Subject: Moved next functions, added namespace, renamed range functions (bzr r14954.1.10) --- testfiles/src/object-set-test.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index e319a1a6b..ea953ac27 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -12,6 +12,8 @@ #include #include "object-set.h" +using namespace Inkscape; + class ObjectSetTest: public DocPerCaseTest { public: ObjectSetTest() { @@ -196,11 +198,11 @@ TEST_F(ObjectSetTest, SetOrder) { set->add(E); set->add(C); EXPECT_EQ(5, set->size()); - auto it = set->range().begin(); + auto it = set->objects().begin(); EXPECT_EQ(A, *it++); EXPECT_EQ(D, *it++); EXPECT_EQ(B, *it++); EXPECT_EQ(E, *it++); EXPECT_EQ(C, *it++); - EXPECT_EQ(set->range().end(), it); + EXPECT_EQ(set->objects().end(), it); } \ No newline at end of file -- cgit v1.2.3 From a51df2ab1eb079b2588ccb9398440f403d11c34d Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Mon, 27 Jun 2016 16:59:48 +0200 Subject: Added more tests (bzr r14954.1.11) --- testfiles/src/object-set-test.cpp | 105 ++++++++++++++++++++++++++++++++------ 1 file changed, 89 insertions(+), 16 deletions(-) (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index ea953ac27..e294a5a51 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -10,6 +10,8 @@ */ #include #include +#include +#include #include "object-set.h" using namespace Inkscape; @@ -67,11 +69,98 @@ TEST_F(ObjectSetTest, Basics) { EXPECT_TRUE(set->includes(C)); EXPECT_FALSE(set->includes(D)); EXPECT_FALSE(set->includes(X)); + EXPECT_FALSE(set->includes(nullptr)); set->remove(A); EXPECT_EQ(2, set->size()); EXPECT_FALSE(set->includes(A)); set->clear(); EXPECT_EQ(0, set->size()); + bool resultNull = set->add(nullptr); + EXPECT_FALSE(resultNull); + EXPECT_EQ(0, set->size()); + bool resultNull2 = set->remove(nullptr); + EXPECT_FALSE(resultNull2); +} + +TEST_F(ObjectSetTest, Advanced) { + set->add(A); + set->add(B); + set->add(C); + EXPECT_TRUE(set->includes(C)); + set->toggle(C); + EXPECT_EQ(2, set->size()); + EXPECT_FALSE(set->includes(C)); + set->toggle(D); + EXPECT_EQ(3, set->size()); + EXPECT_TRUE(set->includes(D)); + set->toggle(D); + EXPECT_EQ(2, set->size()); + EXPECT_FALSE(set->includes(D)); + EXPECT_EQ(nullptr, set->single()); + set->set(X); + EXPECT_EQ(1, set->size()); + EXPECT_TRUE(set->includes(X)); + EXPECT_EQ(X, set->single()); + EXPECT_FALSE(set->isEmpty()); + set->clear(); + EXPECT_TRUE(set->isEmpty()); + std::vector list1 {A, B, C, D}; + std::vector list2 {E, F}; + set->addList(list1); + EXPECT_EQ(4, set->size()); + set->addList(list2); + EXPECT_EQ(6, set->size()); + EXPECT_TRUE(set->includes(A)); + EXPECT_TRUE(set->includes(B)); + EXPECT_TRUE(set->includes(C)); + EXPECT_TRUE(set->includes(D)); + EXPECT_TRUE(set->includes(E)); + EXPECT_TRUE(set->includes(F)); + set->setList(list2); + EXPECT_EQ(2, set->size()); + EXPECT_TRUE(set->includes(E)); + EXPECT_TRUE(set->includes(F)); +} + +TEST_F(ObjectSetTest, Items) { + SPRect* rect10x100 = (SPRect *) SPFactory::createObject("svg:rect"); +// rect10x100->invoke_build(_doc, _doc->rroot, 1); + SPRect* rect20x40 = (SPRect *) SPFactory::createObject("svg:rect"); +// rect20x40->invoke_build(_doc, _doc->rroot, 1); +// SPRect* rect30x30 = (SPRect *) SPFactory::createObject("svg:rect"); +// rect30x30->invoke_build(_doc, _doc->rroot, 1); +// rect10x100->width = 10; +// rect10x100->height = 100; +// rect20x40->width = 20; +// rect20x40->height = 40; +// rect30x30->width = 30; +// rect30x30->height = 30; + set->add(rect10x100); + EXPECT_EQ(rect10x100, set->singleItem()); + EXPECT_EQ(rect10x100->getRepr(), set->singleRepr()); + set->add(rect20x40); + EXPECT_EQ(nullptr, set->singleItem()); + EXPECT_EQ(nullptr, set->singleRepr()); +// set->add(rect30x30); +// EXPECT_EQ(3, set->size()); +// EXPECT_EQ(rect10x100, set->smallestItem(ObjectSet::CompareSize::HORIZONTAL)); +// EXPECT_EQ(rect30x30, set->smallestItem(ObjectSet::CompareSize::VERTICAL)); +// EXPECT_EQ(rect20x40, set->smallestItem(ObjectSet::CompareSize::AREA)); +// EXPECT_EQ(rect30x30, set->largestItem(ObjectSet::CompareSize::HORIZONTAL)); +// EXPECT_EQ(rect10x100, set->largestItem(ObjectSet::CompareSize::VERTICAL)); +// EXPECT_EQ(rect10x100, set->largestItem(ObjectSet::CompareSize::AREA)); +} + +TEST_F(ObjectSetTest, Ranges) { + std::vector objs {A, D, B, E, C, F}; + set->add(objs.begin() + 1, objs.end() - 1); + EXPECT_EQ(4, set->size()); + auto it = set->objects().begin(); + EXPECT_EQ(D, *it++); + EXPECT_EQ(B, *it++); + EXPECT_EQ(E, *it++); + EXPECT_EQ(C, *it++); + EXPECT_EQ(set->objects().end(), it); } TEST_F(ObjectSetTest, Autoremoving) { @@ -190,19 +279,3 @@ TEST_F(ObjectSetTest, SetRemoving) { EXPECT_STREQ(nullptr, A->getId()); EXPECT_STREQ(nullptr, C->getId()); } - -TEST_F(ObjectSetTest, SetOrder) { - set->add(A); - set->add(D); - set->add(B); - set->add(E); - set->add(C); - EXPECT_EQ(5, set->size()); - auto it = set->objects().begin(); - EXPECT_EQ(A, *it++); - EXPECT_EQ(D, *it++); - EXPECT_EQ(B, *it++); - EXPECT_EQ(E, *it++); - EXPECT_EQ(C, *it++); - EXPECT_EQ(set->objects().end(), it); -} \ No newline at end of file -- cgit v1.2.3 From 22262f2db6747eb516283b92abcfd348c700911a Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Fri, 1 Jul 2016 20:57:32 +0200 Subject: Added xmlNodes as range function (bzr r14954.1.12) --- testfiles/src/object-set-test.cpp | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index e294a5a51..ea3471bf0 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -13,6 +13,7 @@ #include #include #include "object-set.h" +#include using namespace Inkscape; @@ -123,6 +124,8 @@ TEST_F(ObjectSetTest, Advanced) { } TEST_F(ObjectSetTest, Items) { + // cannot test smallestItem and largestItem functions due to too many dependencies + // uncomment if the problem is fixed SPRect* rect10x100 = (SPRect *) SPFactory::createObject("svg:rect"); // rect10x100->invoke_build(_doc, _doc->rroot, 1); SPRect* rect20x40 = (SPRect *) SPFactory::createObject("svg:rect"); @@ -161,6 +164,18 @@ TEST_F(ObjectSetTest, Ranges) { EXPECT_EQ(E, *it++); EXPECT_EQ(C, *it++); EXPECT_EQ(set->objects().end(), it); + SPObject* rect1 = SPFactory::createObject("svg:rect"); + SPObject* rect2 = SPFactory::createObject("svg:rect"); + SPObject* rect3 = SPFactory::createObject("svg:rect"); + set->add(rect1); + set->add(rect2); + set->add(rect3); + EXPECT_EQ(7, set->size()); + auto xmlNode = set->xmlNodes().begin(); + EXPECT_EQ(rect1->getRepr(), *xmlNode++); + EXPECT_EQ(rect2->getRepr(), *xmlNode++); + EXPECT_EQ(rect3->getRepr(), *xmlNode++); + EXPECT_EQ(set->xmlNodes().end(), xmlNode); } TEST_F(ObjectSetTest, Autoremoving) { -- cgit v1.2.3 From da0dcbcc4053c9e9c693f31189b4676768e07abc Mon Sep 17 00:00:00 2001 From: Adrian Boguszewski Date: Sun, 3 Jul 2016 21:13:47 +0200 Subject: Added tests (bzr r14954.1.15) --- testfiles/src/object-set-test.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index ea3471bf0..a745ace29 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -172,10 +172,17 @@ TEST_F(ObjectSetTest, Ranges) { set->add(rect3); EXPECT_EQ(7, set->size()); auto xmlNode = set->xmlNodes().begin(); + EXPECT_EQ(3, boost::distance(set->xmlNodes())); EXPECT_EQ(rect1->getRepr(), *xmlNode++); EXPECT_EQ(rect2->getRepr(), *xmlNode++); EXPECT_EQ(rect3->getRepr(), *xmlNode++); EXPECT_EQ(set->xmlNodes().end(), xmlNode); + auto item = set->items().begin(); + EXPECT_EQ(3, boost::distance(set->items())); + EXPECT_EQ(rect1, *item++); + EXPECT_EQ(rect2, *item++); + EXPECT_EQ(rect3, *item++); + EXPECT_EQ(set->items().end(), item); } TEST_F(ObjectSetTest, Autoremoving) { -- cgit v1.2.3 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/object-set-test.cpp | 2 +- testfiles/src/sp-object-test.cpp | 69 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 testfiles/src/sp-object-test.cpp (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index a745ace29..7d79eb3b8 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -12,7 +12,7 @@ #include #include #include -#include "object-set.h" +#include #include using namespace Inkscape; 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') 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') 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') 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') 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/object-set-test.cpp | 38 ++++++++++++++++++++++++++++---------- testfiles/src/sp-object-test.cpp | 10 ++++------ 2 files changed, 32 insertions(+), 16 deletions(-) (limited to 'testfiles/src') diff --git a/testfiles/src/object-set-test.cpp b/testfiles/src/object-set-test.cpp index 7d79eb3b8..79a49488a 100644 --- a/testfiles/src/object-set-test.cpp +++ b/testfiles/src/object-set-test.cpp @@ -14,8 +14,11 @@ #include #include #include +#include +#include using namespace Inkscape; +using namespace Inkscape::XML; class ObjectSetTest: public DocPerCaseTest { public: @@ -31,6 +34,25 @@ public: X = new SPObject(); set = new ObjectSet(); set2 = new ObjectSet(); + auto sd = new SimpleDocument(); + auto xt = new TextNode(Util::share_string("x"), sd); + auto ht = new TextNode(Util::share_string("h"), sd); + auto gt = new TextNode(Util::share_string("g"), sd); + auto ft = new TextNode(Util::share_string("f"), sd); + 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); + X->invoke_build(_doc, xt, 0); + H->invoke_build(_doc, ht, 0); + G->invoke_build(_doc, gt, 0); + F->invoke_build(_doc, ft, 0); + 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); } ~ObjectSetTest() { delete set; @@ -186,12 +208,10 @@ TEST_F(ObjectSetTest, Ranges) { } TEST_F(ObjectSetTest, Autoremoving) { - SPObject* Q = new SPObject(); - Q->invoke_build(_doc, _doc->rroot, 1); - set->add(Q); - EXPECT_TRUE(set->includes(Q)); + set->add(A); + EXPECT_TRUE(set->includes(A)); EXPECT_EQ(1, set->size()); - Q->releaseReferences(); + A->releaseReferences(); EXPECT_EQ(0, set->size()); } @@ -272,20 +292,18 @@ TEST_F(ObjectSetTest, Removing) { } TEST_F(ObjectSetTest, TwoSets) { - SPObject* Q = new SPObject(); - Q->invoke_build(_doc, _doc->rroot, 1); A->attach(B, nullptr); - A->attach(Q, nullptr); + A->attach(C, nullptr); set->add(A); set2->add(A); EXPECT_EQ(1, set->size()); EXPECT_EQ(1, set2->size()); set->remove(B); EXPECT_EQ(1, set->size()); - EXPECT_TRUE(set->includes(Q)); + EXPECT_TRUE(set->includes(C)); EXPECT_EQ(1, set2->size()); EXPECT_TRUE(set2->includes(A)); - Q->releaseReferences(); + C->releaseReferences(); EXPECT_EQ(0, set->size()); EXPECT_EQ(1, set2->size()); EXPECT_TRUE(set2->includes(A)); 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