summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorSumaid Syed <sumaidsyed@gmail.com>2019-08-02 22:51:28 +0530
committerSumaid Syed <sumaidsyed@gmail.com>2019-08-14 14:16:37 +0530
commit85ca8b4aca6d10f6bc376feea7cbda9cca53f503 (patch)
tree5435b4d6b641bc668b3fee4b0c6f467645692513 /tests
parent14c5801b3bdc195c4de3320bd22214e8344c11f1 (diff)
downloadgrilo-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.c86
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 ();