From 7d842079ca7521332b98e7cc06480a3f7e23110f Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Mon, 30 Nov 2009 18:22:26 +0000 Subject: [PATCH] conform: Add named object property unit for ClutterScript We should exercise the resolution of the object properties containing a string pointing to an object previously defined using ClutterScript. --- .gitignore | 1 + tests/conform/test-conform-main.c | 1 + tests/conform/test-script-parser.c | 28 ++++++++++++++++++++++++ tests/data/Makefile.am | 22 ++++++++++++++----- tests/data/test-script-named-object.json | 22 +++++++++++++++++++ 5 files changed, 68 insertions(+), 6 deletions(-) create mode 100644 tests/data/test-script-named-object.json diff --git a/.gitignore b/.gitignore index dde662dfb..962ebc189 100644 --- a/.gitignore +++ b/.gitignore @@ -228,6 +228,7 @@ TAGS /tests/conform/test-script-implicit-alpha /tests/conform/test-script-object-property /tests/conform/test-script-animation +/tests/conform/test-script-named-object /tests/micro-bench/test-text-perf /tests/micro-bench/test-text /tests/micro-bench/test-picking diff --git a/tests/conform/test-conform-main.c b/tests/conform/test-conform-main.c index dd6921629..be3929b33 100644 --- a/tests/conform/test-conform-main.c +++ b/tests/conform/test-conform-main.c @@ -174,6 +174,7 @@ main (int argc, char **argv) TEST_CONFORM_SIMPLE ("/script", test_script_implicit_alpha); TEST_CONFORM_SIMPLE ("/script", test_script_object_property); TEST_CONFORM_SIMPLE ("/script", test_script_animation); + TEST_CONFORM_SIMPLE ("/script", test_script_named_object); TEST_CONFORM_SIMPLE ("/cogl", test_cogl_fixed); TEST_CONFORM_SIMPLE ("/cogl", test_cogl_backface_culling); diff --git a/tests/conform/test-script-parser.c b/tests/conform/test-script-parser.c index 1e9b397bd..4b3e40182 100644 --- a/tests/conform/test-script-parser.c +++ b/tests/conform/test-script-parser.c @@ -257,6 +257,34 @@ test_script_object_property (TestConformSimpleFixture *fixture, g_free (test_file); } +void +test_script_named_object (TestConformSimpleFixture *fixture, + gconstpointer dummy) +{ + ClutterScript *script = clutter_script_new (); + ClutterLayoutManager *manager; + GObject *actor = NULL; + GError *error = NULL; + gchar *test_file; + + test_file = clutter_test_get_data_file ("test-script-named-object.json"); + clutter_script_load_from_file (script, test_file, &error); + if (g_test_verbose () && error) + g_print ("Error: %s", error->message); + g_assert (error == NULL); + + actor = clutter_script_get_object (script, "test"); + g_assert (CLUTTER_IS_BOX (actor)); + + manager = clutter_box_get_layout_manager (CLUTTER_BOX (actor)); + g_assert (CLUTTER_IS_BOX_LAYOUT (manager)); + g_assert (clutter_box_layout_get_vertical (CLUTTER_BOX_LAYOUT (manager))); + + g_object_unref (script); + clutter_actor_destroy (CLUTTER_ACTOR (actor)); + g_free (test_file); +} + void test_script_animation (TestConformSimpleFixture *fixture, gconstpointer dummy) diff --git a/tests/data/Makefile.am b/tests/data/Makefile.am index 3a47ed025..79c957828 100644 --- a/tests/data/Makefile.am +++ b/tests/data/Makefile.am @@ -1,9 +1,19 @@ NULL = -EXTRA_DIST = \ - redhand.png \ - redhand_alpha.png \ - light0.png \ - test-script.json \ - test-script-single.json \ +json_files = \ + test-script-animation.json \ + test-script-child.json \ + test-script-implicit-alpha.json \ + test-script.json \ + test-script-named-object.json \ + test-script-object-property.json \ + test-script-single.json \ $(NULL) + +png_files = \ + redhand.png \ + redhand_alpha.png \ + light0.png \ + $(NULL) + +EXTRA_DIST = $(json_files) $(png_files) diff --git a/tests/data/test-script-named-object.json b/tests/data/test-script-named-object.json new file mode 100644 index 000000000..f1a5d27c2 --- /dev/null +++ b/tests/data/test-script-named-object.json @@ -0,0 +1,22 @@ +[ + { + "id" : "layout", + "type" : "ClutterBoxLayout", + "vertical" : true, + "spacing" : 12, + "pack-start" : false + }, + { + "id" : "test", + "type" : "ClutterBox", + "layout-manager" : "layout", + "children" : [ + { + "id" : "child-1", + "type" : "ClutterRectangle", + "width" : "3 em", + "height" : "3 em" + } + ] + } +]