mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-17 03:35:21 +00:00
tests: implement GESMetaContainer tests
Co-Authored-By: Paul Lange <palango@gmx.de>
This commit is contained in:
parent
6ea0dffb47
commit
9434f69aba
1 changed files with 342 additions and 0 deletions
|
@ -314,6 +314,335 @@ GST_START_TEST (test_layer_automatic_transition)
|
||||||
|
|
||||||
GST_END_TEST;
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_string)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
const gchar *result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_string (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test", "blub");
|
||||||
|
|
||||||
|
fail_unless ((result = ges_meta_container_get_string (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test")) != NULL);
|
||||||
|
|
||||||
|
assert_equals_string (result, "blub");
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_boolean)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
gboolean result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_boolean (GES_META_CONTAINER (layer), "ges-test", TRUE);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_boolean (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", &result));
|
||||||
|
|
||||||
|
fail_unless (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_int)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
gint result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_int (GES_META_CONTAINER (layer), "ges-test", 1234);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_int (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test", &result));
|
||||||
|
|
||||||
|
assert_equals_int (result, 1234);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_uint)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
guint result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_uint (GES_META_CONTAINER (layer), "ges-test", 42);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_uint (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", &result));
|
||||||
|
|
||||||
|
assert_equals_int (result, 42);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_int64)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
gint64 result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_int64 (GES_META_CONTAINER (layer), "ges-test", 1234);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_int64 (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test", &result));
|
||||||
|
|
||||||
|
assert_equals_int64 (result, 1234);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_uint64)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
guint64 result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_uint64 (GES_META_CONTAINER (layer), "ges-test", 42);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_uint64 (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", &result));
|
||||||
|
|
||||||
|
assert_equals_uint64 (result, 42);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_float)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
gfloat result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_set_float (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test", 23.456));
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_float (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test", &result));
|
||||||
|
|
||||||
|
assert_equals_int64 (result, 23.456);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_double)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
gdouble result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_double (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test", 23.456);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_double (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", &result));
|
||||||
|
fail_unless (result == 23.456);
|
||||||
|
|
||||||
|
//TODO CHECK
|
||||||
|
assert_equals_float (result, 23.456);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_date)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
GDate *input;
|
||||||
|
GDate *result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
input = g_date_new_dmy (1, 1, 2012);
|
||||||
|
|
||||||
|
ges_meta_container_set_date (GES_META_CONTAINER (layer), "ges-test", input);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_date (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", &result));
|
||||||
|
|
||||||
|
fail_unless (g_date_compare (result, input) == 0);
|
||||||
|
|
||||||
|
g_date_free (input);
|
||||||
|
g_date_free (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_date_time)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
GstDateTime *input;
|
||||||
|
GstDateTime *result = NULL;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
input = gst_date_time_new_from_unix_epoch_local_time (123456789);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_set_date_time (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", input));
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_get_date_time (GES_META_CONTAINER
|
||||||
|
(layer), "ges-test", &result));
|
||||||
|
|
||||||
|
fail_unless (result != NULL);
|
||||||
|
fail_unless (gst_date_time_get_day (input) == gst_date_time_get_day (result));
|
||||||
|
fail_unless (gst_date_time_get_hour (input) ==
|
||||||
|
gst_date_time_get_hour (result));
|
||||||
|
|
||||||
|
gst_date_time_unref (input);
|
||||||
|
gst_date_time_unref (result);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_value)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
GValue data = G_VALUE_INIT;
|
||||||
|
const GValue *result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
g_value_init (&data, G_TYPE_STRING);
|
||||||
|
g_value_set_string (&data, "Hello world!");
|
||||||
|
|
||||||
|
ges_meta_container_set_meta (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test-value", &data);
|
||||||
|
|
||||||
|
result =
|
||||||
|
ges_meta_container_get_meta (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test-value");
|
||||||
|
assert_equals_string (g_value_get_string (result), "Hello world!");
|
||||||
|
|
||||||
|
g_value_unset (&data);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_register)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
const gchar *result;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
fail_unless (ges_meta_container_register_meta_string (GES_META_CONTAINER
|
||||||
|
(layer), GES_META_READABLE, "ges-test-value", "Hello world!"));
|
||||||
|
|
||||||
|
result = ges_meta_container_get_string (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test-value");
|
||||||
|
assert_equals_string (result, "Hello world!");
|
||||||
|
|
||||||
|
fail_if (ges_meta_container_set_int (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test-value", 123456));
|
||||||
|
|
||||||
|
result = ges_meta_container_get_string (GES_META_CONTAINER (layer),
|
||||||
|
"ges-test-value");
|
||||||
|
assert_equals_string (result, "Hello world!");
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
|
static void
|
||||||
|
test_foreach (const GESMetaContainer * container, const gchar * key,
|
||||||
|
GValue * value, gpointer user_data)
|
||||||
|
{
|
||||||
|
fail_unless ((0 == g_strcmp0 (key, "some-string")) ||
|
||||||
|
(0 == g_strcmp0 (key, "some-int")));
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_START_TEST (test_layer_meta_foreach)
|
||||||
|
{
|
||||||
|
GESTimeline *timeline;
|
||||||
|
GESTimelineLayer *layer;
|
||||||
|
|
||||||
|
ges_init ();
|
||||||
|
|
||||||
|
timeline = ges_timeline_new_audio_video ();
|
||||||
|
layer = ges_timeline_layer_new ();
|
||||||
|
ges_timeline_add_layer (timeline, layer);
|
||||||
|
|
||||||
|
ges_meta_container_set_string (GES_META_CONTAINER (layer),
|
||||||
|
"some-string", "some-content");
|
||||||
|
|
||||||
|
ges_meta_container_set_int (GES_META_CONTAINER (layer), "some-int", 123456);
|
||||||
|
|
||||||
|
ges_meta_container_foreach (GES_META_CONTAINER (layer),
|
||||||
|
(GESMetaForeachFunc) test_foreach, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
GST_END_TEST;
|
||||||
|
|
||||||
static Suite *
|
static Suite *
|
||||||
ges_suite (void)
|
ges_suite (void)
|
||||||
|
@ -326,6 +655,19 @@ ges_suite (void)
|
||||||
tcase_add_test (tc_chain, test_layer_properties);
|
tcase_add_test (tc_chain, test_layer_properties);
|
||||||
tcase_add_test (tc_chain, test_layer_priorities);
|
tcase_add_test (tc_chain, test_layer_priorities);
|
||||||
tcase_add_test (tc_chain, test_layer_automatic_transition);
|
tcase_add_test (tc_chain, test_layer_automatic_transition);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_string);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_boolean);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_int);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_uint);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_int64);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_uint64);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_float);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_double);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_date);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_date_time);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_value);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_register);
|
||||||
|
tcase_add_test (tc_chain, test_layer_meta_foreach);
|
||||||
|
|
||||||
return s;
|
return s;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue