Blame tests/gtest/test-regression.c

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
}