diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2013-12-12 14:51:00 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2013-12-12 18:51:11 +0000 |
commit | 7ec337f26f242db18039c67c5e0b046f818434cc (patch) | |
tree | 812130c82e97a26f803e0d5c733416887c75bc74 /tests | |
parent | 2a660fa298702111c192a7b51e2120799c9393de (diff) | |
download | clutter-7ec337f26f242db18039c67c5e0b046f818434cc.tar.gz |
conformance: Add actor tests
Port the ClutterActor tests to the test API, and ensure they run under
the new TAP harness.
Diffstat (limited to 'tests')
-rw-r--r-- | tests/conform/Makefile.am | 13 | ||||
-rw-r--r-- | tests/conform/actor-anchors.c | 53 | ||||
-rw-r--r-- | tests/conform/actor-destroy.c | 17 | ||||
-rw-r--r-- | tests/conform/actor-graph.c | 119 | ||||
-rw-r--r-- | tests/conform/actor-invariants.c | 206 | ||||
-rw-r--r-- | tests/conform/actor-iter.c | 22 | ||||
-rw-r--r-- | tests/conform/actor-layout.c | 239 | ||||
-rw-r--r-- | tests/conform/actor-meta.c | 15 | ||||
-rw-r--r-- | tests/conform/actor-offscreen-limit-max-size.c | 128 | ||||
-rw-r--r-- | tests/conform/actor-offscreen-redirect.c | 25 | ||||
-rw-r--r-- | tests/conform/actor-paint-opacity.c | 43 | ||||
-rw-r--r-- | tests/conform/actor-pick.c | 40 | ||||
-rw-r--r-- | tests/conform/actor-shader-effect.c | 41 | ||||
-rw-r--r-- | tests/conform/actor-size.c | 13 |
14 files changed, 412 insertions, 562 deletions
diff --git a/tests/conform/Makefile.am b/tests/conform/Makefile.am index d0497d196..996dfd80d 100644 --- a/tests/conform/Makefile.am +++ b/tests/conform/Makefile.am @@ -13,6 +13,19 @@ AM_CPPFLAGS = \ $(CLUTTER_PROFILE_CFLAGS) actor_tests = \ + actor-anchors \ + actor-destroy \ + actor-graph \ + actor-invariants \ + actor-iter \ + actor-layout \ + actor-meta \ + actor-offscreen-limit-max-size \ + actor-offscreen-redirect \ + actor-paint-opacity \ + actor-pick \ + actor-shader-effect \ + actor-size \ $(NULL) general_tests = \ diff --git a/tests/conform/actor-anchors.c b/tests/conform/actor-anchors.c index 42e23ce0a..ee3b6a5e6 100644 --- a/tests/conform/actor-anchors.c +++ b/tests/conform/actor-anchors.c @@ -1,8 +1,8 @@ -#include <clutter/clutter.h> #include <stdlib.h> #include <string.h> -#include "test-conform-common.h" +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS +#include <clutter/clutter.h> #define NOTIFY_ANCHOR_X (1 << 0) #define NOTIFY_ANCHOR_Y (1 << 1) @@ -671,16 +671,16 @@ idle_cb (gpointer data) return G_SOURCE_REMOVE; } -void +static void actor_anchors (void) { TestState state; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); - state.rect = clutter_rectangle_new (); - clutter_container_add (CLUTTER_CONTAINER (stage), state.rect, NULL); + state.rect = clutter_actor_new (); + clutter_actor_add_child (stage, state.rect); clutter_actor_set_position (state.rect, 100, 200); clutter_actor_set_size (state.rect, RECT_WIDTH, RECT_HEIGHT); @@ -696,9 +696,46 @@ actor_anchors (void) clutter_actor_show (stage); clutter_main (); +} + +static void +actor_pivot (void) +{ + ClutterActor *stage, *actor_implicit, *actor_explicit; + ClutterMatrix transform, result_implicit, result_explicit; + ClutterActorBox allocation = CLUTTER_ACTOR_BOX_INIT (0, 0, 90, 30); + gfloat angle = 30; + + stage = clutter_test_get_stage (); + + actor_implicit = clutter_actor_new (); + actor_explicit = clutter_actor_new (); + + clutter_actor_add_child (stage, actor_implicit); + clutter_actor_add_child (stage, actor_explicit); + + /* Fake allocation or pivot-point will not have any effect */ + clutter_actor_allocate (actor_implicit, &allocation, CLUTTER_ALLOCATION_NONE); + clutter_actor_allocate (actor_explicit, &allocation, CLUTTER_ALLOCATION_NONE); + + clutter_actor_set_pivot_point (actor_implicit, 0.5, 0.5); + clutter_actor_set_pivot_point (actor_explicit, 0.5, 0.5); + + /* Implict transformation */ + clutter_actor_set_rotation_angle (actor_implicit, CLUTTER_Z_AXIS, angle); + + /* Explict transformation */ + clutter_matrix_init_identity(&transform); + cogl_matrix_rotate (&transform, angle, 0, 0, 1.0); + clutter_actor_set_transform (actor_explicit, &transform); - g_idle_remove_by_data (&state); + clutter_actor_get_transform (actor_implicit, &result_implicit); + clutter_actor_get_transform (actor_explicit, &result_explicit); - clutter_actor_destroy (stage); + g_assert (cogl_matrix_equal (&result_implicit, &result_explicit)); } +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/transforms/anchor-point", actor_anchors) + CLUTTER_TEST_UNIT ("/actor/transforms/pivot-point", actor_pivot) +) diff --git a/tests/conform/actor-destroy.c b/tests/conform/actor-destroy.c index eed2aa63b..03092a010 100644 --- a/tests/conform/actor-destroy.c +++ b/tests/conform/actor-destroy.c @@ -1,5 +1,5 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include <clutter/clutter.h> -#include "test-conform-common.h" #define TEST_TYPE_DESTROY (test_destroy_get_type ()) #define TEST_DESTROY(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TEST_TYPE_DESTROY, TestDestroy)) @@ -26,6 +26,8 @@ struct _TestDestroyClass static void clutter_container_init (ClutterContainerIface *iface); +GType test_destroy_get_type (void); + G_DEFINE_TYPE_WITH_CODE (TestDestroy, test_destroy, CLUTTER_TYPE_ACTOR, G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER, clutter_container_init)); @@ -160,13 +162,18 @@ on_destroy (ClutterActor *actor, *destroy_called = TRUE; } -void +static void actor_destruction (void) { ClutterActor *test = g_object_new (TEST_TYPE_DESTROY, NULL); ClutterActor *child = clutter_rectangle_new (); gboolean destroy_called = FALSE; + g_object_ref_sink (test); + + g_object_add_weak_pointer (G_OBJECT (test), (gpointer *) &test); + g_object_add_weak_pointer (G_OBJECT (child), (gpointer *) &child); + if (g_test_verbose ()) g_print ("Adding external child...\n"); @@ -179,4 +186,10 @@ actor_destruction (void) clutter_actor_destroy (test); g_assert (destroy_called); + g_assert_null (child); + g_assert_null (test); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/destruction", actor_destruction) +) diff --git a/tests/conform/actor-graph.c b/tests/conform/actor-graph.c index 81b31f4e4..22a28a660 100644 --- a/tests/conform/actor-graph.c +++ b/tests/conform/actor-graph.c @@ -1,9 +1,7 @@ #include <clutter/clutter.h> -#include "test-conform-common.h" -void -actor_add_child (TestConformSimpleFixture *fixture, - gconstpointer dummy) +static void +actor_add_child (void) { ClutterActor *actor = clutter_actor_new (); ClutterActor *iter; @@ -49,9 +47,8 @@ actor_add_child (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_insert_child (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_insert_child (void) { ClutterActor *actor = clutter_actor_new (); ClutterActor *iter; @@ -137,9 +134,8 @@ actor_insert_child (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_remove_child (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_remove_child (void) { ClutterActor *actor = clutter_actor_new (); ClutterActor *iter; @@ -182,9 +178,8 @@ actor_remove_child (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_raise_child (TestConformSimpleFixture *fixture, - gconstpointer dummy) +static void +actor_raise_child (void) { ClutterActor *actor = clutter_actor_new (); ClutterActor *iter; @@ -249,9 +244,8 @@ actor_raise_child (TestConformSimpleFixture *fixture, g_assert (iter == NULL); } -void -actor_lower_child (TestConformSimpleFixture *fixture, - gconstpointer dummy) +static void +actor_lower_child (void) { ClutterActor *actor = clutter_actor_new (); ClutterActor *iter; @@ -314,9 +308,8 @@ actor_lower_child (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_replace_child (TestConformSimpleFixture *fixture, - gconstpointer dummy) +static void +actor_replace_child (void) { ClutterActor *actor = clutter_actor_new (); ClutterActor *iter; @@ -375,9 +368,8 @@ actor_replace_child (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_remove_all (TestConformSimpleFixture *fixture, - gconstpointer dummy) +static void +actor_remove_all (void) { ClutterActor *actor = clutter_actor_new (); @@ -436,9 +428,8 @@ actor_removed (ClutterContainer *container, *counter += 1; } -void -actor_container_signals (TestConformSimpleFixture *fixture G_GNUC_UNUSED, - gconstpointer data G_GNUC_UNUSED) +static void +actor_container_signals (void) { ClutterActor *actor = clutter_actor_new (); int add_count, remove_count; @@ -478,3 +469,81 @@ actor_container_signals (TestConformSimpleFixture *fixture G_GNUC_UNUSED, clutter_actor_destroy (actor); g_assert (actor == NULL); } + +static void +actor_contains (void) +{ + /* This build up the following tree: + * + * a + * ╱ │ ╲ + * ╱ │ ╲ + * b c d + * ╱ ╲ ╱ ╲ ╱ ╲ + * e f g h i j + */ + struct { + ClutterActor *actor_a, *actor_b, *actor_c, *actor_d, *actor_e; + ClutterActor *actor_f, *actor_g, *actor_h, *actor_i, *actor_j; + } d; + int x, y; + ClutterActor **actor_array = &d.actor_a; + + /* Matrix of expected results */ + static const gboolean expected_results[] = + { /* a, b, c, d, e, f, g, h, i, j */ + /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + /* b */ 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, + /* c */ 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, + /* d */ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, + /* e */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, + /* f */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, + /* g */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, + /* h */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, + /* i */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, + /* j */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 + }; + + d.actor_a = clutter_actor_new (); + d.actor_b = clutter_actor_new (); + d.actor_c = clutter_actor_new (); + d.actor_d = clutter_actor_new (); + d.actor_e = clutter_actor_new (); + d.actor_f = clutter_actor_new (); + d.actor_g = clutter_actor_new (); + d.actor_h = clutter_actor_new (); + d.actor_i = clutter_actor_new (); + d.actor_j = clutter_actor_new (); + + clutter_actor_add_child (d.actor_a, d.actor_b); + clutter_actor_add_child (d.actor_a, d.actor_c); + clutter_actor_add_child (d.actor_a, d.actor_d); + + clutter_actor_add_child (d.actor_b, d.actor_e); + clutter_actor_add_child (d.actor_b, d.actor_f); + + clutter_actor_add_child (d.actor_c, d.actor_g); + clutter_actor_add_child (d.actor_c, d.actor_h); + + clutter_actor_add_child (d.actor_d, d.actor_i); + clutter_actor_add_child (d.actor_d, d.actor_j); + + for (y = 0; y < 10; y++) + for (x = 0; x < 10; x++) + g_assert_cmpint (clutter_actor_contains (actor_array[x], + actor_array[y]), + ==, + expected_results[x * 10 + y]); +} + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/graph/add-child", actor_add_child) + CLUTTER_TEST_UNIT ("/actor/graph/insert-child", actor_insert_child) + CLUTTER_TEST_UNIT ("/actor/graph/remove-child", actor_remove_child) + CLUTTER_TEST_UNIT ("/actor/graph/raise-child", actor_raise_child) + CLUTTER_TEST_UNIT ("/actor/graph/lower-child", actor_lower_child) + CLUTTER_TEST_UNIT ("/actor/graph/replace-child", actor_replace_child) + CLUTTER_TEST_UNIT ("/actor/graph/remove-all", actor_remove_all) + CLUTTER_TEST_UNIT ("/actor/graph/container-signals", actor_container_signals) + CLUTTER_TEST_UNIT ("/actor/graph/contains", actor_contains) +) diff --git a/tests/conform/actor-invariants.c b/tests/conform/actor-invariants.c index eb6223991..cdab5d5c6 100644 --- a/tests/conform/actor-invariants.c +++ b/tests/conform/actor-invariants.c @@ -3,11 +3,8 @@ #include <clutter/clutter.h> -#include "test-conform-common.h" - -void -actor_initial_state (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_initial_state (void) { ClutterActor *actor; @@ -29,13 +26,12 @@ actor_initial_state (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_shown_not_parented (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_shown_not_parented (void) { ClutterActor *actor; - actor = clutter_rectangle_new (); + actor = clutter_actor_new (); g_object_ref_sink (actor); g_object_add_weak_pointer (G_OBJECT (actor), (gpointer *) &actor); @@ -55,14 +51,13 @@ actor_shown_not_parented (TestConformSimpleFixture *fixture, g_assert (actor == NULL); } -void -actor_realized (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_realized (void) { ClutterActor *actor; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); actor = clutter_actor_new (); @@ -76,18 +71,15 @@ actor_realized (TestConformSimpleFixture *fixture, g_assert (!(CLUTTER_ACTOR_IS_MAPPED (actor))); g_assert (!(CLUTTER_ACTOR_IS_VISIBLE (actor))); - - clutter_actor_destroy (stage); } -void -actor_mapped (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_mapped (void) { ClutterActor *actor; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); clutter_actor_show (stage); actor = clutter_actor_new (); @@ -120,18 +112,16 @@ actor_mapped (TestConformSimpleFixture *fixture, g_assert (CLUTTER_ACTOR_IS_REALIZED (actor)); g_assert (!CLUTTER_ACTOR_IS_MAPPED (actor)); g_assert (!CLUTTER_ACTOR_IS_VISIBLE (actor)); - - clutter_actor_destroy (stage); } -void -actor_visibility_not_recursive (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_visibility_not_recursive (void) { ClutterActor *actor, *group; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); + group = clutter_actor_new (); actor = clutter_actor_new (); @@ -162,18 +152,15 @@ actor_visibility_not_recursive (TestConformSimpleFixture *fixture, clutter_actor_show (stage); g_assert (!CLUTTER_ACTOR_IS_VISIBLE (actor)); - - clutter_actor_destroy (stage); } -void -actor_realize_not_recursive (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_realize_not_recursive (void) { ClutterActor *actor, *group; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); clutter_actor_show (stage); group = clutter_actor_new (); @@ -200,18 +187,15 @@ actor_realize_not_recursive (TestConformSimpleFixture *fixture, g_assert (!CLUTTER_ACTOR_IS_REALIZED (actor)); g_assert (!(CLUTTER_ACTOR_IS_MAPPED (actor))); g_assert (!(CLUTTER_ACTOR_IS_VISIBLE (actor))); - - clutter_actor_destroy (stage); } -void -actor_map_recursive (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_map_recursive (void) { ClutterActor *actor, *group; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); clutter_actor_show (stage); group = clutter_actor_new (); @@ -248,19 +232,16 @@ actor_map_recursive (TestConformSimpleFixture *fixture, g_assert (CLUTTER_ACTOR_IS_MAPPED (actor)); g_assert (CLUTTER_ACTOR_IS_VISIBLE (group)); g_assert (CLUTTER_ACTOR_IS_VISIBLE (actor)); - - clutter_actor_destroy (stage); } -void -actor_show_on_set_parent (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_show_on_set_parent (void) { ClutterActor *actor, *group; gboolean show_on_set_parent; ClutterActor *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); group = clutter_actor_new (); @@ -321,20 +302,17 @@ actor_show_on_set_parent (TestConformSimpleFixture *fixture, g_assert (!show_on_set_parent); clutter_actor_destroy (actor); - - clutter_actor_destroy (stage); } -void -clone_no_map (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +clone_no_map (void) { ClutterActor *stage; ClutterActor *group; ClutterActor *actor; ClutterActor *clone; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); clutter_actor_show (stage); group = clutter_actor_new (); @@ -358,83 +336,15 @@ clone_no_map (TestConformSimpleFixture *fixture, clutter_actor_destroy (CLUTTER_ACTOR (clone)); clutter_actor_destroy (CLUTTER_ACTOR (group)); - clutter_actor_destroy (stage); -} - -void -actor_contains (TestConformSimpleFixture *fixture, - gconstpointer data) -{ - /* This build up the following tree: - * - * a - * ╱ │ ╲ - * ╱ │ ╲ - * b c d - * ╱ ╲ ╱ ╲ ╱ ╲ - * e f g h i j - */ - struct { - ClutterActor *actor_a, *actor_b, *actor_c, *actor_d, *actor_e; - ClutterActor *actor_f, *actor_g, *actor_h, *actor_i, *actor_j; - } d; - int x, y; - ClutterActor **actor_array = &d.actor_a; - - /* Matrix of expected results */ - static const gboolean expected_results[] = - { /* a, b, c, d, e, f, g, h, i, j */ - /* a */ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - /* b */ 0, 1, 0, 0, 1, 1, 0, 0, 0, 0, - /* c */ 0, 0, 1, 0, 0, 0, 1, 1, 0, 0, - /* d */ 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, - /* e */ 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, - /* f */ 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, - /* g */ 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, - /* h */ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, - /* i */ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, - /* j */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 - }; - - d.actor_a = clutter_actor_new (); - d.actor_b = clutter_actor_new (); - d.actor_c = clutter_actor_new (); - d.actor_d = clutter_actor_new (); - d.actor_e = clutter_actor_new (); - d.actor_f = clutter_actor_new (); - d.actor_g = clutter_actor_new (); - d.actor_h = clutter_actor_new (); - d.actor_i = clutter_actor_new (); - d.actor_j = clutter_actor_new (); - - clutter_actor_add_child (d.actor_a, d.actor_b); - clutter_actor_add_child (d.actor_a, d.actor_c); - clutter_actor_add_child (d.actor_a, d.actor_d); - - clutter_actor_add_child (d.actor_b, d.actor_e); - clutter_actor_add_child (d.actor_b, d.actor_f); - - clutter_actor_add_child (d.actor_c, d.actor_g); - clutter_actor_add_child (d.actor_c, d.actor_h); - - clutter_actor_add_child (d.actor_d, d.actor_i); - clutter_actor_add_child (d.actor_d, d.actor_j); - - for (y = 0; y < 10; y++) - for (x = 0; x < 10; x++) - g_assert_cmpint (clutter_actor_contains (actor_array[x], - actor_array[y]), - ==, - expected_results[x * 10 + y]); } -void -default_stage (TestConformSimpleFixture *fixture, - gconstpointer data) +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +static void +default_stage (void) { ClutterActor *stage, *def_stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); def_stage = clutter_stage_get_default (); if (clutter_feature_available (CLUTTER_FEATURE_STAGE_MULTIPLE)) @@ -444,43 +354,17 @@ default_stage (TestConformSimpleFixture *fixture, g_assert (CLUTTER_ACTOR_IS_REALIZED (def_stage)); } - -void -actor_pivot_transformation (TestConformSimpleFixture *fixture, - gconstpointer data) -{ - ClutterActor *stage, *actor_implicit, *actor_explicit; - ClutterMatrix transform, result_implicit, result_explicit; - ClutterActorBox allocation = CLUTTER_ACTOR_BOX_INIT (0, 0, 90, 30); - gfloat angle = 30; - - stage = clutter_stage_new (); - - actor_implicit = clutter_actor_new (); - actor_explicit = clutter_actor_new (); - - clutter_actor_add_child (stage, actor_implicit); - clutter_actor_add_child (stage, actor_explicit); - - /* Fake allocation or pivot-point will not have any effect */ - clutter_actor_allocate (actor_implicit, &allocation, CLUTTER_ALLOCATION_NONE); - clutter_actor_allocate (actor_explicit, &allocation, CLUTTER_ALLOCATION_NONE); - - clutter_actor_set_pivot_point (actor_implicit, 0.5, 0.5); - clutter_actor_set_pivot_point (actor_explicit, 0.5, 0.5); - - /* Implict transformation */ - clutter_actor_set_rotation_angle (actor_implicit, CLUTTER_Z_AXIS, angle); - - /* Explict transformation */ - clutter_matrix_init_identity(&transform); - cogl_matrix_rotate (&transform, angle, 0, 0, 1.0); - clutter_actor_set_transform (actor_explicit, &transform); - - clutter_actor_get_transform (actor_implicit, &result_implicit); - clutter_actor_get_transform (actor_explicit, &result_explicit); - - clutter_actor_destroy (stage); - - g_assert (cogl_matrix_equal (&result_implicit, &result_explicit)); -} +G_GNUC_END_IGNORE_DEPRECATIONS + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/invariants/initial-state", actor_initial_state) + CLUTTER_TEST_UNIT ("/actor/invariants/show-not-parented", actor_shown_not_parented) + CLUTTER_TEST_UNIT ("/actor/invariants/realized", actor_realized) + CLUTTER_TEST_UNIT ("/actor/invariants/mapped", actor_mapped) + CLUTTER_TEST_UNIT ("/actor/invariants/visibility-not-recursive", actor_visibility_not_recursive) + CLUTTER_TEST_UNIT ("/actor/invariants/realize-not-recursive", actor_realize_not_recursive) + CLUTTER_TEST_UNIT ("/actor/invariants/map-recursive", actor_map_recursive) + CLUTTER_TEST_UNIT ("/actor/invariants/show-on-set-parent", actor_show_on_set_parent) + CLUTTER_TEST_UNIT ("/actor/invariants/clone-no-map", clone_no_map) + CLUTTER_TEST_UNIT ("/actor/invariants/default-stage", default_stage) +) diff --git a/tests/conform/actor-iter.c b/tests/conform/actor-iter.c index 4c550797b..193f63b27 100644 --- a/tests/conform/actor-iter.c +++ b/tests/conform/actor-iter.c @@ -1,10 +1,8 @@ #include <glib.h> #include <clutter/clutter.h> -#include "test-conform-common.h" -void -actor_iter_traverse_children (TestConformSimpleFixture *fixture G_GNUC_UNUSED, - gconstpointer dummy G_GNUC_UNUSED) +static void +actor_iter_traverse_children (void) { ClutterActorIter iter; ClutterActor *actor; @@ -78,9 +76,8 @@ actor_iter_traverse_children (TestConformSimpleFixture *fixture G_GNUC_UNUSED, g_object_unref (actor); } -void -actor_iter_traverse_remove (TestConformSimpleFixture *fixture G_GNUC_UNUSED, - gconstpointer dummy G_GNUC_UNUSED) +static void +actor_iter_traverse_remove (void) { ClutterActorIter iter; ClutterActor *actor; @@ -135,9 +132,8 @@ actor_iter_traverse_remove (TestConformSimpleFixture *fixture G_GNUC_UNUSED, g_assert_cmpint (0, ==, clutter_actor_get_n_children (actor)); } -void -actor_iter_assignment (TestConformSimpleFixture *fixure G_GNUC_UNUSED, - gconstpointer dummy G_GNUC_UNUSED) +static void +actor_iter_assignment (void) { ClutterActorIter iter_a, iter_b; ClutterActor *actor; @@ -214,3 +210,9 @@ actor_iter_assignment (TestConformSimpleFixture *fixure G_GNUC_UNUSED, g_object_unref (actor); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/iter/traverse-children", actor_iter_traverse_children) + CLUTTER_TEST_UNIT ("/actor/iter/traverse-remove", actor_iter_traverse_remove) + CLUTTER_TEST_UNIT ("/actor/iter/assignment", actor_iter_assignment) +) diff --git a/tests/conform/actor-layout.c b/tests/conform/actor-layout.c index cb7f31572..2cc89400c 100644 --- a/tests/conform/actor-layout.c +++ b/tests/conform/actor-layout.c @@ -1,199 +1,15 @@ -#include <math.h> #include <clutter/clutter.h> -#include "test-conform-common.h" - -typedef struct _TestState TestState; - -struct _TestState -{ - GPtrArray *actors; - GPtrArray *colors; - - ClutterActor *stage; - - gulong id; - - gint in_validation; - - guint was_painted : 1; -}; - -static TestState * -test_state_new (void) -{ - return g_slice_new0 (TestState); -} - -static void -test_state_free (TestState *state) -{ - if (state->id != 0) - g_source_remove (state->id); - - if (state->actors != NULL) - g_ptr_array_unref (state->actors); - - if (state->colors != NULL) - g_ptr_array_unref (state->colors); - - if (state->stage != NULL) - clutter_actor_destroy (state->stage); - - g_slice_free (TestState, state); -} - -static void -test_state_set_stage (TestState *state, - ClutterActor *stage) -{ - g_assert (!state->was_painted); - - state->stage = stage; -} static void -test_state_add_actor (TestState *state, - ClutterActor *actor, - const ClutterColor *color) -{ - g_assert (!state->was_painted); - - if (state->actors == NULL) - { - state->actors = g_ptr_array_new (); - g_ptr_array_set_free_func (state->actors, - (GDestroyNotify) g_object_unref); - } - - g_ptr_array_add (state->actors, g_object_ref (actor)); - - if (state->colors == NULL) - { - state->colors = g_ptr_array_new (); - g_ptr_array_set_free_func (state->colors, - (GDestroyNotify) clutter_color_free); - } - - g_ptr_array_add (state->colors, clutter_color_copy (color)); -} - -static void -test_state_push_validation (TestState *state) -{ - state->in_validation += 1; -} - -static void -test_state_pop_validation (TestState *state) -{ - state->in_validation -= 1; -} - -static gboolean -test_state_in_validation (TestState *state) +actor_basic_layout (void) { - return state->in_validation > 0; -} - -static gboolean -check_color_at (ClutterActor *stage, - ClutterActor *actor, - ClutterColor *expected_color, - float x, - float y) -{ - guchar *buffer; - - if (g_test_verbose ()) - g_print ("Checking actor '%s'\n", clutter_actor_get_name (actor)); - - if (g_test_verbose ()) - g_print ("Sampling at { %d, %d }\t", (int) x, (int) y); - - buffer = clutter_stage_read_pixels (CLUTTER_STAGE (stage), x, y, 1, 1); - g_assert (buffer != NULL); - - if (g_test_verbose ()) - g_print ("Color: { %d, %d, %d } - Expected color { %d, %d, %d }\n", - buffer[0], - buffer[1], - buffer[2], - expected_color->red, - expected_color->green, - expected_color->blue); - - g_assert_cmpint (buffer[0], ==, expected_color->red); - g_assert_cmpint (buffer[1], ==, expected_color->green); - g_assert_cmpint (buffer[2], ==, expected_color->blue); - - g_free (buffer); - - return TRUE; -} - -static gboolean -validate_state (gpointer data) -{ - TestState *state = data; - int i; - - /* avoid recursion */ - if (test_state_in_validation (state)) - return G_SOURCE_REMOVE; - - g_assert (state->actors != NULL); - g_assert (state->colors != NULL); - - g_assert_cmpint (state->actors->len, ==, state->colors->len); - - test_state_push_validation (state); - - if (g_test_verbose ()) - g_print ("Sampling %d actors\n", state->actors->len); - - for (i = 0; i < state->actors->len; i++) - { - ClutterActor *actor = g_ptr_array_index (state->actors, i); - ClutterColor *color = g_ptr_array_index (state->colors, i); - ClutterActorBox box; - - clutter_actor_get_allocation_box (actor, &box); - - check_color_at (state->stage, actor, color, box.x1 + 2, box.y1 + 2); - check_color_at (state->stage, actor, color, box.x2 - 2, box.y2 - 2); - } - - test_state_pop_validation (state); - - state->was_painted = TRUE; - - return G_SOURCE_REMOVE; -} - -static gboolean -test_state_run (TestState *state) -{ - clutter_threads_add_repaint_func_full (CLUTTER_REPAINT_FLAGS_POST_PAINT, - validate_state, - state, - NULL); - - while (!state->was_painted) - g_main_context_iteration (NULL, FALSE); - - return TRUE; -} - -void -actor_basic_layout (TestConformSimpleFixture *fixture, - gconstpointer data) -{ - ClutterActor *stage = clutter_stage_new (); + ClutterActor *stage = clutter_test_get_stage (); ClutterActor *vase; ClutterActor *flower[3]; - TestState *state; + ClutterPoint p; vase = clutter_actor_new (); + clutter_actor_set_name (vase, "Vase"); clutter_actor_set_layout_manager (vase, clutter_flow_layout_new (CLUTTER_FLOW_HORIZONTAL)); clutter_actor_add_child (stage, vase); @@ -215,30 +31,27 @@ actor_basic_layout (TestConformSimpleFixture *fixture, clutter_actor_set_name (flower[2], "Green Flower"); clutter_actor_add_child (vase, flower[2]); - clutter_actor_show_all (stage); - - state = test_state_new (); - test_state_set_stage (state, stage); - test_state_add_actor (state, flower[0], CLUTTER_COLOR_Red); - test_state_add_actor (state, flower[1], CLUTTER_COLOR_Yellow); - test_state_add_actor (state, flower[2], CLUTTER_COLOR_Green); + clutter_point_init (&p, 50, 50); + clutter_test_assert_actor_at_point (stage, &p, flower[0]); - g_assert (test_state_run (state)); + clutter_point_init (&p, 150, 50); + clutter_test_assert_actor_at_point (stage, &p, flower[1]); - test_state_free (state); + clutter_point_init (&p, 250, 50); + clutter_test_assert_actor_at_point (stage, &p, flower[2]); } -void -actor_margin_layout (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_margin_layout (void) { - ClutterActor *stage = clutter_stage_new (); + ClutterActor *stage = clutter_test_get_stage (); ClutterActor *vase; ClutterActor *flower[3]; - TestState *state; + ClutterPoint p; vase = clutter_actor_new (); - clutter_actor_set_layout_manager (vase, clutter_flow_layout_new (CLUTTER_FLOW_HORIZONTAL)); + clutter_actor_set_name (vase, "Vase"); + clutter_actor_set_layout_manager (vase, clutter_box_layout_new ()); clutter_actor_add_child (stage, vase); flower[0] = clutter_actor_new (); @@ -263,15 +76,17 @@ actor_margin_layout (TestConformSimpleFixture *fixture, clutter_actor_set_margin_bottom (flower[2], 6); clutter_actor_add_child (vase, flower[2]); - clutter_actor_show_all (stage); + clutter_point_init (&p, 0, 7); + clutter_test_assert_actor_at_point (stage, &p, flower[0]); - state = test_state_new (); - test_state_set_stage (state, stage); - test_state_add_actor (state, flower[0], CLUTTER_COLOR_Red); - test_state_add_actor (state, flower[1], CLUTTER_COLOR_Yellow); - test_state_add_actor (state, flower[2], CLUTTER_COLOR_Green); + clutter_point_init (&p, 106, 50); + clutter_test_assert_actor_at_point (stage, &p, flower[1]); - g_assert (test_state_run (state)); - - test_state_free (state); + clutter_point_init (&p, 212, 7); + clutter_test_assert_actor_at_point (stage, &p, flower[2]); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/layout/basic", actor_basic_layout) + CLUTTER_TEST_UNIT ("/actor/layout/margin", actor_margin_layout) +) diff --git a/tests/conform/actor-meta.c b/tests/conform/actor-meta.c index 5cae53a27..52a313d22 100644 --- a/tests/conform/actor-meta.c +++ b/tests/conform/actor-meta.c @@ -3,15 +3,12 @@ #include <clutter/clutter.h> -#include "test-conform-common.h" - -void -actor_meta_clear (TestConformSimpleFixture *fixture G_GNUC_UNUSED, - gconstpointer data G_GNUC_UNUSED) +static void +actor_meta_clear (void) { ClutterActor *actor, *stage; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); actor = clutter_actor_new (); g_object_ref_sink (actor); @@ -36,6 +33,8 @@ actor_meta_clear (TestConformSimpleFixture *fixture G_GNUC_UNUSED, clutter_actor_destroy (actor); g_assert (actor == NULL); - - clutter_actor_destroy (stage); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/meta/clear", actor_meta_clear) +) diff --git a/tests/conform/actor-offscreen-limit-max-size.c b/tests/conform/actor-offscreen-limit-max-size.c index 972986604..1d17789fe 100644 --- a/tests/conform/actor-offscreen-limit-max-size.c +++ b/tests/conform/actor-offscreen-limit-max-size.c @@ -1,7 +1,6 @@ +#define CLUTTER_ENABLE_EXPERIMENTAL_API #include <clutter/clutter.h> -#include "test-conform-common.h" - #define STAGE_WIDTH (300) #define STAGE_HEIGHT (300) @@ -21,18 +20,27 @@ check_results (ClutterStage *stage, gpointer user_data) { Data *data = user_data; gfloat width, height; + ClutterRect rect; + + clutter_offscreen_effect_get_target_rect (CLUTTER_OFFSCREEN_EFFECT (data->blur_effect1), + &rect); - clutter_offscreen_effect_get_target_size (CLUTTER_OFFSCREEN_EFFECT (data->blur_effect1), - &width, &height); + width = clutter_rect_get_width (&rect); + height = clutter_rect_get_height (&rect); if (g_test_verbose ()) - g_print ("Checking effect1 size: %.2f x %.2f\n", width, height); + g_print ("Checking effect1 size: %.2f x %.2f\n", + clutter_rect_get_width (&rect), + clutter_rect_get_height (&rect)); g_assert_cmpint (width, <, STAGE_WIDTH); g_assert_cmpint (height, <, STAGE_HEIGHT); - clutter_offscreen_effect_get_target_size (CLUTTER_OFFSCREEN_EFFECT (data->blur_effect2), - &width, &height); + clutter_offscreen_effect_get_target_rect (CLUTTER_OFFSCREEN_EFFECT (data->blur_effect2), + &rect); + + width = clutter_rect_get_width (&rect); + height = clutter_rect_get_height (&rect); if (g_test_verbose ()) g_print ("Checking effect2 size: %.2f x %.2f\n", width, height); @@ -58,60 +66,56 @@ create_actor (gfloat x, gfloat y, NULL); } -void -actor_offscreen_limit_max_size (TestConformSimpleFixture *fixture, - gconstpointer test_data) +static void +actor_offscreen_limit_max_size (void) { - if (cogl_features_available (COGL_FEATURE_OFFSCREEN)) - { - Data data; - - data.stage = clutter_stage_new (); - clutter_stage_set_paint_callback (CLUTTER_STAGE (data.stage), - check_results, - &data, - NULL); - clutter_actor_set_size (data.stage, STAGE_WIDTH, STAGE_HEIGHT); - - data.actor_group1 = clutter_actor_new (); - clutter_actor_add_child (data.stage, data.actor_group1); - data.blur_effect1 = clutter_blur_effect_new (); - clutter_actor_add_effect (data.actor_group1, data.blur_effect1); - clutter_actor_add_child (data.actor_group1, - create_actor (10, 10, - 100, 100, - CLUTTER_COLOR_Blue)); - clutter_actor_add_child (data.actor_group1, - create_actor (100, 100, - 100, 100, - CLUTTER_COLOR_Gray)); - - data.actor_group2 = clutter_actor_new (); - clutter_actor_add_child (data.stage, data.actor_group2); - data.blur_effect2 = clutter_blur_effect_new (); - clutter_actor_add_effect (data.actor_group2, data.blur_effect2); - clutter_actor_add_child (data.actor_group2, - create_actor (-10, -10, - 100, 100, - CLUTTER_COLOR_Yellow)); - clutter_actor_add_child (data.actor_group2, - create_actor (250, 10, - 100, 100, - CLUTTER_COLOR_ScarletRed)); - clutter_actor_add_child (data.actor_group2, - create_actor (10, 250, - 100, 100, - CLUTTER_COLOR_Yellow)); - - clutter_actor_show (data.stage); - - clutter_main (); - - clutter_actor_destroy (data.stage); - - if (g_test_verbose ()) - g_print ("OK\n"); - } - else if (g_test_verbose ()) - g_print ("Skipping\n"); + Data data; + + if (!cogl_features_available (COGL_FEATURE_OFFSCREEN)) + return; + + data.stage = clutter_test_get_stage (); + clutter_stage_set_paint_callback (CLUTTER_STAGE (data.stage), + check_results, + &data, + NULL); + clutter_actor_set_size (data.stage, STAGE_WIDTH, STAGE_HEIGHT); + + data.actor_group1 = clutter_actor_new (); + clutter_actor_add_child (data.stage, data.actor_group1); + data.blur_effect1 = clutter_blur_effect_new (); + clutter_actor_add_effect (data.actor_group1, data.blur_effect1); + clutter_actor_add_child (data.actor_group1, + create_actor (10, 10, + 100, 100, + CLUTTER_COLOR_Blue)); + clutter_actor_add_child (data.actor_group1, + create_actor (100, 100, + 100, 100, + CLUTTER_COLOR_Gray)); + + data.actor_group2 = clutter_actor_new (); + clutter_actor_add_child (data.stage, data.actor_group2); + data.blur_effect2 = clutter_blur_effect_new (); + clutter_actor_add_effect (data.actor_group2, data.blur_effect2); + clutter_actor_add_child (data.actor_group2, + create_actor (-10, -10, + 100, 100, + CLUTTER_COLOR_Yellow)); + clutter_actor_add_child (data.actor_group2, + create_actor (250, 10, + 100, 100, + CLUTTER_COLOR_ScarletRed)); + clutter_actor_add_child (data.actor_group2, + create_actor (10, 250, + 100, 100, + CLUTTER_COLOR_Yellow)); + + clutter_actor_show (data.stage); + + clutter_main (); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/offscreen/limit-max-size", actor_offscreen_limit_max_size) +) diff --git a/tests/conform/actor-offscreen-redirect.c b/tests/conform/actor-offscreen-redirect.c index dab85193b..f47af3617 100644 --- a/tests/conform/actor-offscreen-redirect.c +++ b/tests/conform/actor-offscreen-redirect.c @@ -1,7 +1,6 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include <clutter/clutter.h> -#include "test-conform-common.h" - typedef struct _FooActor FooActor; typedef struct _FooActorClass FooActorClass; @@ -98,6 +97,8 @@ struct _FooGroup ClutterActor parent; }; +GType foo_group_get_type (void); + G_DEFINE_TYPE (FooGroup, foo_group, CLUTTER_TYPE_ACTOR) static gboolean @@ -294,21 +295,15 @@ run_verify (gpointer user_data) return G_SOURCE_REMOVE; } -void -actor_offscreen_redirect (TestConformSimpleFixture *fixture, - gconstpointer test_data) +static void +actor_offscreen_redirect (void) { Data data; if (!cogl_features_available (COGL_FEATURE_OFFSCREEN)) - { - if (g_test_verbose ()) - g_print ("Offscreen buffers are not available, skipping test.\n"); + return; - return; - } - - data.stage = clutter_stage_new (); + data.stage = clutter_test_get_stage (); data.parent_container = clutter_actor_new (); data.container = g_object_new (foo_group_get_type (), NULL); data.foo_actor = g_object_new (foo_actor_get_type (), NULL); @@ -335,6 +330,8 @@ actor_offscreen_redirect (TestConformSimpleFixture *fixture, while (!data.was_painted) g_main_context_iteration (NULL, FALSE); - - clutter_actor_destroy (data.stage); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/offscreen/redirect", actor_offscreen_redirect) +) diff --git a/tests/conform/actor-paint-opacity.c b/tests/conform/actor-paint-opacity.c index 0ea219a63..6df240872 100644 --- a/tests/conform/actor-paint-opacity.c +++ b/tests/conform/actor-paint-opacity.c @@ -1,18 +1,15 @@ #include <clutter/clutter.h> #include <stdlib.h> -#include "test-conform-common.h" - -void -opacity_label (TestConformSimpleFixture *fixture, - gpointer dummy) +static void +opacity_label (void) { ClutterActor *stage; ClutterActor *label; ClutterColor label_color = { 255, 0, 0, 128 }; ClutterColor color_check = { 0, }; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); label = clutter_text_new_with_text ("Sans 18px", "Label, 50% opacity"); clutter_text_set_color (CLUTTER_TEXT (label), &label_color); @@ -22,7 +19,7 @@ opacity_label (TestConformSimpleFixture *fixture, clutter_text_get_color (CLUTTER_TEXT (label), &color_check); g_assert (color_check.alpha == label_color.alpha); - clutter_container_add (CLUTTER_CONTAINER (stage), label, NULL); + clutter_actor_add_child (stage, label); clutter_actor_set_position (label, 10, 10); if (g_test_verbose ()) @@ -38,20 +35,18 @@ opacity_label (TestConformSimpleFixture *fixture, g_print ("label 50%%.get_paint_opacity()/2\n"); clutter_actor_set_opacity (label, 128); g_assert (clutter_actor_get_paint_opacity (label) == 128); - - clutter_actor_destroy (stage); } -void -opacity_rectangle (TestConformSimpleFixture *fixture, - gpointer dummy) +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +static void +opacity_rectangle (void) { ClutterActor *stage; ClutterActor *rect; ClutterColor rect_color = { 0, 0, 255, 255 }; ClutterColor color_check = { 0, }; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); rect = clutter_rectangle_new_with_color (&rect_color); clutter_actor_set_size (rect, 128, 128); @@ -62,7 +57,7 @@ opacity_rectangle (TestConformSimpleFixture *fixture, clutter_rectangle_get_color (CLUTTER_RECTANGLE (rect), &color_check); g_assert (color_check.alpha == rect_color.alpha); - clutter_container_add (CLUTTER_CONTAINER (stage), rect, NULL); + clutter_actor_add_child (stage, rect); if (g_test_verbose ()) g_print ("rect 100%%.get_color()/2\n"); @@ -72,13 +67,12 @@ opacity_rectangle (TestConformSimpleFixture *fixture, if (g_test_verbose ()) g_print ("rect 100%%.get_paint_opacity()\n"); g_assert (clutter_actor_get_paint_opacity (rect) == 255); - - clutter_actor_destroy (stage); } +G_GNUC_END_IGNORE_DEPRECATIONS -void -opacity_paint (TestConformSimpleFixture *fixture, - gpointer dummy) +G_GNUC_BEGIN_IGNORE_DEPRECATIONS +static void +opacity_paint (void) { ClutterActor *stage, *group1, *group2; ClutterActor *label, *rect; @@ -86,7 +80,7 @@ opacity_paint (TestConformSimpleFixture *fixture, ClutterColor rect_color = { 0, 0, 255, 255 }; ClutterColor color_check = { 0, }; - stage = clutter_stage_new (); + stage = clutter_test_get_stage (); group1 = clutter_group_new (); clutter_actor_set_opacity (group1, 128); @@ -137,6 +131,11 @@ opacity_paint (TestConformSimpleFixture *fixture, if (g_test_verbose ()) g_print ("rect 100%%.get_paint_opacity()\n"); g_assert (clutter_actor_get_paint_opacity (rect) == 128); - - clutter_actor_destroy (stage); } +G_GNUC_END_IGNORE_DEPRECATIONS + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/opacity/text", opacity_label) + CLUTTER_TEST_UNIT ("/actor/opacity/rectangle", opacity_rectangle) + CLUTTER_TEST_UNIT ("/actor/opacity/paint", opacity_paint) +) diff --git a/tests/conform/actor-pick.c b/tests/conform/actor-pick.c index e2399bae5..4db39c470 100644 --- a/tests/conform/actor-pick.c +++ b/tests/conform/actor-pick.c @@ -1,7 +1,6 @@ +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include <clutter/clutter.h> -#include "test-conform-common.h" - #define STAGE_WIDTH 640 #define STAGE_HEIGHT 480 #define ACTORS_X 12 @@ -34,6 +33,8 @@ typedef struct _ShiftEffectClass ShiftEffectClass; #define TYPE_SHIFT_EFFECT (shift_effect_get_type ()) +GType shift_effect_get_type (void); + G_DEFINE_TYPE (ShiftEffect, shift_effect, CLUTTER_TYPE_SHADER_EFFECT); @@ -120,8 +121,7 @@ on_timeout (gpointer data) isn't visible so it shouldn't affect the picking */ over_actor = clutter_rectangle_new_with_color (&red); clutter_actor_set_size (over_actor, STAGE_WIDTH, STAGE_HEIGHT); - clutter_container_add (CLUTTER_CONTAINER (state->stage), - over_actor, NULL); + clutter_actor_add_child (state->stage, over_actor); clutter_actor_hide (over_actor); if (g_test_verbose ()) @@ -165,8 +165,9 @@ on_timeout (gpointer data) "blur"); clutter_actor_add_effect_with_name (CLUTTER_ACTOR (state->stage), - "shift", - g_object_new (TYPE_SHIFT_EFFECT, NULL)); + "shift", + g_object_new (TYPE_SHIFT_EFFECT, + NULL)); if (g_test_verbose ()) g_print ("With shift effect:\n"); @@ -190,12 +191,12 @@ on_timeout (gpointer data) if (test_num == 4) pick_x -= SHIFT_STEP; - actor - = clutter_stage_get_actor_at_pos (CLUTTER_STAGE (state->stage), - CLUTTER_PICK_ALL, - pick_x, - y * state->actor_height - + state->actor_height / 2); + actor = + clutter_stage_get_actor_at_pos (CLUTTER_STAGE (state->stage), + CLUTTER_PICK_ALL, + pick_x, + y * state->actor_height + + state->actor_height / 2); if (g_test_verbose ()) g_print ("% 3i,% 3i / %p -> ", @@ -239,7 +240,7 @@ on_timeout (gpointer data) return G_SOURCE_REMOVE; } -void +static void actor_pick (void) { int y, x; @@ -247,7 +248,7 @@ actor_pick (void) state.pass = TRUE; - state.stage = clutter_stage_new (); + state.stage = clutter_test_get_stage (); state.actor_width = STAGE_WIDTH / ACTORS_X; state.actor_height = STAGE_HEIGHT / ACTORS_Y; @@ -267,7 +268,7 @@ actor_pick (void) state.actor_width, state.actor_height); - clutter_container_add (CLUTTER_CONTAINER (state.stage), rect, NULL); + clutter_actor_add_child (state.stage, rect); state.actors[y * ACTORS_X + x] = rect; } @@ -278,10 +279,9 @@ actor_pick (void) clutter_main (); - if (g_test_verbose ()) - g_print ("end result: %s\n", state.pass ? "pass" : "FAIL"); - g_assert (state.pass); - - clutter_actor_destroy (state.stage); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/pick", actor_pick) +) diff --git a/tests/conform/actor-shader-effect.c b/tests/conform/actor-shader-effect.c index db3400b77..632caf689 100644 --- a/tests/conform/actor-shader-effect.c +++ b/tests/conform/actor-shader-effect.c @@ -1,7 +1,7 @@ +#define CLUTTER_ENABLE_EXPERIMENTAL_API +#define CLUTTER_DISABLE_DEPRECATION_WARNINGS #include <clutter/clutter.h> -#include "test-conform-common.h" - /**************************************************************** Old style shader effect This uses clutter_shader_effect_set_source @@ -27,6 +27,8 @@ typedef struct _FooOldShaderEffect ClutterShaderEffect parent; } FooOldShaderEffect; +GType foo_old_shader_effect_get_type (void); + G_DEFINE_TYPE (FooOldShaderEffect, foo_old_shader_effect, CLUTTER_TYPE_SHADER_EFFECT); @@ -85,6 +87,8 @@ typedef struct _FooNewShaderEffect ClutterShaderEffect parent; } FooNewShaderEffect; +GType foo_new_shader_effect_get_type (void); + G_DEFINE_TYPE (FooNewShaderEffect, foo_new_shader_effect, CLUTTER_TYPE_SHADER_EFFECT); @@ -160,6 +164,8 @@ typedef struct _FooAnotherNewShaderEffect ClutterShaderEffect parent; } FooAnotherNewShaderEffect; +GType foo_another_new_shader_effect_get_type (void); + G_DEFINE_TYPE (FooAnotherNewShaderEffect, foo_another_new_shader_effect, CLUTTER_TYPE_SHADER_EFFECT); @@ -218,8 +224,11 @@ get_pixel (int x, int y) } static void -paint_cb (ClutterActor *stage) +paint_cb (ClutterStage *stage, + gpointer data) { + gboolean *was_painted = data; + /* old shader effect */ g_assert_cmpint (get_pixel (50, 50), ==, 0xff0000); /* new shader effect */ @@ -229,15 +238,15 @@ paint_cb (ClutterActor *stage) /* new shader effect */ g_assert_cmpint (get_pixel (350, 50), ==, 0x00ffff); - clutter_main_quit (); + *was_painted = TRUE; } -void -actor_shader_effect (TestConformSimpleFixture *fixture, - gconstpointer data) +static void +actor_shader_effect (void) { ClutterActor *stage; ClutterActor *rect; + gboolean was_painted; if (!clutter_feature_available (CLUTTER_FEATURE_SHADERS_GLSL)) return; @@ -261,12 +270,16 @@ actor_shader_effect (TestConformSimpleFixture *fixture, clutter_actor_show (stage); - g_signal_connect_after (stage, "paint", G_CALLBACK (paint_cb), NULL); - - clutter_main (); + was_painted = FALSE; + clutter_stage_set_paint_callback (CLUTTER_STAGE (stage), + paint_cb, + &was_painted, + NULL); - clutter_actor_destroy (stage); - - if (g_test_verbose ()) - g_print ("OK\n"); + while (!was_painted) + g_main_context_iteration (NULL, FALSE); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/shader-effect", actor_shader_effect) +) diff --git a/tests/conform/actor-size.c b/tests/conform/actor-size.c index 6d837c64c..7245f157d 100644 --- a/tests/conform/actor-size.c +++ b/tests/conform/actor-size.c @@ -3,8 +3,6 @@ #include <clutter/clutter.h> -#include "test-conform-common.h" - #define TEST_TYPE_ACTOR (test_actor_get_type ()) typedef struct _TestActor TestActor; @@ -18,6 +16,8 @@ struct _TestActor guint preferred_height_called : 1; }; +GType test_actor_get_type (void); + G_DEFINE_TYPE (TestActor, test_actor, CLUTTER_TYPE_ACTOR); static void @@ -78,7 +78,7 @@ test_actor_init (TestActor *self) { } -void +static void actor_preferred_size (void) { ClutterActor *test; @@ -138,7 +138,7 @@ actor_preferred_size (void) clutter_actor_destroy (test); } -void +static void actor_fixed_size (void) { ClutterActor *rect; @@ -209,3 +209,8 @@ actor_fixed_size (void) clutter_actor_destroy (rect); g_object_unref (rect); } + +CLUTTER_TEST_SUITE ( + CLUTTER_TEST_UNIT ("/actor/size/preferred", actor_preferred_size) + CLUTTER_TEST_UNIT ("/actor/size/fixed", actor_fixed_size) +) |