diff options
| author | Jon A. Cruz <jon@joncruz.org> | 2006-05-01 08:11:44 +0000 |
|---|---|---|
| committer | joncruz <joncruz@users.sourceforge.net> | 2006-05-01 08:11:44 +0000 |
| commit | 27193e990445befdf0b370db957120e413c4ec9f (patch) | |
| tree | d85de14b9f58e20ad820d522462e0eacc4f59d24 /src/sp-gradient-test.cpp | |
| parent | fix 1479197 (diff) | |
| download | inkscape-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: |
