Exemple #1
0
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);
}
Exemple #3
0
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);
  }
}