Blame tests/conform/behaviours.c

Packit 31ecd5
#define CLUTTER_DISABLE_DEPRECATION_WARNINGS
Packit 31ecd5
#include <clutter/clutter.h>
Packit 31ecd5
Packit 31ecd5
static void
Packit 31ecd5
behaviour_opacity (void)
Packit 31ecd5
{
Packit 31ecd5
  ClutterBehaviour *behaviour;
Packit 31ecd5
  ClutterTimeline *timeline;
Packit 31ecd5
  ClutterAlpha *alpha;
Packit 31ecd5
  guint8 start, end;
Packit 31ecd5
  guint starti;
Packit 31ecd5
Packit 31ecd5
  timeline = clutter_timeline_new (500);
Packit 31ecd5
  alpha = clutter_alpha_new_full (timeline, CLUTTER_LINEAR);
Packit 31ecd5
  behaviour = clutter_behaviour_opacity_new (alpha, 0, 255);
Packit 31ecd5
  g_assert (CLUTTER_IS_BEHAVIOUR_OPACITY (behaviour));
Packit 31ecd5
  g_object_add_weak_pointer (G_OBJECT (behaviour), (gpointer *) &behaviour);
Packit 31ecd5
  g_object_add_weak_pointer (G_OBJECT (timeline), (gpointer *) &timeline);
Packit 31ecd5
Packit 31ecd5
  clutter_behaviour_opacity_get_bounds (CLUTTER_BEHAVIOUR_OPACITY (behaviour),
Packit 31ecd5
                                        &start,
Packit 31ecd5
                                        &end;;
Packit 31ecd5
Packit 31ecd5
  if (g_test_verbose ())
Packit 31ecd5
    g_print ("BehaviourOpacity:bounds = %d, %d (expected: 0, 255)\n",
Packit 31ecd5
             start,
Packit 31ecd5
             end);
Packit 31ecd5
Packit 31ecd5
  g_assert_cmpint (start, ==, 0);
Packit 31ecd5
  g_assert_cmpint (end, ==, 255);
Packit 31ecd5
Packit 31ecd5
  clutter_behaviour_opacity_set_bounds (CLUTTER_BEHAVIOUR_OPACITY (behaviour),
Packit 31ecd5
                                        255,
Packit 31ecd5
                                        0);
Packit 31ecd5
  /* XXX: The gobject property is actually a unsigned int not unsigned char
Packit 31ecd5
   * property so we have to be careful not to corrupt the stack by passing
Packit 31ecd5
   * a guint8 pointer here... */
Packit 31ecd5
  starti = 0;
Packit 31ecd5
  g_object_get (G_OBJECT (behaviour), "opacity-start", &starti, NULL);
Packit 31ecd5
Packit 31ecd5
  if (g_test_verbose ())
Packit 31ecd5
    g_print ("BehaviourOpacity:start = %d (expected: 255)\n", start);
Packit 31ecd5
Packit 31ecd5
  g_assert_cmpint (starti, ==, 255);
Packit 31ecd5
Packit 31ecd5
  g_object_unref (behaviour);
Packit 31ecd5
  g_object_unref (timeline);
Packit 31ecd5
Packit 31ecd5
  g_assert_null (behaviour);
Packit 31ecd5
  g_assert_null (timeline);
Packit 31ecd5
}
Packit 31ecd5
Packit 31ecd5
static struct
Packit 31ecd5
{
Packit 31ecd5
  const gchar *path;
Packit 31ecd5
  GTestFunc func;
Packit 31ecd5
} behaviour_tests[] = {
Packit 31ecd5
  { "opacity", behaviour_opacity },
Packit 31ecd5
};
Packit 31ecd5
Packit 31ecd5
static const int n_behaviour_tests = G_N_ELEMENTS (behaviour_tests);
Packit 31ecd5
Packit 31ecd5
int
Packit 31ecd5
main (int argc, char *argv[])
Packit 31ecd5
{
Packit 31ecd5
  int i;
Packit 31ecd5
Packit 31ecd5
  clutter_test_init (&argc, &argv);
Packit 31ecd5
Packit 31ecd5
  for (i = 0; i < n_behaviour_tests; i++)
Packit 31ecd5
    {
Packit 31ecd5
      char *path = g_strconcat ("/behaviours/", behaviour_tests[i].path, NULL);
Packit 31ecd5
Packit 31ecd5
      clutter_test_add (path, behaviour_tests[i].func);
Packit 31ecd5
Packit 31ecd5
      g_free (path);
Packit 31ecd5
    }
Packit 31ecd5
Packit 31ecd5
  return clutter_test_run ();
Packit 31ecd5
}