diff options
| author | MenTaLguY <mental@rydia.net> | 2006-01-16 02:36:01 +0000 |
|---|---|---|
| committer | mental <mental@users.sourceforge.net> | 2006-01-16 02:36:01 +0000 |
| commit | 179fa413b047bede6e32109e2ce82437c5fb8d34 (patch) | |
| tree | a5a6ac2c1708bd02288fbd8edb2ff500ff2e0916 /src/xml/repr-action-test.cpp | |
| download | inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.tar.gz inkscape-179fa413b047bede6e32109e2ce82437c5fb8d34.zip | |
moving trunk for module inkscape
(bzr r1)
Diffstat (limited to 'src/xml/repr-action-test.cpp')
| -rw-r--r-- | src/xml/repr-action-test.cpp | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/src/xml/repr-action-test.cpp b/src/xml/repr-action-test.cpp new file mode 100644 index 000000000..7f5f27f2d --- /dev/null +++ b/src/xml/repr-action-test.cpp @@ -0,0 +1,77 @@ +#include <stdlib.h> +#include <glib.h> +#include "../utest/utest.h" + +#include "repr.h" +#include "event-fns.h" + +int main(int argc, char *argv[]) { + Inkscape::XML::Document *document; + Inkscape::XML::Node *a, *b, *c, *root; + + Inkscape::GC::init(); + + document = sp_repr_document_new("test"); + root = sp_repr_document_root(document); + + utest_start("XML Transactions"); + + a = sp_repr_new("a"); + b = sp_repr_new("b"); + c = sp_repr_new("c"); + + UTEST_TEST("rollback of node addition") { + sp_repr_begin_transaction(document); + UTEST_ASSERT(sp_repr_parent(a) == NULL); + + root->appendChild(a); + UTEST_ASSERT(sp_repr_parent(a) == root); + + sp_repr_rollback(document); + UTEST_ASSERT(sp_repr_parent(a) == NULL); + } + + UTEST_TEST("rollback of node removal") { + root->appendChild(a); + + sp_repr_begin_transaction(document); + UTEST_ASSERT(sp_repr_parent(a) == root); + + sp_repr_unparent(a); + UTEST_ASSERT(sp_repr_parent(a) == NULL); + + sp_repr_rollback(document); + UTEST_ASSERT(sp_repr_parent(a) == root); + } + + sp_repr_unparent(a); + + UTEST_TEST("rollback of node reordering") { + root->appendChild(a); + root->appendChild(b); + root->appendChild(c); + + sp_repr_begin_transaction(document); + UTEST_ASSERT(sp_repr_next(a) == b); + UTEST_ASSERT(sp_repr_next(b) == c); + UTEST_ASSERT(sp_repr_next(c) == NULL); + + root->changeOrder(b, c); + UTEST_ASSERT(sp_repr_next(a) == c); + UTEST_ASSERT(sp_repr_next(b) == NULL); + UTEST_ASSERT(sp_repr_next(c) == b); + + sp_repr_rollback(document); + UTEST_ASSERT(sp_repr_next(a) == b); + UTEST_ASSERT(sp_repr_next(b) == c); + UTEST_ASSERT(sp_repr_next(c) == NULL); + } + + sp_repr_unparent(a); + sp_repr_unparent(b); + sp_repr_unparent(c); + + /* lots more tests needed ... */ + + return utest_end() ? 0 : 1; +} |
