summaryrefslogtreecommitdiffstats
path: root/src/sp-gradient-test.cpp
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2006-05-01 08:11:44 +0000
committerjoncruz <joncruz@users.sourceforge.net>2006-05-01 08:11:44 +0000
commit27193e990445befdf0b370db957120e413c4ec9f (patch)
treed85de14b9f58e20ad820d522462e0eacc4f59d24 /src/sp-gradient-test.cpp
parentfix 1479197 (diff)
downloadinkscape-27193e990445befdf0b370db957120e413c4ec9f.tar.gz
inkscape-27193e990445befdf0b370db957120e413c4ec9f.zip
Moved four more tests to CxxTest
(bzr r650)
Diffstat (limited to '')
-rw-r--r--src/sp-gradient-test.h (renamed from src/sp-gradient-test.cpp)135
1 files changed, 78 insertions, 57 deletions
diff --git a/src/sp-gradient-test.cpp b/src/sp-gradient-test.h
index 051beb928..7906a3d48 100644
--- a/src/sp-gradient-test.cpp
+++ b/src/sp-gradient-test.h
@@ -1,53 +1,78 @@
-#include "attributes.h"
-#include "inkscape-private.h"
+
+#ifndef SEEN_SP_GRADIENT_TEST_H
+#define SEEN_SP_GRADIENT_TEST_H
+
+#include "document-using-test.h"
+
+
#include "sp-gradient.h"
-#include "sp-object.h"
-#include "document.h"
-#include "libnr/nr-matrix.h"
-#include "libnr/nr-matrix-fns.h"
-#include "libnr/nr-matrix-ops.h"
-#include "libnr/nr-rect.h"
-#include "libnr/nr-rotate-fns.h"
#include "svg/svg.h"
-#include "utest/utest.h"
#include "xml/repr.h"
-/// Dummy functions to keep linker happy
-int sp_main_gui (int, char const**) { return 0; }
-int sp_main_console (int, char const**) { return 0; }
-static bool
-test_gradient()
+class SPGradientTest : public DocumentUsingTest
{
- utest_start("gradient");
- UTEST_TEST("init") {
+public:
+ SPDocument* _doc;
+
+ SPGradientTest() :
+ _doc(0)
+ {
+ }
+
+ virtual ~SPGradientTest()
+ {
+ if ( _doc )
+ {
+ sp_document_unref( _doc );
+ }
+ }
+
+ static void createSuiteSubclass( SPGradientTest *& dst )
+ {
SPGradient *gr = static_cast<SPGradient *>(g_object_new(SP_TYPE_GRADIENT, NULL));
- UTEST_ASSERT(gr->gradientTransform.test_identity());
- UTEST_ASSERT(gr->gradientTransform == NR::identity());
- g_object_unref(gr);
+ if ( gr ) {
+ UTEST_ASSERT(gr->gradientTransform.test_identity());
+ UTEST_ASSERT(gr->gradientTransform == NR::identity());
+ g_object_unref(gr);
+
+ dst = new SPGradientTest();
+ }
}
- /* Create the global inkscape object. */
- static_cast<void>(g_object_new(inkscape_get_type(), NULL));
+ static SPGradientTest *createSuite()
+ {
+ return Inkscape::createSuiteAndDocument<SPGradientTest>( createSuiteSubclass );
+ }
+ static void destroySuite( SPGradientTest *suite ) { delete suite; }
- SPDocument *doc = sp_document_new_dummy();
+// -------------------------------------------------------------------------
+// -------------------------------------------------------------------------
- UTEST_TEST("sp_object_set(\"gradientTransform\")") {
+ void testSetGradientTransform()
+ {
SPGradient *gr = static_cast<SPGradient *>(g_object_new(SP_TYPE_GRADIENT, NULL));
- SP_OBJECT(gr)->document = doc;
+ SP_OBJECT(gr)->document = _doc;
+
sp_object_set(SP_OBJECT(gr), SP_ATTR_GRADIENTTRANSFORM, "translate(5, 8)");
- UTEST_ASSERT(gr->gradientTransform == NR::Matrix(NR::translate(5, 8)));
+ TS_ASSERT_EQUALS( gr->gradientTransform, NR::Matrix(NR::translate(5, 8)) );
+
sp_object_set(SP_OBJECT(gr), SP_ATTR_GRADIENTTRANSFORM, "");
- UTEST_ASSERT(gr->gradientTransform == NR::identity());
+ TS_ASSERT_EQUALS( gr->gradientTransform, NR::identity() );
+
sp_object_set(SP_OBJECT(gr), SP_ATTR_GRADIENTTRANSFORM, "rotate(90)");
- UTEST_ASSERT(gr->gradientTransform == NR::Matrix(rotate_degrees(90)));
+ TS_ASSERT_EQUALS( gr->gradientTransform, NR::Matrix(rotate_degrees(90)) );
+
g_object_unref(gr);
}
- UTEST_TEST("write") {
+
+ void testWrite()
+ {
SPGradient *gr = static_cast<SPGradient *>(g_object_new(SP_TYPE_GRADIENT, NULL));
- SP_OBJECT(gr)->document = doc;
+ SP_OBJECT(gr)->document = _doc;
+
sp_object_set(SP_OBJECT(gr), SP_ATTR_GRADIENTTRANSFORM, "matrix(0, 1, -1, 0, 0, 0)");
Inkscape::XML::Node *repr = sp_repr_new("svg:radialGradient");
SP_OBJECT(gr)->updateRepr(repr, SP_OBJECT_WRITE_ALL);
@@ -55,15 +80,18 @@ test_gradient()
gchar const *tr = repr->attribute("gradientTransform");
NR::Matrix svd;
bool const valid = sp_svg_transform_read(tr, &svd);
- UTEST_ASSERT(valid);
- UTEST_ASSERT(svd == NR::Matrix(rotate_degrees(90)));
+ TS_ASSERT( valid );
+ TS_ASSERT_EQUALS( svd, NR::Matrix(rotate_degrees(90)) );
}
+
g_object_unref(gr);
}
- UTEST_TEST("get_g2d, get_gs2d, set_gs2d") {
+
+ void testGetG2dGetGs2dSetGs2d()
+ {
SPGradient *gr = static_cast<SPGradient *>(g_object_new(SP_TYPE_GRADIENT, NULL));
- SP_OBJECT(gr)->document = doc;
+ SP_OBJECT(gr)->document = _doc;
NR::Matrix const grXform(2, 1,
1, 3,
4, 6);
@@ -72,11 +100,11 @@ test_gradient()
{
NR::Matrix const g2d(sp_gradient_get_g2d_matrix(gr, NR::identity(), unit_rect));
NR::Matrix const gs2d(sp_gradient_get_gs2d_matrix(gr, NR::identity(), unit_rect));
- UTEST_ASSERT(g2d == NR::identity());
- UTEST_ASSERT(NR::matrix_equalp(gs2d, gr->gradientTransform * g2d, 1e-12));
+ TS_ASSERT_EQUALS( g2d, NR::identity() );
+ TS_ASSERT( NR::matrix_equalp(gs2d, gr->gradientTransform * g2d, 1e-12) );
sp_gradient_set_gs2d_matrix(gr, NR::identity(), unit_rect, gs2d);
- UTEST_ASSERT(NR::matrix_equalp(gr->gradientTransform, grXform, 1e-12));
+ TS_ASSERT( NR::matrix_equalp(gr->gradientTransform, grXform, 1e-12) );
}
gr->gradientTransform = grXform;
@@ -86,11 +114,11 @@ test_gradient()
{
NR::Matrix const g2d(sp_gradient_get_g2d_matrix(gr, funny, unit_rect));
NR::Matrix const gs2d(sp_gradient_get_gs2d_matrix(gr, funny, unit_rect));
- UTEST_ASSERT(g2d == funny);
- UTEST_ASSERT(NR::matrix_equalp(gs2d, gr->gradientTransform * g2d, 1e-12));
+ TS_ASSERT_EQUALS( g2d, funny );
+ TS_ASSERT( NR::matrix_equalp(gs2d, gr->gradientTransform * g2d, 1e-12) );
sp_gradient_set_gs2d_matrix(gr, funny, unit_rect, gs2d);
- UTEST_ASSERT(NR::matrix_equalp(gr->gradientTransform, grXform, 1e-12));
+ TS_ASSERT( NR::matrix_equalp(gr->gradientTransform, grXform, 1e-12) );
}
gr->gradientTransform = grXform;
@@ -98,34 +126,27 @@ test_gradient()
{
NR::Matrix const g2d(sp_gradient_get_g2d_matrix(gr, funny, larger_rect));
NR::Matrix const gs2d(sp_gradient_get_gs2d_matrix(gr, funny, larger_rect));
- UTEST_ASSERT(g2d == NR::Matrix(3, 0,
- 0, 4,
- 5, 6) * funny);
- UTEST_ASSERT(NR::matrix_equalp(gs2d, gr->gradientTransform * g2d, 1e-12));
+ TS_ASSERT_EQUALS( g2d, NR::Matrix(3, 0,
+ 0, 4,
+ 5, 6) * funny );
+ TS_ASSERT( NR::matrix_equalp(gs2d, gr->gradientTransform * g2d, 1e-12) );
sp_gradient_set_gs2d_matrix(gr, funny, larger_rect, gs2d);
- UTEST_ASSERT(NR::matrix_equalp(gr->gradientTransform, grXform, 1e-12));
+ TS_ASSERT( NR::matrix_equalp(gr->gradientTransform, grXform, 1e-12) );
sp_object_set(SP_OBJECT(gr), SP_ATTR_GRADIENTUNITS, "userSpaceOnUse");
NR::Matrix const user_g2d(sp_gradient_get_g2d_matrix(gr, funny, larger_rect));
NR::Matrix const user_gs2d(sp_gradient_get_gs2d_matrix(gr, funny, larger_rect));
- UTEST_ASSERT(user_g2d == funny);
- UTEST_ASSERT(NR::matrix_equalp(user_gs2d, gr->gradientTransform * user_g2d, 1e-12));
+ TS_ASSERT_EQUALS( user_g2d, funny );
+ TS_ASSERT( NR::matrix_equalp(user_gs2d, gr->gradientTransform * user_g2d, 1e-12) );
}
g_object_unref(gr);
}
- return utest_end();
-}
+};
-int main()
-{
- g_type_init();
- Inkscape::GC::init();
- return ( test_gradient()
- ? EXIT_SUCCESS
- : EXIT_FAILURE );
-}
+
+#endif // SEEN_SP_GRADIENT_TEST_H
/*
Local Variables: