summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2011-11-27 12:18:49 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2011-11-27 12:19:40 +0000
commit3f4bd0d9d4b619d8545a57ee6735eb136dacb1c4 (patch)
tree81ebc4f870cc8c020a01481fd092d09565455262
parent24623c43a86fc00f5079994a0969e7689b01317b (diff)
downloadclutter-3f4bd0d9d4b619d8545a57ee6735eb136dacb1c4.tar.gz
conform: Add markers parsing to the timeline unit
We should check that the newly added custom parser for timeline markers is working as intended.
-rw-r--r--tests/conform/test-conform-main.c1
-rw-r--r--tests/conform/test-timeline.c40
-rw-r--r--tests/data/Makefile.am1
-rw-r--r--tests/data/test-script-timeline-markers.json11
4 files changed, 53 insertions, 0 deletions
diff --git a/tests/conform/test-conform-main.c b/tests/conform/test-conform-main.c
index 7a187b92c..afbde487a 100644
--- a/tests/conform/test-conform-main.c
+++ b/tests/conform/test-conform-main.c
@@ -208,6 +208,7 @@ main (int argc, char **argv)
TEST_CONFORM_SIMPLE ("/script", test_script_layout_property);
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_rewind);
diff --git a/tests/conform/test-timeline.c b/tests/conform/test-timeline.c
index 7a1c17971..b9291902f 100644
--- a/tests/conform/test-timeline.c
+++ b/tests/conform/test-timeline.c
@@ -318,3 +318,43 @@ test_timeline (TestConformSimpleFixture *fixture,
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);
+}
diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am
index b30d3d1bd..e461a48ab 100644
--- a/tests/data/Makefile.am
+++ b/tests/data/Makefile.am
@@ -15,6 +15,7 @@ json_files = \
test-animator-2.json \
test-animator-3.json \
test-state-1.json \
+ test-script-timeline-markers.json \
$(NULL)
png_files = \
diff --git a/tests/data/test-script-timeline-markers.json b/tests/data/test-script-timeline-markers.json
new file mode 100644
index 000000000..9dacecba2
--- /dev/null
+++ b/tests/data/test-script-timeline-markers.json
@@ -0,0 +1,11 @@
+{
+ "id" : "timeline0",
+ "type" : "ClutterTimeline",
+ "duration" : 1000,
+
+ "markers" : [
+ { "name" : "marker0", "time" : 250 },
+ { "name" : "marker1", "time" : 500 },
+ { "name" : "marker2", "time" : 750 }
+ ]
+}