[gupnp-av/wip/didl-lite-fragments: 5/19] blabla
- From: Krzesimir Nowak <krnowak src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gupnp-av/wip/didl-lite-fragments: 5/19] blabla
- Date: Tue, 23 Oct 2012 14:34:47 +0000 (UTC)
commit 96a9ac37e666a845a95f33b5c3c721aafe74f0b3
Author: Krzesimir Nowak <krnowak openismus com>
Date: Thu Oct 18 13:23:23 2012 +0200
blabla
Makefile.am | 2 +-
data/Makefile.am | 1 +
tests/Makefile.am | 11 ++++-
tests/fragments.c | 133 +++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 144 insertions(+), 3 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index 9e9db6d..92b6bde 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-SUBDIRS = libgupnp-av tests doc vala
+SUBDIRS = libgupnp-av tests doc vala data
pkgconfig_DATA= gupnp-av-1.0.pc
pkgconfigdir = $(libdir)/pkgconfig
diff --git a/data/Makefile.am b/data/Makefile.am
new file mode 100644
index 0000000..a20a32b
--- /dev/null
+++ b/data/Makefile.am
@@ -0,0 +1 @@
+dist_pkgdatadir_DATA = didl-lite-v2.xsd
diff --git a/tests/Makefile.am b/tests/Makefile.am
index 262ec91..9831b28 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -1,16 +1,23 @@
SUBDIRS = gtest
-AM_CFLAGS = $(LIBGUPNP_CFLAGS) -I$(top_srcdir)
+common_cflags = $(LIBGUPNP_CFLAGS) -I$(top_srcdir)
noinst_PROGRAMS = test-search-criteria-parser
test_search_criteria_parser_SOURCES = test-search-criteria-parser.c
test_search_criteria_parser_LDADD = \
$(top_builddir)/libgupnp-av/libgupnp-av-1.0.la \
$(LIBGUPNP_LIBS)
+test_search_criteria_parser_CFLAGS = $(common_cflags)
-check_PROGRAMS = check-search
+check_PROGRAMS = check-search fragments
check_search_SOURCES = check-search.c
check_search_LDADD = $(top_builddir)/libgupnp-av/libgupnp-av-1.0.la \
$(LIBGUPNP_LIBS)
+check_search_CFLAGS = $(common_cflags)
+
+fragments_SOURCES = fragments.c
+fragments_LDADD = $(top_builddir)/libgupnp-av/libgupnp-av-1.0.la \
+ $(LIBGUPNP_LIBS)
+fragments_CFLAGS = $(common_cflags) -DTOP_SRCDIR="\"$(top_srcdir)\""
TESTS = $(check_PROGRAMS)
diff --git a/tests/fragments.c b/tests/fragments.c
new file mode 100644
index 0000000..6007232
--- /dev/null
+++ b/tests/fragments.c
@@ -0,0 +1,133 @@
+/*
+ * Copyright (C) 2012 Intel Corporation
+ *
+ * Authors: Krzesimir Nowak <krnowak openismus com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this library; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#include <glib-object.h>
+#include "gupnp-didl-lite-object.h"
+#include "gupnp-didl-lite-object-private.h"
+
+/* creates an item described by:
+static const gchar * const didllite =
+ "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"
+ "<DIDL-Lite"
+ "xmlns:dc=\"http://purl.org/dc/elements/1.1/\""
+ "xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\""
+ "xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\""
+ "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""
+ "xsi:schemaLocation=\""
+ "urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"
+ "http://www.upnp.org/schemas/av/didl-lite.xsd"
+ "urn:schemas-upnp-org:metadata-1-0/upnp/"
+ "http://www.upnp.org/schemas/av/upnp.xsd\">"
+ "<item id=\"18\" parentID=\"13\" restricted=\"0\">"
+ "<dc:title>Try a little tenderness</dc:title>"
+ "<upnp:class>object.item.audioItem.musicTrack</upnp:class>"
+ "<res protocolInfo=\"http-get:*:audio/mpeg:*\" size=\"3558000\">"
+ "http://168.192.1.1/audio197.mp3"
+ "</res>"
+ "<upnp:artist>Unknown</upnp:artist>"
+ "</item>"
+ "</DIDL-Lite>";
+*/
+static GUPnPDIDLLiteObject *
+get_item (void)
+{
+ GUPnPDIDLiteWriter *writer = gupnp_didl_lite_writer_new ();
+ GUPnPDIDLiteItem *item = gupnp_didl_lite_writer_add_item (writer);
+ GUPnPDIDLLiteObject *object = GUPNP_DIDL_LITE_OBJECT (item);
+ GUPnPDIDLLiteContributor *artist;
+ GUPnPDIDLLiteResource *resource;
+ GUPnPProtocolInfo *info;
+
+ g_object_unref (writer);
+ gupnp_didl_lite_object_set_id (object, "18");
+ gupnp_didl_lite_object_set_parent_id (object, "13");
+ gupnp_didl_lite_object_set_restricted (object, FALSE);
+ gupnp_didl_lite_object_set_title (object, "Try a little tenderness");
+ gupnp_didl_lite_object_set_upnp_class
+ (object,
+ "object.item.audioItem.musicTrack");
+ artist = gupnp_didl_lite_object_add_artist (object);
+ gupnp_didl_lite_contributor_set_name (artist, "Unknown");
+ g_object_unref (artist);
+ resource = gupnp_didl_lite_object_add_resource (object);
+ info = gupnp_protocol_info_new ();
+ gupnp_protocol_info_set_protocol (info, "http-get");
+ gupnp_protocol_info_set_network (info, "*");
+ gupnp_protocol_info_set_mime_type (info, "audio/mpeg");
+ gupnp_didl_lite_resource_set_protocol_info (resource, info);
+ g_object_unref (info);
+ gupnp_didl_lite_resource_set_size (resource, 3558000);
+ gupnp_didl_lite_resource_set_uri (resource,
+ "http://168.192.1.1/audio197.mp3");
+ g_object_unref (resource);
+
+ return object;
+}
+
+static const gchar * const current_fragments[] = {
+ "<upnp:class>object.item.audioItem.musicTrack</upnp:class>",
+ "",
+ "<upnp:artist>Unknown</upnp:artist>",
+ "<dc:title>Try a little tenderness</dc:title>"
+};
+
+static const gchar * const new_fragments[] = {
+ "<upnp:class>object.item.audioItem.musicTrack</upnp:class>"
+ "<upnp:genre>Obscure</upnp:genre>",
+ "<upnp:genre>Even more obscure</upnp:genre>",
+ "",
+ "<dc:title>Cthulhu fhtagn</dc:title>"
+};
+
+static GList*
+create_fragment_list (const gchar * const * const fragments,
+ guint count)
+{
+ GList *list = NULL;
+ guint iter;
+
+ for (iter = 0; iter < count; ++iter) {
+ list = g_list_prepend (list, fragments[iter]);
+ }
+
+ return g_list_reverse (list);
+}
+
+int main (void)
+{
+ GUPnPDIDLLiteObject *obj;
+ GList *current = create_fragment_list
+ (current_fragments,
+ G_N_ELEMENTS (current_fragments));
+ GList *new = create_fragment_list (new_fragments,
+ G_N_ELEMENTS (new_fragments));
+ GUPnPDIDLLiteFragmentResult result;
+
+ g_type_init ();
+ g_setenv ("GUPNP_AV_DATADIR", TOP_SRCDIR G_DIR_SEPARATOR_S "data", FALSE);
+
+ obj = get_item ();
+ result = gupnp_didl_lite_object_apply_fragments (obj, current, new);
+
+ if (result != GUPNP_DIDL_LITE_FRAGMENT_RESULT_OK)
+ return 1;
+ return 0;
+}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]