Add initial unit tests for Provider
Largely cribbed from libhandy, thanks due to Guido.
This commit is contained in:
46
tests/meson.build
Normal file
46
tests/meson.build
Normal file
@@ -0,0 +1,46 @@
|
||||
if get_option('tests')
|
||||
|
||||
test_env = [
|
||||
'G_TEST_SRCDIR=@0@'.format(meson.current_source_dir()),
|
||||
'G_TEST_BUILDDIR=@0@'.format(meson.current_build_dir()),
|
||||
'G_DEBUG=gc-friendly,fatal-warnings',
|
||||
'GSETTINGS_BACKEND=memory',
|
||||
'PYTHONDONTWRITEBYTECODE=yes',
|
||||
'MALLOC_CHECK_=2',
|
||||
]
|
||||
|
||||
test_cflags = [
|
||||
'-fPIE',
|
||||
]
|
||||
|
||||
test_link_args = [
|
||||
'-fPIC',
|
||||
]
|
||||
|
||||
test_names = [
|
||||
'test-provider',
|
||||
]
|
||||
|
||||
test_calls_source_arrays = [ calls_sources, calls_dummy_sources ]
|
||||
|
||||
test_calls_sources = []
|
||||
foreach source_array : test_calls_source_arrays
|
||||
foreach source : source_array
|
||||
test_calls_sources += join_paths('..', 'src', source)
|
||||
endforeach
|
||||
endforeach
|
||||
|
||||
foreach test_name : test_names
|
||||
t = executable(test_name, test_name + '.c',
|
||||
test_calls_sources, calls_enum_sources, calls_resources,
|
||||
c_args : test_cflags,
|
||||
link_args: test_link_args,
|
||||
link_with : gdbofono_lib,
|
||||
dependencies: calls_deps,
|
||||
include_directories : include_directories('..',
|
||||
join_paths('..', 'src')),
|
||||
)
|
||||
test(test_name, t, env: test_env)
|
||||
endforeach
|
||||
|
||||
endif
|
||||
106
tests/test-provider.c
Normal file
106
tests/test-provider.c
Normal file
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright (C) 2018 Purism SPC
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-3.0+
|
||||
*/
|
||||
|
||||
#include "calls-dummy-provider.h"
|
||||
#include "calls-provider.h"
|
||||
#include "calls-origin.h"
|
||||
#include "calls-message-source.h"
|
||||
|
||||
#include <gtk/gtk.h>
|
||||
#include <string.h>
|
||||
|
||||
typedef struct {
|
||||
CallsDummyProvider *dummy_provider;
|
||||
} Fixture;
|
||||
|
||||
|
||||
static void
|
||||
test_dummy_provider_set_up (Fixture *fixture,
|
||||
gconstpointer user_data)
|
||||
{
|
||||
fixture->dummy_provider = calls_dummy_provider_new ();
|
||||
calls_dummy_provider_add_origin (fixture->dummy_provider,
|
||||
"Test origin 1");
|
||||
calls_dummy_provider_add_origin (fixture->dummy_provider,
|
||||
"Test origin 2");
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_dummy_provider_tear_down (Fixture *fixture,
|
||||
gconstpointer user_data)
|
||||
{
|
||||
g_clear_object (&fixture->dummy_provider);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_dummy_provider_object (Fixture *fixture,
|
||||
gconstpointer user_data)
|
||||
{
|
||||
g_assert_true (G_IS_OBJECT (fixture->dummy_provider));
|
||||
g_assert_true (CALLS_IS_MESSAGE_SOURCE (fixture->dummy_provider));
|
||||
g_assert_true (CALLS_IS_PROVIDER (fixture->dummy_provider));
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_dummy_provider_get_name (Fixture *fixture,
|
||||
gconstpointer user_data)
|
||||
{
|
||||
CallsProvider *provider;
|
||||
const gchar *name;
|
||||
|
||||
provider = CALLS_PROVIDER (fixture->dummy_provider);
|
||||
|
||||
name = calls_provider_get_name (provider);
|
||||
g_assert_nonnull (name);
|
||||
g_assert_cmpuint (strlen (name), >, 0U);
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
test_dummy_provider_get_origins (Fixture *fixture,
|
||||
gconstpointer user_data)
|
||||
{
|
||||
GList *origins, *node;
|
||||
|
||||
origins = calls_provider_get_origins
|
||||
(CALLS_PROVIDER (fixture->dummy_provider));
|
||||
|
||||
g_assert_cmpuint (g_list_length (origins), ==, 2);
|
||||
|
||||
for (node = origins; node; node = node->next)
|
||||
{
|
||||
g_assert_true (G_IS_OBJECT (node->data));
|
||||
g_assert_true (CALLS_IS_ORIGIN (node->data));
|
||||
}
|
||||
|
||||
g_list_free (origins);
|
||||
}
|
||||
|
||||
|
||||
gint
|
||||
main (gint argc,
|
||||
gchar *argv[])
|
||||
{
|
||||
gtk_test_init (&argc, &argv, NULL);
|
||||
|
||||
|
||||
#define add_test(name) \
|
||||
g_test_add ("/Calls/Provider/" #name, Fixture, NULL, \
|
||||
test_dummy_provider_set_up, \
|
||||
test_dummy_provider_##name, \
|
||||
test_dummy_provider_tear_down); \
|
||||
|
||||
add_test(object);
|
||||
add_test(get_name);
|
||||
add_test(get_origins);
|
||||
|
||||
#undef add_test
|
||||
|
||||
return g_test_run();
|
||||
}
|
||||
Reference in New Issue
Block a user