# HG changeset patch # User Mikael Hallendal # Date 1224673960 -7200 # Node ID d2e9e1df6d827363be302c73a5538511f442ab0c # Parent 65e61128ef18bc5cae9c7446168b4e6a942df376 Added test code for lm-data-objects diff -r 65e61128ef18 -r d2e9e1df6d82 docs/reference/loudmouth-undeclared.txt diff -r 65e61128ef18 -r d2e9e1df6d82 loudmouth/lm-data-objects.c --- a/loudmouth/lm-data-objects.c Tue Oct 21 15:47:01 2008 +0200 +++ b/loudmouth/lm-data-objects.c Wed Oct 22 13:12:40 2008 +0200 @@ -22,7 +22,8 @@ #include "lm-data-objects.h" -static void auth_parameters_free (LmAuthParameters *params); +static void auth_parameters_free (LmAuthParameters *params); +static void connect_parameters_free (LmConnectParameters *params); struct LmAuthParameters { gchar *username; @@ -32,6 +33,14 @@ guint ref_count; }; +struct LmConnectParameters { + gchar *domain; + gchar *host; + guint port; + + guint ref_count; +}; + static void auth_parameters_free (LmAuthParameters *params) { @@ -42,6 +51,15 @@ g_slice_free (LmAuthParameters, params); } +static void +connect_parameters_free (LmConnectParameters *params) +{ + g_free (params->domain); + g_free (params->host); + + g_slice_free (LmConnectParameters, params); +} + LmAuthParameters * lm_auth_parameters_new (const gchar *username, const gchar *password, @@ -106,4 +124,68 @@ if (params->ref_count == 0) { auth_parameters_free (params); } +} + +LmConnectParameters * +lm_connect_parameters_new (const gchar *domain, + const gchar *host, + guint port) +{ + LmConnectParameters *params; + + params = g_slice_new0 (LmConnectParameters); + + params->domain = g_strdup (domain); + params->host = g_strdup (host); + params->port = port; + + params->ref_count = 1; + + return params; +} + +const gchar * +lm_connect_parameters_get_domain (LmConnectParameters *params) +{ + g_return_val_if_fail (params != NULL, NULL); + + return params->domain; +} + +const gchar * +lm_connect_parameters_get_host (LmConnectParameters *params) +{ + g_return_val_if_fail (params != NULL, NULL); + + return params->host; +} + +guint +lm_connect_parameters_get_port (LmConnectParameters *params) +{ + g_return_val_if_fail (params != NULL, 0); + + return params->port; +} + +LmConnectParameters * +lm_connect_parameters_ref (LmConnectParameters *params) +{ + g_return_val_if_fail (params != NULL, NULL); + + params->ref_count++; + + return params; +} + +void +lm_connect_parameters_unref (LmConnectParameters *params) +{ + g_return_if_fail (params != NULL); + + params->ref_count--; + + if (params->ref_count == 0) { + connect_parameters_free (params); + } } \ No newline at end of file diff -r 65e61128ef18 -r d2e9e1df6d82 loudmouth/lm-data-objects.h --- a/loudmouth/lm-data-objects.h Tue Oct 21 15:47:01 2008 +0200 +++ b/loudmouth/lm-data-objects.h Wed Oct 22 13:12:40 2008 +0200 @@ -20,7 +20,8 @@ #include -typedef struct LmAuthParameters LmAuthParameters; +typedef struct LmAuthParameters LmAuthParameters; +typedef struct LmConnectParameters LmConnectParameters; LmAuthParameters * lm_auth_parameters_new (const gchar *username, const gchar *password, @@ -31,4 +32,15 @@ const gchar * lm_auth_parameters_get_resource (LmAuthParameters *params); LmAuthParameters * lm_auth_parameters_ref (LmAuthParameters *params); -void lm_auth_parameters_unref (LmAuthParameters *params); \ No newline at end of file +void lm_auth_parameters_unref (LmAuthParameters *params); + +LmConnectParameters * lm_connect_parameters_new (const gchar *domain, + const gchar *host, + guint port); + +const gchar * lm_connect_parameters_get_domain (LmConnectParameters *params); +const gchar * lm_connect_parameters_get_host (LmConnectParameters *params); +guint lm_connect_parameters_get_port (LmConnectParameters *params); + +LmConnectParameters * lm_connect_parameters_ref (LmConnectParameters *params); +void lm_connect_parameters_unref (LmConnectParameters *params); \ No newline at end of file diff -r 65e61128ef18 -r d2e9e1df6d82 tests/Makefile.am --- a/tests/Makefile.am Tue Oct 21 15:47:01 2008 +0200 +++ b/tests/Makefile.am Wed Oct 22 13:12:40 2008 +0200 @@ -5,19 +5,25 @@ noinst_PROGRAMS = $(TEST_PROGS) TEST_PROGS = -TEST_PROGS += test-parser +TEST_PROGS += test-parser \ + test-data-objects + test_parser_SOURCES = \ - test-parser.c + test-parser.c + +test_data_objects_SOURCES = \ + test-data-objects.c \ + $(top_srcdir)/loudmouth/lm-data-objects.c AM_CPPFLAGS = \ - -I. \ - -I$(top_srcdir) \ - -DLM_COMPILATION \ - -DRUNTIME_ENDIAN \ - $(LOUDMOUTH_CFLAGS) \ - -DPARSER_TEST_DIR="\"$(top_srcdir)/tests/parser-tests\"" + -I. \ + -I$(top_srcdir) \ + -DLM_COMPILATION \ + -DRUNTIME_ENDIAN \ + $(LOUDMOUTH_CFLAGS) \ + -DPARSER_TEST_DIR="\"$(top_srcdir)/tests/parser-tests\"" LIBS = \ - $(LOUDMOUTH_LIBS) \ - $(top_builddir)/loudmouth/libloudmouth-1.la + $(LOUDMOUTH_LIBS) \ + $(top_builddir)/loudmouth/libloudmouth-1.la diff -r 65e61128ef18 -r d2e9e1df6d82 tests/test-data-objects.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-data-objects.c Wed Oct 22 13:12:40 2008 +0200 @@ -0,0 +1,62 @@ +/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ +/* + * Copyright (C) 2008 Imendio AB + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public License as + * published by the Free Software Foundation; either version 2 of the + * License, or (at your option) any later version. + * + * This program 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#include +#include + +#include "loudmouth/lm-data-objects.h" + +static void +test_auth_parameters () +{ + LmAuthParameters *params; + + params = lm_auth_parameters_new ("my_user", "my_pass", "my_resource"); + g_assert (g_strcmp0 ("my_user", lm_auth_parameters_get_username (params)) == 0); + g_assert (g_strcmp0 ("my_pass", lm_auth_parameters_get_password (params)) == 0); + g_assert (g_strcmp0 ("my_resource", lm_auth_parameters_get_resource (params)) == 0); + + lm_auth_parameters_unref (params); +} + +static void +test_connect_parameters () +{ + LmConnectParameters *params; + + params = lm_connect_parameters_new ("my_domain", "my_host", 5223); + g_assert (g_strcmp0 ("my_domain", lm_connect_parameters_get_domain (params)) == 0); + g_assert (g_strcmp0 ("my_host", lm_connect_parameters_get_host (params)) == 0); + g_assert (5223 == lm_connect_parameters_get_port (params)); + + lm_connect_parameters_unref (params); +} + +int +main (int argc, char **argv) +{ + g_test_init (&argc, &argv, NULL); + + g_test_add_func ("/data_objects/auth_paramters", test_auth_parameters); + g_test_add_func ("/data_objects/connect_parameters", test_connect_parameters); + + return g_test_run (); +} +