|
Packit |
712bc5 |
/*
|
|
Packit |
712bc5 |
* Copyright (C) 2012 Openismus GmbH
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* Author: Jens Georg <jensg@openismus.com>
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* This library is free software; you can redistribute it and/or
|
|
Packit |
712bc5 |
* modify it under the terms of the GNU Library General Public
|
|
Packit |
712bc5 |
* License as published by the Free Software Foundation; either
|
|
Packit |
712bc5 |
* version 2 of the License, or (at your option) any later version.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* This library is distributed in the hope that it will be useful,
|
|
Packit |
712bc5 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
Packit |
712bc5 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
Packit |
712bc5 |
* Library General Public License for more details.
|
|
Packit |
712bc5 |
*
|
|
Packit |
712bc5 |
* You should have received a copy of the GNU Library General Public
|
|
Packit |
712bc5 |
* License along with this library; if not, write to the
|
|
Packit |
712bc5 |
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
Packit |
712bc5 |
* Boston, MA 02110-1301, USA.
|
|
Packit |
712bc5 |
*/
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
#include <libgupnp-av/gupnp-didl-lite-parser.h>
|
|
Packit |
712bc5 |
#include <libgupnp-av/gupnp-didl-lite-writer.h>
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
#define TEST_DIDL_BGO674319 \
|
|
Packit |
712bc5 |
"" \
|
|
Packit |
712bc5 |
"
|
|
Packit |
712bc5 |
" xmlns:dc=\"http://purl.org/dc/elements/1.1/\"" \
|
|
Packit |
712bc5 |
" xmlns=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/\"" \
|
|
Packit |
712bc5 |
" xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\"" \
|
|
Packit |
712bc5 |
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"" \
|
|
Packit |
712bc5 |
" xsi:schemaLocation=\"urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/" \
|
|
Packit |
712bc5 |
" http://www.upnp.org/schemas/av/didl-lite-v2-20060531.xsd" \
|
|
Packit |
712bc5 |
" urn:schemas-upnp-org:metadata-1-0/upnp/" \
|
|
Packit |
712bc5 |
" http://www.upnp.org/schemas/av/upnp-v2-20060531.xsd\">" \
|
|
Packit |
712bc5 |
" <item id=\"\" parentID=\"0\" restricted=\"0\">" \
|
|
Packit |
712bc5 |
" <dc:title>New Song</dc:title>" \
|
|
Packit |
712bc5 |
" <upnp:class>object.item.audioItem</upnp:class>" \
|
|
Packit |
712bc5 |
" <res protocolInfo=\"*:*:*:*\" />" \
|
|
Packit |
712bc5 |
" <upnp:artist></upnp:artist>" \
|
|
Packit |
712bc5 |
" </item>" \
|
|
Packit |
712bc5 |
"</DIDL-Lite>"
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
#define TEST_DIDL_BGO705564 \
|
|
Packit |
712bc5 |
"
|
|
Packit |
712bc5 |
"xmlns:upnp=\"urn:schemas-upnp-org:metadata-1-0/upnp/\" " \
|
|
Packit |
712bc5 |
"xmlns:dlna=\"urn:schemas-dlna-org:metadata-1-0/\">" \
|
|
Packit |
712bc5 |
"<item>" \
|
|
Packit |
712bc5 |
"<upnp:albumArtURI dlna:profileID=\"JPEG_TN\">" \
|
|
Packit |
712bc5 |
"http://example.com/album.jpg"\
|
|
Packit |
712bc5 |
"</upnp:albumArtURI>"\
|
|
Packit |
712bc5 |
"</item>" \
|
|
Packit |
712bc5 |
"</DIDL-Lite>"
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
test_bgo674319_on_object_available (G_GNUC_UNUSED GUPnPDIDLLiteParser *parser,
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *object,
|
|
Packit |
712bc5 |
gpointer user_data)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject **out = (GUPnPDIDLLiteObject **) user_data;
|
|
Packit |
712bc5 |
*out = g_object_ref (object);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
test_bgo674319 (void)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteParser *parser;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *object = NULL;
|
|
Packit |
712bc5 |
GList *artists;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
parser = gupnp_didl_lite_parser_new ();
|
|
Packit |
712bc5 |
g_signal_connect (parser,
|
|
Packit |
712bc5 |
"object-available",
|
|
Packit |
712bc5 |
G_CALLBACK (test_bgo674319_on_object_available),
|
|
Packit |
712bc5 |
&object);
|
|
Packit |
712bc5 |
g_assert (gupnp_didl_lite_parser_parse_didl (parser, TEST_DIDL_BGO674319, NULL));
|
|
Packit |
712bc5 |
g_assert (object != NULL);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
artists = gupnp_didl_lite_object_get_artists (object);
|
|
Packit |
712bc5 |
g_assert (artists == NULL);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
test_bgo687462 (void)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteWriter *writer;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *object;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
writer = gupnp_didl_lite_writer_new (NULL);
|
|
Packit |
712bc5 |
object = (GUPnPDIDLLiteObject *)
|
|
Packit |
712bc5 |
gupnp_didl_lite_writer_add_item (writer);
|
|
Packit |
712bc5 |
gupnp_didl_lite_object_set_album (object, "Test");
|
|
Packit |
712bc5 |
g_assert_cmpstr (gupnp_didl_lite_object_get_album (object), ==, "Test");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
gupnp_didl_lite_object_set_album_art (object, "AlbumArt");
|
|
Packit |
712bc5 |
g_assert_cmpstr (gupnp_didl_lite_object_get_album_art (object), ==, "AlbumArt");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
gupnp_didl_lite_writer_filter (writer, "upnp:album");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_assert_cmpstr (gupnp_didl_lite_object_get_album (object), ==, "Test");
|
|
Packit |
712bc5 |
g_assert (gupnp_didl_lite_object_get_album_art (object) == NULL);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
test_bgo705564 (void)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteWriter *writer;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *object;
|
|
Packit |
712bc5 |
char *xml;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
writer = gupnp_didl_lite_writer_new (NULL);
|
|
Packit |
712bc5 |
object = (GUPnPDIDLLiteObject *)
|
|
Packit |
712bc5 |
gupnp_didl_lite_writer_add_item (writer);
|
|
Packit |
712bc5 |
gupnp_didl_lite_object_set_album_art (object,
|
|
Packit |
712bc5 |
"http://example.com/album.jpg");
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
xml = gupnp_didl_lite_writer_get_string (writer);
|
|
Packit |
712bc5 |
g_assert_cmpstr (xml, ==, TEST_DIDL_BGO705564);
|
|
Packit |
712bc5 |
g_free (xml);
|
|
Packit |
712bc5 |
g_object_unref (object);
|
|
Packit |
712bc5 |
g_object_unref (writer);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
#if 0
|
|
Packit |
712bc5 |
static void
|
|
Packit |
712bc5 |
test_bgo753314 (void)
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
GUPnPDIDLLiteObject *object;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteWriter *writer;
|
|
Packit |
712bc5 |
GUPnPDIDLLiteResource *resource;
|
|
Packit |
712bc5 |
GUPnPProtocolInfo *pi;
|
|
Packit |
712bc5 |
GList *list = NULL;
|
|
Packit |
712bc5 |
GUPnPDLNAFlags flags = GUPNP_DLNA_FLAGS_NONE;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
flags = GUPNP_DLNA_FLAGS_BYTE_BASED_SEEK |
|
|
Packit |
712bc5 |
GUPNP_DLNA_FLAGS_STREAMING_TRANSFER_MODE |
|
|
Packit |
712bc5 |
GUPNP_DLNA_FLAGS_BACKGROUND_TRANSFER_MODE;
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
writer = gupnp_didl_lite_writer_new (NULL);
|
|
Packit |
712bc5 |
object = (GUPnPDIDLLiteObject *)
|
|
Packit |
712bc5 |
gupnp_didl_lite_writer_add_item (writer);
|
|
Packit |
712bc5 |
resource = gupnp_didl_lite_object_add_resource (object);
|
|
Packit |
712bc5 |
pi = gupnp_protocol_info_new ();
|
|
Packit |
712bc5 |
gupnp_protocol_info_set_protocol (pi, "http");
|
|
Packit |
712bc5 |
gupnp_protocol_info_set_mime_type (pi, "video/mp4");
|
|
Packit |
712bc5 |
gupnp_protocol_info_set_dlna_flags (pi, flags);
|
|
Packit |
712bc5 |
gupnp_didl_lite_resource_set_protocol_info (resource, pi);
|
|
Packit |
712bc5 |
g_object_unref (pi);
|
|
Packit |
712bc5 |
g_object_unref (resource);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
list = gupnp_didl_lite_object_get_resources (object);
|
|
Packit |
712bc5 |
g_assert_cmpint (g_list_length (list), ==, 1);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
resource = list->data;
|
|
Packit |
712bc5 |
pi = gupnp_didl_lite_resource_get_protocol_info (resource);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_assert_cmpint (gupnp_protocol_info_get_dlna_flags (pi), ==, flags);
|
|
Packit |
712bc5 |
g_object_unref (resource);
|
|
Packit |
712bc5 |
g_object_unref (object);
|
|
Packit |
712bc5 |
g_object_unref (writer);
|
|
Packit |
712bc5 |
}
|
|
Packit |
712bc5 |
#endif
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
int main (int argc, char *argv[])
|
|
Packit |
712bc5 |
{
|
|
Packit |
712bc5 |
#if !GLIB_CHECK_VERSION (2, 35, 0)
|
|
Packit |
712bc5 |
g_type_init ();
|
|
Packit |
712bc5 |
#endif
|
|
Packit |
712bc5 |
g_test_init (&argc, &argv, NULL);
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_test_add_func ("/bugs/gnome/674319", test_bgo674319);
|
|
Packit |
712bc5 |
g_test_add_func ("/bugs/gnome/687462", test_bgo687462);
|
|
Packit |
712bc5 |
g_test_add_func ("/bugs/gnome/705564", test_bgo705564);
|
|
Packit |
712bc5 |
/* g_test_add_func ("/bugs/gnome/753314", test_bgo753314); */
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
g_test_run ();
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
|
|
Packit |
712bc5 |
return 0;
|
|
Packit |
712bc5 |
}
|