diff options
Diffstat (limited to 'src/libdisfluid/disfluid-tests.h')
-rw-r--r-- | src/libdisfluid/disfluid-tests.h | 154 |
1 files changed, 154 insertions, 0 deletions
diff --git a/src/libdisfluid/disfluid-tests.h b/src/libdisfluid/disfluid-tests.h index bcc50b4..98cbdf3 100644 --- a/src/libdisfluid/disfluid-tests.h +++ b/src/libdisfluid/disfluid-tests.h @@ -20,6 +20,9 @@ static inline int test_append_count (const char *filename, size_t *n); # include "disfluid-append-only-file.h" # include "disfluid-trie.h" # include "disfluid-cache-group.h" +# include "disfluid-activity-object.h" + +# include <jansson.h> # define BYTES * 1 @@ -1220,6 +1223,150 @@ START_TEST (test_aof_cache_group) END_TEST /* *INDENT-ON* */ +/* *INDENT-OFF* */ +START_TEST (test_activity_context_1) +/* *INDENT-ON* */ + +{ + static const char *activity = + "{" + "\"@context\": \"https://www.w3.org/ns/activitystreams\"," + "\"summary\": \"A note\"," + "\"type\": \"Note\"," "\"content\": \"My dog has fleas.\"" "}"; + json_error_t error; + json_t *object = json_loads (activity, 0, &error); + ck_assert_ptr_nonnull (object); + string_desc_t prefix; + int ctx_error = activity_object_context_prefix (object, &prefix); + ck_assert_int_eq (ctx_error, 0); + ck_assert_int_eq (prefix._nbytes, 0); + ck_assert_ptr_null (prefix._data); + json_decref (object); +} +/* *INDENT-OFF* */ +END_TEST +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ +START_TEST (test_activity_context_2) +/* *INDENT-ON* */ + +{ + static const char *activity = + "{" + "\"@context\": {" + "\"@vocab\": \"https://www.w3.org/ns/activitystreams#\"," + "\"ext\": \"https://canine-extension.example/terms/\"," + "\"@language\": \"en\"" + "}," + "\"summary\": \"A note\"," + "\"type\": \"Note\"," + "\"content\": \"My dog has fleas.\"," + "\"ext:nose\": 0," "\"ext:smell\": \"terrible\"" "}"; + json_error_t error; + json_t *object = json_loads (activity, 0, &error); + ck_assert_ptr_nonnull (object); + string_desc_t prefix; + int ctx_error = activity_object_context_prefix (object, &prefix); + ck_assert_int_eq (ctx_error, 0); + ck_assert_int_eq (prefix._nbytes, 0); + ck_assert_ptr_null (prefix._data); + json_decref (object); +} +/* *INDENT-OFF* */ +END_TEST +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ +START_TEST (test_activity_context_2bis) +/* *INDENT-ON* */ + +{ + static const char *activity = + "{" + "\"@context\": {" + "\"@vocab\": \"https://example.com/\"," + "\"as\": \"https://www.w3.org/ns/activitystreams#\"," + "\"ext\": \"https://canine-extension.example/terms/\"," + "\"@language\": \"en\"" + "}," + "\"as:summary\": \"A note\"," + "\"as:type\": \"Note\"," + "\"as:content\": \"My dog has fleas.\"," + "\"ext:nose\": 0," "\"ext:smell\": \"terrible\"" "}"; + json_error_t error; + json_t *object = json_loads (activity, 0, &error); + ck_assert_ptr_nonnull (object); + string_desc_t prefix; + int ctx_error = activity_object_context_prefix (object, &prefix); + ck_assert_int_eq (ctx_error, 0); + ck_assert_int_eq (prefix._nbytes, 3); + ck_assert_int_eq (memcmp (prefix._data, "as:", 3), 0); + FREE (prefix._data); + json_decref (object); +} +/* *INDENT-OFF* */ +END_TEST +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ +START_TEST (test_activity_context_3) +/* *INDENT-ON* */ + +{ + static const char *activity = + "{" + "\"@context\": [" + "\"https://www.w3.org/ns/activitystreams\"," + "{" + "\"css\": \"http://www.w3.org/ns/oa#styledBy\"" + "}" + "]," + "\"summary\": \"A note\"," + "\"type\": \"Note\"," + "\"content\": \"My dog has fleas.\"," + "\"css\": \"http://www.csszengarden.com/217/217.css?v=8may2013\"" "}"; + json_error_t error; + json_t *object = json_loads (activity, 0, &error); + ck_assert_ptr_nonnull (object); + string_desc_t prefix; + int ctx_error = activity_object_context_prefix (object, &prefix); + ck_assert_int_eq (ctx_error, 0); + ck_assert_int_eq (prefix._nbytes, 0); + ck_assert_ptr_null (prefix._data); + json_decref (object); +} +/* *INDENT-OFF* */ +END_TEST +/* *INDENT-ON* */ + +/* *INDENT-OFF* */ +START_TEST (test_activity_context_none) +/* *INDENT-ON* */ + +{ + static const char *activity = + "{" + "\"http://schema.org/name\": \"Manu Sporny\"," + "\"http://schema.org/url\": {" + "\"@id\": \"http://manu.sporny.org/\"" + "}," + "\"http://schema.org/image\": {" + "\"@id\": \"http://manu.sporny.org/images/manu.png\"" "}" "}"; + json_error_t error; + json_t *object = json_loads (activity, 0, &error); + ck_assert_ptr_nonnull (object); + string_desc_t prefix; + int ctx_error = activity_object_context_prefix (object, &prefix); + ck_assert_int_lt (ctx_error, 0); + ck_assert_int_eq (prefix._nbytes, 0); + ck_assert_ptr_null (prefix._data); + json_decref (object); +} +/* *INDENT-OFF* */ +END_TEST +/* *INDENT-ON* */ + static inline char * tests_read_whole_file (int file) { @@ -1281,6 +1428,13 @@ run_tests (size_t *n_tests, size_t *n_errors) tcase_add_test (aof, test_aof_can_read_locked_file); tcase_add_test (aof, test_aof_trie_fold); suite_add_tcase (suite, aof); + TCase *activity = tcase_create (_("activity")); + tcase_add_test (activity, test_activity_context_1); + tcase_add_test (activity, test_activity_context_2); + tcase_add_test (activity, test_activity_context_2bis); + tcase_add_test (activity, test_activity_context_3); + tcase_add_test (activity, test_activity_context_none); + suite_add_tcase (suite, activity); SRunner *runner = srunner_create (suite); char log_file_name[] = "/tmp/disfluid-unit-tests-XXXXXX"; int log_file = mkstemp (log_file_name); |