mirror of
https://github.com/brl/mutter.git
synced 2025-01-22 09:29:25 +00:00
conform: Add the beginnings of a ClutterScript test suite
ClutterScript is a very complicated piece of machinery, with a parser that has custom variations on top of the basic JSON format; it could also be extended in the future, so if we don't want to introduce regressions or break existing ClutterScript definitions, we'd better have a conformance test suite.
This commit is contained in:
parent
7d891d9dd4
commit
d7cfa15851
1
.gitignore
vendored
1
.gitignore
vendored
@ -218,6 +218,7 @@ TAGS
|
||||
/tests/conform/test-cogl-readpixels
|
||||
/tests/conform/test-cogl-viewport
|
||||
/tests/conform/test-texture-fbo
|
||||
/tests/conform/test-script-single
|
||||
/tests/micro-bench/test-text-perf
|
||||
/tests/micro-bench/test-text
|
||||
/tests/micro-bench/test-picking
|
||||
|
@ -39,6 +39,7 @@ test_conformance_SOURCES = \
|
||||
test-cogl-viewport.c \
|
||||
test-cogl-offscreen.c \
|
||||
test-cogl-readpixels.c \
|
||||
test-script-parser.c \
|
||||
$(NULL)
|
||||
|
||||
# For convenience, this provides a way to easily run individual unit tests:
|
||||
|
@ -185,5 +185,7 @@ main (int argc, char **argv)
|
||||
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_offscreen);
|
||||
TEST_CONFORM_SIMPLE ("/cogl", test_cogl_readpixels);
|
||||
|
||||
TEST_CONFORM_SIMPLE ("/script", test_script_single);
|
||||
|
||||
return g_test_run ();
|
||||
}
|
||||
|
33
tests/conform/test-script-parser.c
Normal file
33
tests/conform/test-script-parser.c
Normal file
@ -0,0 +1,33 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <clutter/clutter.h>
|
||||
|
||||
#include "test-conform-common.h"
|
||||
|
||||
void
|
||||
test_script_single (TestConformSimpleFixture *fixture,
|
||||
gconstpointer dummy)
|
||||
{
|
||||
ClutterScript *script = clutter_script_new ();
|
||||
GObject *actor = NULL;
|
||||
GError *error = NULL;
|
||||
ClutterActor *rect;
|
||||
gchar *test_file;
|
||||
|
||||
test_file = clutter_test_get_data_file ("test-script-single.json");
|
||||
clutter_script_load_from_file (script, test_file, &error);
|
||||
g_assert (error == NULL);
|
||||
|
||||
actor = clutter_script_get_object (script, "test");
|
||||
g_assert (CLUTTER_IS_RECTANGLE (actor));
|
||||
|
||||
rect = CLUTTER_ACTOR (actor);
|
||||
g_assert_cmpfloat (clutter_actor_get_width (rect), ==, 50.0);
|
||||
g_assert_cmpfloat (clutter_actor_get_y (rect), ==, 100.0);
|
||||
|
||||
g_object_unref (script);
|
||||
|
||||
clutter_actor_destroy (rect);
|
||||
g_free (test_file);
|
||||
}
|
@ -1,6 +1,9 @@
|
||||
EXTRA_DIST = \
|
||||
redhand.png \
|
||||
redhand_alpha.png \
|
||||
light0.png \
|
||||
test-script.json
|
||||
NULL =
|
||||
|
||||
EXTRA_DIST = \
|
||||
redhand.png \
|
||||
redhand_alpha.png \
|
||||
light0.png \
|
||||
test-script.json \
|
||||
test-script-single.json \
|
||||
$(NULL)
|
||||
|
10
tests/data/test-script-single.json
Normal file
10
tests/data/test-script-single.json
Normal file
@ -0,0 +1,10 @@
|
||||
{
|
||||
"type" : "ClutterRectangle",
|
||||
"id" : "test",
|
||||
"width" : 50.0,
|
||||
"height" : 100.0,
|
||||
"x" : 100.0,
|
||||
"y" : 100.0,
|
||||
"color" : "#ffccdd",
|
||||
"name" : "Test Rectangle"
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user