summaryrefslogtreecommitdiffstats
path: root/testfiles/src/sp-object-test.cpp
diff options
context:
space:
mode:
authorAdrian Boguszewski <adrbogus1@student.pg.gda.pl>2016-07-05 11:49:26 +0000
committerAdrian Boguszewski <adrbogus1@student.pg.gda.pl>2016-07-05 11:49:26 +0000
commitaf9a8fb23a525dc0392890762651f315b32544e8 (patch)
tree643b6961ad8f7f8fa2e181e3634efdcf0d6ee7fb /testfiles/src/sp-object-test.cpp
parentAdded tests (diff)
downloadinkscape-af9a8fb23a525dc0392890762651f315b32544e8.tar.gz
inkscape-af9a8fb23a525dc0392890762651f315b32544e8.zip
Added simple test for SPObject
(bzr r14954.1.16)
Diffstat (limited to 'testfiles/src/sp-object-test.cpp')
-rw-r--r--testfiles/src/sp-object-test.cpp69
1 files changed, 69 insertions, 0 deletions
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 <gtest/gtest.h>
+#include <src/sp-object.h>
+#include <src/sp-item.h>
+#include <src/xml/node.h>
+#include <doc-per-case-test.h>
+
+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());
+}