conform: Add markers parsing to the timeline unit

We should check that the newly added custom parser for timeline
markers is working as intended.
This commit is contained in:
Emmanuele Bassi 2011-11-27 12:18:49 +00:00
parent 24623c43a8
commit 3f4bd0d9d4
4 changed files with 53 additions and 0 deletions

View File

@ -208,6 +208,7 @@ main (int argc, char **argv)
TEST_CONFORM_SIMPLE ("/script", test_script_layout_property); TEST_CONFORM_SIMPLE ("/script", test_script_layout_property);
TEST_CONFORM_SIMPLE ("/timeline", test_timeline); TEST_CONFORM_SIMPLE ("/timeline", test_timeline);
TEST_CONFORM_SIMPLE ("/timeline", markers_from_script);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", timeline_interpolation); TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", timeline_interpolation);
TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", timeline_rewind); TEST_CONFORM_SKIP (!g_test_slow (), "/timeline", timeline_rewind);

View File

@ -318,3 +318,43 @@ test_timeline (TestConformSimpleFixture *fixture,
clutter_actor_destroy (stage); clutter_actor_destroy (stage);
} }
void
markers_from_script (TestConformSimpleFixture *fixture,
gconstpointer data)
{
ClutterScript *script = clutter_script_new ();
ClutterTimeline *timeline;
GError *error = NULL;
gchar *test_file;
gchar **markers;
gsize n_markers;
test_file = clutter_test_get_data_file ("test-script-timeline-markers.json");
clutter_script_load_from_file (script, test_file, &error);
if (g_test_verbose () && error != NULL)
g_print ("Error: %s", error->message);
g_assert_no_error (error);
timeline = CLUTTER_TIMELINE (clutter_script_get_object (script, "timeline0"));
g_assert (clutter_timeline_has_marker (timeline, "marker0"));
g_assert (clutter_timeline_has_marker (timeline, "marker1"));
g_assert (!clutter_timeline_has_marker (timeline, "foo"));
g_assert (clutter_timeline_has_marker (timeline, "marker2"));
markers = clutter_timeline_list_markers (timeline, -1, &n_markers);
g_assert_cmpint (n_markers, ==, 3);
g_strfreev (markers);
markers = clutter_timeline_list_markers (timeline, 500, &n_markers);
g_assert_cmpint (n_markers, ==, 1);
g_assert (markers != NULL);
g_assert_cmpstr (markers[0], ==, "marker1");
g_strfreev (markers);
g_object_unref (script);
g_free (test_file);
}

View File

@ -15,6 +15,7 @@ json_files = \
test-animator-2.json \ test-animator-2.json \
test-animator-3.json \ test-animator-3.json \
test-state-1.json \ test-state-1.json \
test-script-timeline-markers.json \
$(NULL) $(NULL)
png_files = \ png_files = \

View File

@ -0,0 +1,11 @@
{
"id" : "timeline0",
"type" : "ClutterTimeline",
"duration" : 1000,
"markers" : [
{ "name" : "marker0", "time" : 250 },
{ "name" : "marker1", "time" : 500 },
{ "name" : "marker2", "time" : 750 }
]
}