[totem-pl-parser] Simplify getting results for entries
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [totem-pl-parser] Simplify getting results for entries
- Date: Mon, 23 Aug 2010 09:47:12 +0000 (UTC)
commit 41d13b6ff351716818451d570fda64417e2284e0
Author: Bastien Nocera <hadess hadess net>
Date: Mon Aug 23 10:42:32 2010 +0100
Simplify getting results for entries
Share more code between tests
plparse/tests/parser.c | 131 ++++++++----------------------------------------
1 files changed, 21 insertions(+), 110 deletions(-)
---
diff --git a/plparse/tests/parser.c b/plparse/tests/parser.c
index 9a09ad6..d952915 100644
--- a/plparse/tests/parser.c
+++ b/plparse/tests/parser.c
@@ -16,6 +16,11 @@
#include "totem-pl-parser-mini.h"
#include "totem-pl-parser-private.h"
+typedef struct {
+ const char *field;
+ char *ret;
+} ParserResult;
+
static GMainLoop *loop = NULL;
static gboolean option_no_recurse = FALSE;
static gboolean option_debug = FALSE;
@@ -246,32 +251,10 @@ static void
entry_parsed_cb (TotemPlParser *parser,
const char *uri,
GHashTable *metadata,
- char **ret)
+ ParserResult *res)
{
- if (*ret == NULL)
- *ret = g_strdup (uri);
-}
-
-static char *
-parser_test_get_parse_result (const char *uri)
-{
- TotemPlParserResult retval;
- char *ret = NULL;
- TotemPlParser *pl = totem_pl_parser_new ();
-
- g_object_set (pl, "recurse", !option_no_recurse,
- "debug", option_debug,
- "force", option_force,
- "disable-unsafe", option_disable_unsafe,
- NULL);
- g_signal_connect (G_OBJECT (pl), "entry-parsed",
- G_CALLBACK (entry_parsed_cb), &ret);
-
- retval = totem_pl_parser_parse_with_base (pl, uri, option_base_uri, FALSE);
- g_test_message ("Got retval %d for uri '%s'", retval, uri);
- g_object_unref (pl);
-
- return ret;
+ if (res->ret == NULL)
+ res->ret = g_strdup (g_hash_table_lookup (metadata, res->field));
}
static void
@@ -368,36 +351,28 @@ simple_parser_test (const char *uri)
return retval;
}
-static void
-entry_parsed_genre_cb (TotemPlParser *parser,
- const char *uri,
- GHashTable *metadata,
- char **ret)
-{
- if (*ret == NULL)
- *ret = g_strdup (g_hash_table_lookup (metadata, TOTEM_PL_PARSER_FIELD_GENRE));
-}
-
static char *
-parser_test_get_parse_genre (const char *uri)
+parser_test_get_entry_field (const char *uri, const char *field)
{
TotemPlParserResult retval;
- char *ret = NULL;
TotemPlParser *pl = totem_pl_parser_new ();
+ ParserResult res;
g_object_set (pl, "recurse", !option_no_recurse,
"debug", option_debug,
"force", option_force,
"disable-unsafe", option_disable_unsafe,
NULL);
+ res.field = field;
+ res.ret = NULL;
g_signal_connect (G_OBJECT (pl), "entry-parsed",
- G_CALLBACK (entry_parsed_genre_cb), &ret);
+ G_CALLBACK (entry_parsed_cb), &res);
retval = totem_pl_parser_parse_with_base (pl, uri, option_base_uri, FALSE);
g_test_message ("Got retval %d for uri '%s'", retval, uri);
g_object_unref (pl);
- return ret;
+ return res.ret;
}
static void
@@ -438,70 +413,6 @@ test_itms_parsing (void)
}
static void
-entry_parsed_id_cb (TotemPlParser *parser,
- const char *uri,
- GHashTable *metadata,
- char **ret)
-{
- if (*ret == NULL)
- *ret = g_strdup (g_hash_table_lookup (metadata, TOTEM_PL_PARSER_FIELD_ID));
-}
-
-static char *
-parser_test_get_id (const char *uri)
-{
- TotemPlParserResult retval;
- char *ret = NULL;
- TotemPlParser *pl = totem_pl_parser_new ();
-
- g_object_set (pl, "recurse", !option_no_recurse,
- "debug", option_debug,
- "force", option_force,
- "disable-unsafe", option_disable_unsafe,
- NULL);
- g_signal_connect (G_OBJECT (pl), "entry-parsed",
- G_CALLBACK (entry_parsed_id_cb), &ret);
-
- retval = totem_pl_parser_parse_with_base (pl, uri, option_base_uri, FALSE);
- g_test_message ("Got retval %d for uri '%s'", retval, uri);
- g_object_unref (pl);
-
- return ret;
-}
-
-static void
-entry_parsed_download_cb (TotemPlParser *parser,
- const char *uri,
- GHashTable *metadata,
- char **ret)
-{
- if (*ret == NULL)
- *ret = g_strdup (g_hash_table_lookup (metadata, TOTEM_PL_PARSER_FIELD_DOWNLOAD_URI));
-}
-
-static char *
-parser_test_get_download_uri (const char *uri)
-{
- TotemPlParserResult retval;
- char *ret = NULL;
- TotemPlParser *pl = totem_pl_parser_new ();
-
- g_object_set (pl, "recurse", !option_no_recurse,
- "debug", option_debug,
- "force", option_force,
- "disable-unsafe", option_disable_unsafe,
- NULL);
- g_signal_connect (G_OBJECT (pl), "entry-parsed",
- G_CALLBACK (entry_parsed_download_cb), &ret);
-
- retval = totem_pl_parser_parse_with_base (pl, uri, option_base_uri, FALSE);
- g_test_message ("Got retval %d for uri '%s'", retval, uri);
- g_object_unref (pl);
-
- return ret;
-}
-
-static void
test_lastfm_parsing (void)
{
char *uri;
@@ -509,13 +420,13 @@ test_lastfm_parsing (void)
g_test_bug ("625823");
uri = get_relative_uri (TEST_SRCDIR "old-lastfm-output.xspf");
- g_assert_cmpstr (parser_test_get_download_uri (uri), ==, "http://freedownloads.last.fm/download/188024406/Kondratiev%2BWinter.mp3");
- g_assert_cmpstr (parser_test_get_id (uri), ==, "d092a");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_DOWNLOAD_URI), ==, "http://freedownloads.last.fm/download/188024406/Kondratiev%2BWinter.mp3");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_ID), ==, "d092a");
g_free (uri);
uri = get_relative_uri (TEST_SRCDIR "new-lastfm-output.xspf");
- g_assert_cmpstr (parser_test_get_download_uri (uri), ==, "http://freedownloads.last.fm/download/402599273/Yellow.mp3");
- g_assert_cmpstr (parser_test_get_id (uri), ==, "20a82");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_DOWNLOAD_URI), ==, "http://freedownloads.last.fm/download/402599273/Yellow.mp3");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_ID), ==, "20a82");
g_free (uri);
}
@@ -524,7 +435,7 @@ test_parsing_xspf_genre (void)
{
char *uri;
uri = get_relative_uri (TEST_SRCDIR "playlist.xspf");
- g_assert_cmpstr (parser_test_get_parse_genre (uri), ==, "Test Genre");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_GENRE), ==, "Test Genre");
g_free (uri);
}
@@ -534,7 +445,7 @@ test_parsing_rtsp_text_multi (void)
char *uri;
g_test_bug ("602127");
uri = get_relative_uri (TEST_SRCDIR "602127.qtl");
- g_assert_cmpstr (parser_test_get_parse_result (uri), ==, "rtsp://host.org/video.mp4");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_URI), ==, "rtsp://host.org/video.mp4");
g_free (uri);
}
@@ -543,7 +454,7 @@ test_parsing_rtsp_text (void)
{
char *uri;
uri = get_relative_uri (TEST_SRCDIR "single-line.qtl");
- g_assert_cmpstr (parser_test_get_parse_result (uri), ==, "rtsp://host.org/video.mp4");
+ g_assert_cmpstr (parser_test_get_entry_field (uri, TOTEM_PL_PARSER_FIELD_URI), ==, "rtsp://host.org/video.mp4");
g_free (uri);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]