conform: Add markers parsing to the timeline unit
authorEmmanuele Bassi <ebassi@gnome.org>
Sun, 27 Nov 2011 12:18:49 +0000 (12:18 +0000)
committerEmmanuele Bassi <ebassi@gnome.org>
Sun, 27 Nov 2011 12:19:40 +0000 (12:19 +0000)
We should check that the newly added custom parser for timeline
markers is working as intended.

tests/conform/test-conform-main.c
tests/conform/test-timeline.c
tests/data/Makefile.am
tests/data/test-script-timeline-markers.json [new file with mode: 0644]

index 7a187b9..afbde48 100644 (file)
@@ -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);
 
index 7a1c179..b929190 100644 (file)
@@ -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);
+}
index b30d3d1..e461a48 100644 (file)
@@ -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 (file)
index 0000000..9dacecb
--- /dev/null
@@ -0,0 +1,11 @@
+{
+  "id" : "timeline0",
+  "type" : "ClutterTimeline",
+  "duration" : 1000,
+
+  "markers" : [
+    { "name" : "marker0", "time" : 250 },
+    { "name" : "marker1", "time" : 500 },
+    { "name" : "marker2", "time" : 750 }
+  ]
+}