24
24
#include "paftest.h"
27
construct_destruct (void)
26
/* FIXME: add more stuff with transformations when transformation
27
* implementations actually exist */
29
/* init / cleanup stuff, not used for construction tests */
31
static PafClock *gClock = NULL;
36
gClock = paf_clock_new (1000);
47
g_object_unref (gClock);
52
/* construction tests */
54
PAF_TEST_CONSTRUCT_DESTRUCT (PafClock, CLOCK, paf_clock_new (1000))
59
PafClock *clock = NULL;
61
CU_ASSERT_PTR_NOT_NULL_FATAL (clock = paf_clock_new (1000));
63
g_object_unref (clock);
66
CU_ASSERT_PTR_NOT_NULL_FATAL (clock = paf_clock_new (0));
67
g_object_unref (clock);
70
CU_ASSERT_PTR_NOT_NULL_FATAL (clock = paf_clock_new (G_MAXUINT));
71
g_object_unref (clock);
75
test_new_full_fail (void)
77
PafClock *clock = NULL, *clock0 = NULL;
79
CU_ASSERT_PTR_NOT_NULL_FATAL (clock0 = paf_clock_new (1000));
81
CU_ASSERT_PTR_NULL (clock = paf_clock_new_full (1000,
82
-1.0f, /* should fail */
88
CU_ASSERT_PTR_NULL (clock =
89
paf_clock_new_full (1000,
93
(PafTransformation *) clock0,
97
CU_ASSERT_PTR_NULL (clock =
98
paf_clock_new_full (1000,
106
g_object_unref (clock0);
112
PafClock *clock = NULL;
114
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
115
paf_clock_new_full (1000,
121
g_object_unref (clock);
123
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
124
paf_clock_new_full (0,
130
g_object_unref (clock);
131
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
132
paf_clock_new_full (G_MAXUINT,
138
g_object_unref (clock);
140
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
141
paf_clock_new_full (1000,
147
g_object_unref (clock);
149
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
150
paf_clock_new_full (1000,
156
g_object_unref (clock);
158
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
159
paf_clock_new_full (1000,
165
g_object_unref (clock);
167
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
168
paf_clock_new_full (1000,
174
g_object_unref (clock);
176
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
177
paf_clock_new_full (1000,
183
g_object_unref (clock);
186
PafTicker *ticker = NULL;
187
CU_ASSERT_PTR_NOT_NULL (ticker = paf_ticker_new ());
188
CU_ASSERT_PTR_NOT_NULL_FATAL (clock =
189
paf_clock_new_full (1000,
195
g_object_unref (clock);
201
/* non behavioural tests of paf_clock_tick() */
203
basic_tick_fail (void)
205
PAF_TEST_ASSERT_WARNING (paf_clock_tick (NULL, 0.0f));
207
PAF_TEST_ASSERT_WARNING (paf_clock_tick (gClock, -1.0f));
208
PAF_TEST_CHECK_GETTER_FAIL (gClock, clock, progression, -1.0f);
210
PAF_TEST_ASSERT_WARNING (paf_clock_tick (gClock, 1.0f + G_MINFLOAT));
211
PAF_TEST_CHECK_GETTER_FAIL (gClock, clock, progression, 1.0f + G_MINFLOAT);
213
PAF_TEST_ASSERT_WARNING (paf_clock_tick (gClock, -G_MAXFLOAT));
214
PAF_TEST_CHECK_GETTER_FAIL (gClock, clock, progression, -G_MAXFLOAT);
216
PAF_TEST_ASSERT_WARNING (paf_clock_tick (gClock, G_MAXFLOAT));
217
PAF_TEST_CHECK_GETTER_FAIL (gClock, clock, progression, G_MAXFLOAT);
219
PAF_TEST_ASSERT_WARNING (paf_clock_tick (gClock, 2.0f));
220
PAF_TEST_CHECK_GETTER_FAIL (gClock, clock, progression, 2.0f);
224
do_basic_tick (PafClock *clock)
226
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 0.0f));
227
PAF_TEST_CHECK_GETTER (clock, clock, progression, 0.0f);
229
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, G_MINFLOAT));
230
PAF_TEST_CHECK_GETTER (clock, clock, progression, G_MINFLOAT);
232
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 0.5f));
233
PAF_TEST_CHECK_GETTER (clock, clock, progression, 0.5f);
235
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 0.75f));
236
PAF_TEST_CHECK_GETTER (clock, clock, progression, 0.75f);
238
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 1.0f-G_MINFLOAT));
239
PAF_TEST_CHECK_GETTER (clock, clock, progression, 1.0f-G_MINFLOAT);
245
do_basic_tick (gClock);
247
PAF_TEST_ASSERT_NO_WARNING (paf_clock_set_state (gClock, PAF_RUNNING));
248
do_basic_tick (gClock);
250
PAF_TEST_ASSERT_NO_WARNING (paf_clock_set_state (gClock, PAF_PAUSED));
251
do_basic_tick (gClock);
257
test_auto_reverse (PafClock *clock)
259
PAF_TEST_CHECK_PROPERTY_FAIL (NULL, clock, auto_reverse, TRUE);
261
PAF_TEST_CHECK_PROPERTY (clock, clock, auto_reverse, TRUE);
262
PAF_TEST_CHECK_PROPERTY (clock, clock, auto_reverse, FALSE);
266
test_duration (PafClock *clock)
268
PAF_TEST_CHECK_PROPERTY_FAIL (NULL, clock, duration, 1234);
270
PAF_TEST_CHECK_PROPERTY (clock, clock, duration, 1234);
271
PAF_TEST_CHECK_PROPERTY (clock, clock, duration, 1000);
272
PAF_TEST_CHECK_PROPERTY (clock, clock, duration, 0);
273
PAF_TEST_CHECK_PROPERTY (clock, clock, duration, G_MAXUINT);
278
test_repeat_count (PafClock *clock)
280
PAF_TEST_CHECK_PROPERTY_FAIL (NULL, clock, repeat_count, 1.0f);
282
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, repeat_count, -1.0f);
283
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, repeat_count, -G_MAXFLOAT);
284
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, repeat_count, -G_MINFLOAT);
286
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, 0.0f);
287
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, G_MINFLOAT);
288
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, 0.5f);
289
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, 1.0f);
290
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, 3.0f);
291
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, 123.456f);
292
PAF_TEST_CHECK_PROPERTY (clock, clock, repeat_count, G_MAXFLOAT);
296
test_state (PafClock *clock)
298
PAF_TEST_CHECK_PROPERTY_FAIL (NULL, clock, state, PAF_STOPPED);
300
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, state, PAF_LAST_STATE);
301
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, state, PAF_LAST_STATE +1);
302
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, state, G_MAXINT);
304
PAF_TEST_CHECK_PROPERTY (clock, clock, state, PAF_RUNNING);
305
PAF_TEST_CHECK_PROPERTY (clock, clock, state, PAF_PAUSED);
306
PAF_TEST_CHECK_PROPERTY (clock, clock, state, PAF_STOPPED);
309
/* FIXME: check behaviour with implemented transformations */
311
test_time_transformation (PafClock *clock)
313
PAF_TEST_CHECK_PROPERTY_FAIL (NULL, clock, time_transformation,
316
PAF_TEST_CHECK_PROPERTY (clock, clock, time_transformation, NULL);
320
test_time_transformation_type (PafClock *clock)
322
PAF_TEST_CHECK_PROPERTY_FAIL (NULL, clock, time_transformation_type,
325
PAF_TEST_CHECK_PROPERTY_FAIL (clock, clock, time_transformation_type,
330
test_properties (void)
332
test_auto_reverse (gClock);
333
test_duration (gClock);
334
test_repeat_count (gClock);
336
test_time_transformation (gClock);
337
test_time_transformation_type (gClock);
343
state_changed_callback (PafClock *clock, guint state, gpointer user_data)
345
PafState *ret_state = user_data;
353
test_state_changed (PafClock *clock)
355
PafState state = PAF_LAST_STATE;
358
PAF_TEST_CHECK_SETTER (clock, clock, state, PAF_STOPPED);
360
id = g_signal_connect (clock, "state-changed",
361
G_CALLBACK (state_changed_callback), &state);
362
CU_ASSERT_NOT_EQUAL (id, 0);
364
PAF_TEST_CHECK_SETTER (clock, clock, state, PAF_RUNNING);
365
CU_ASSERT_EQUAL (state, PAF_RUNNING);
367
g_signal_handler_disconnect (clock, id);
369
PAF_TEST_CHECK_SETTER (clock, clock, state, PAF_STOPPED);
373
ticked_callback (PafClock *clock, gfloat progression, gpointer user_data)
375
gfloat *ret_progression = user_data;
377
*ret_progression = progression;
383
test_ticked (PafClock *clock)
385
gfloat progression = -1.0f;
388
PAF_TEST_CHECK_SETTER (clock, clock, state, PAF_STOPPED);
390
id = g_signal_connect (clock, "ticked",
391
G_CALLBACK (ticked_callback), &progression);
392
CU_ASSERT_NOT_EQUAL (id, 0);
394
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 0.1234f));
395
CU_ASSERT_EQUAL (progression, 0.1234f);
397
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 0.314159f));
398
CU_ASSERT_EQUAL (progression, 3.14159f);
400
g_signal_handler_disconnect (clock, id);
402
PAF_TEST_ASSERT_NO_WARNING (paf_clock_tick (clock, 0.0f));
404
PAF_TEST_CHECK_SETTER (clock, clock, state, PAF_STOPPED);
410
test_state_changed (gClock);
411
test_ticked (gClock);
33
415
add_pafclock_suite (void)
35
CU_pSuite suite = paf_test_add_suite ("PafClock", NULL, NULL);
417
CU_pSuite suite = paf_test_add_suite ("PafClock-noinit", NULL, NULL);
36
418
PAF_TEST_ADD_TEST (suite, construct_destruct);
419
PAF_TEST_ADD_TEST (suite, test_new);
420
PAF_TEST_ADD_TEST (suite, test_new_full_fail);
421
PAF_TEST_ADD_TEST (suite, test_new_full);
423
suite = paf_test_add_suite ("PafClock",
424
suite_init, suite_cleanup);
425
PAF_TEST_ADD_TEST (suite, basic_tick_fail);
426
PAF_TEST_ADD_TEST (suite, basic_tick);
427
PAF_TEST_ADD_TEST (suite, test_properties);
428
PAF_TEST_ADD_TEST (suite, test_signals);