diff options
author | Sumaid Syed <sumaidsyed@gmail.com> | 2019-08-02 22:51:28 +0530 |
---|---|---|
committer | Sumaid Syed <sumaidsyed@gmail.com> | 2019-08-14 14:16:37 +0530 |
commit | 85ca8b4aca6d10f6bc376feea7cbda9cca53f503 (patch) | |
tree | 5435b4d6b641bc668b3fee4b0c6f467645692513 /tests | |
parent | 14c5801b3bdc195c4de3320bd22214e8344c11f1 (diff) | |
download | grilo-plugins-85ca8b4aca6d10f6bc376feea7cbda9cca53f503.tar.gz |
test_lua_acoustid.c: Add test for query operation in acoustid plugin
Add basic test checks tests for two retrieved results from acoustid.
https://gitlab.gnome.org/GNOME/grilo-plugins/issues/51
Diffstat (limited to 'tests')
-rw-r--r-- | tests/lua-factory/sources/test_lua_acoustid.c | 86 |
1 files changed, 85 insertions, 1 deletions
diff --git a/tests/lua-factory/sources/test_lua_acoustid.c b/tests/lua-factory/sources/test_lua_acoustid.c index 7af9faa..58e8aa3 100644 --- a/tests/lua-factory/sources/test_lua_acoustid.c +++ b/tests/lua-factory/sources/test_lua_acoustid.c @@ -38,6 +38,87 @@ #define FINGERPRINT_TROMBONE_SH GRESOURCE_PREFIX "chromaprint_trombone_shorty_buckjump.txt" #define FINGERPRINT_RADIOHEAD_PA GRESOURCE_PREFIX "chromaprint_radiohead_paranoid_android.txt" +static void +test_query_by_fingerprint (void) +{ + GList *keys; + GrlOperationOptions *options; + GDateTime *date; + gchar *fingerprint, *publication_date, *query; + GrlMedia *media; + GError *error = NULL; + GList *results; + GFile *file; + gsize size; + GrlSource *source; + gint duration = 445; + + file = g_file_new_for_uri (FINGERPRINT_LUDOVICO_EI); + g_file_load_contents (file, NULL, &fingerprint, &size, NULL, &error); + + query = g_strdup_printf("duration=%d&fingerprint=%s", duration, fingerprint); + + source = test_lua_factory_get_source (ACOUSTID_ID, ACOUSTID_OPS); + + keys = grl_metadata_key_list_new (GRL_METADATA_KEY_MB_ARTIST_ID, + GRL_METADATA_KEY_ARTIST, + GRL_METADATA_KEY_MB_RELEASE_ID, + GRL_METADATA_KEY_MB_RELEASE_GROUP_ID, + GRL_METADATA_KEY_ALBUM, + GRL_METADATA_KEY_MB_RECORDING_ID, + GRL_METADATA_KEY_TITLE, + GRL_METADATA_KEY_ALBUM_DISC_NUMBER, + GRL_METADATA_KEY_PUBLICATION_DATE, + GRL_METADATA_KEY_TRACK_NUMBER, + NULL); + options = grl_operation_options_new (NULL); + grl_operation_options_set_resolution_flags (options, GRL_RESOLVE_NORMAL); + + results = grl_source_query_sync (source, + query, + keys, + options, + &error); + g_assert_no_error (error); + g_assert_cmpint (g_list_length (results), ==, 12); + + media = GRL_MEDIA (results->data); + g_assert_cmpstr (grl_media_get_title (media), ==, "Primavera"); + g_assert_cmpstr (grl_media_get_album (media), ==, "Classic FM Summer Guitar"); + g_assert_cmpstr (grl_media_get_artist (media), ==, "Craig Ogden"); + g_assert_cmpstr (grl_media_get_mb_recording_id (media), ==, "5d72b7d4-d0c4-4d0d-ab7f-3a737075e1c9"); + g_assert_cmpstr (grl_media_get_mb_release_id (media), ==, "5fd10cc8-30e0-48aa-9ba1-19d05b871a75"); + g_assert_cmpstr (grl_media_get_mb_release_group_id (media), ==, "2cde60bc-829c-49af-a62c-e20283167c30"); + g_assert_cmpstr (grl_media_get_mb_artist_id (media), ==, "e7d8aea3-9c1d-4fe0-b93a-481d545296fc"); + g_assert_cmpint (grl_media_get_album_disc_number (media), ==, 1); + g_assert_cmpint (grl_media_get_track_number (media), ==, 8); + date = grl_media_get_publication_date (media); + publication_date = g_date_time_format(date , "%Y-%m-%d"); + g_assert_cmpstr (publication_date, ==, "2009-01-01"); + g_free (publication_date); + + media = GRL_MEDIA (results->next->next->data); + g_assert_cmpstr (grl_media_get_title (media), ==, "Primavera"); + g_assert_cmpstr (grl_media_get_album (media), ==, "Einaudi essentiel"); + g_assert_cmpstr (grl_media_get_artist (media), ==, "Ludovico Einaudi"); + g_assert_cmpstr (grl_media_get_mb_recording_id (media), ==, "75e72e13-cf02-47f8-a4a7-98b916b3b18c"); + g_assert_cmpstr (grl_media_get_mb_release_id (media), ==, "7a06eb11-6013-4eb8-8aef-a2302ef4ed79"); + g_assert_cmpstr (grl_media_get_mb_release_group_id (media), ==, "6c42f326-7c15-41d5-851d-e887b544e217"); + g_assert_cmpstr (grl_media_get_mb_artist_id (media), ==, "fa34b363-79df-434f-a5b8-be4e6898543f"); + g_assert_cmpint (grl_media_get_album_disc_number (media), ==, 1); + g_assert_cmpint (grl_media_get_track_number (media), ==, 11); + date = grl_media_get_publication_date (media); + publication_date = g_date_time_format(date , "%Y-%m-%d"); + g_assert_cmpstr (publication_date, ==, "2012-01-01"); + g_free (publication_date); + + g_assert_no_error (error); + g_list_free_full (results, g_object_unref); + g_free (fingerprint); + g_object_unref (file); + g_object_unref (options); +} + static gchar * resolve (GrlSource *source, const gchar *fingerprint, @@ -250,7 +331,10 @@ main (gint argc, gchar **argv) { test_acoustid_setup (&argc, &argv); - g_test_add_func ("/lua_factory/sources/acoustid", test_resolve_fingerprint); + g_test_add_func ("/lua_factory/sources/acoustid/resolve/fingerprint", + test_resolve_fingerprint); + g_test_add_func ("/lua_factory/sources/acoustid/query/fingerprint", + test_query_by_fingerprint); gint result = g_test_run (); |