static void test_resolve_metrolyrics (void) { GrlSource *source; guint i; struct { gchar *title; gchar *artist; gchar *lyrics_file; } audios[] = { { "ring of fire", "johnny cash", LYRICS_RING_OF_FIRE }, { "back it up", "caro emerald", LYRICS_BACK_IT_UP }, { "bohemian rhapsody", "queen", LYRICS_BOHEMIAN_RHAPSODY }, { "nobodys perfect", "jessie j", LYRICS_NOBODYS_PERFECT }, { "100% pure love", "crystal waters", NULL }, }; source = test_lua_factory_get_source (METROLYRICS_ID, METROLYRICS_OPS); for (i = 0; i < G_N_ELEMENTS (audios); i++) { gchar *lyrics, *data; GFile *file; gsize size; GError *error = NULL; lyrics = get_lyrics (source, audios[i].artist, audios[i].title); if (audios[i].lyrics_file == NULL) { /* We are not interested in comparing this lyrics */ g_clear_pointer (&lyrics, g_free); continue; } g_assert_nonnull (lyrics); file = g_file_new_for_uri (audios[i].lyrics_file); g_file_load_contents (file, NULL, &data, &size, NULL, &error); g_assert_no_error (error); g_clear_pointer (&file, g_object_unref); if (g_ascii_strncasecmp (lyrics, data, size - 1) != 0) { g_warning ("Lyrics of '%s' from '%s' changed. Check if metrolyrics.com changed", audios[i].title, audios[i].artist); } g_clear_pointer (&lyrics, g_free); g_clear_pointer (&data, g_free); } }
static void set_test_data (GrlSource **source, GrlMedia **media, GrlOperationOptions **options, GList **keys, GrlSupportedOps source_op) { *source = test_lua_factory_get_source (FAKE_SOURCE_ID, source_op); g_assert_nonnull (*source); *media = grl_media_new (); grl_data_add_string (GRL_DATA (*media), GRL_METADATA_KEY_URL, LOCAL_CONTENT); *keys = grl_metadata_key_list_new (GRL_METADATA_KEY_TITLE, NULL); *options = grl_operation_options_new (NULL); grl_operation_options_set_resolution_flags (*options, GRL_RESOLVE_NORMAL); }
static void test_resolve_metrolyrics_bad_request (void) { GrlSource *source; guint i; struct { gchar *title; gchar *artist; gchar *lyrics_file; } audios[] = { { "GNOME", "grilo framework", NULL }, }; source = test_lua_factory_get_source (METROLYRICS_ID, METROLYRICS_OPS); for (i = 0; i < G_N_ELEMENTS (audios); i++) { gchar *lyrics; g_test_expect_message("Grilo", G_LOG_LEVEL_WARNING, "*Can't fetch element*"); lyrics = get_lyrics (source, audios[i].artist, audios[i].title); g_assert_null (lyrics); } }