File: test_setting.c

package info (click to toggle)
girara 0.4.5-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 684 kB
  • sloc: ansic: 5,849; makefile: 8; xml: 6
file content (80 lines) | stat: -rw-r--r-- 2,501 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
/* SPDX-License-Identifier: Zlib */

#include "session.h"
#include "settings.h"

#include "tests.h"

static void test_settings_basic(void) {
  setup_logger();

  girara_session_t* session = girara_session_create();
  g_assert_nonnull(session);

  g_assert_true(girara_setting_add(session, "test", NULL, STRING, false, NULL, NULL, NULL));
  char* ptr = NULL;
  g_assert_true(girara_setting_get(session, "test", &ptr));
  g_assert_null(ptr);

  g_assert_true(girara_setting_set(session, "test", "value"));
  g_assert_true(girara_setting_get(session, "test", &ptr));
  g_assert_cmpstr(ptr, ==, "value");
  g_free(ptr);

  ptr = NULL;
  g_assert_false(girara_setting_get(session, "does-not-exist", &ptr));
  g_assert_null(ptr);

  g_assert_true(girara_setting_add(session, "test2", "value", STRING, false, NULL, NULL, NULL));
  g_assert_true(girara_setting_get(session, "test2", &ptr));
  g_assert_cmpstr(ptr, ==, "value");
  g_free(ptr);

  ptr = NULL;
  g_assert_false(girara_setting_add(session, "test3", NULL, INT, false, NULL, NULL, NULL));
  g_assert_false(girara_setting_get(session, "test3", &ptr));
  g_assert_null(ptr);

  float val = 0.0, rval = 0.0;
  g_assert_true(girara_setting_add(session, "test4", &val, FLOAT, false, NULL, NULL, NULL));
  g_assert_true(girara_setting_get(session, "test4", &rval));
  g_assert_cmpfloat(val, ==, rval);

  girara_session_destroy(session);
}

static int callback_called = 0;

static void setting_callback(girara_session_t* session, const char* name, girara_setting_type_t type, const void* value,
                             void* data) {
  g_assert_cmpuint(callback_called, ==, 0);
  g_assert_nonnull(session);
  g_assert_cmpstr(name, ==, "test");
  g_assert_cmpuint(type, ==, STRING);
  g_assert_cmpstr(value, ==, "value");
  g_assert_cmpstr(data, ==, "data");
  callback_called++;
}

static void test_settings_callback(void) {
  setup_logger();

  girara_session_t* session = girara_session_create();
  g_assert_nonnull(session);

  g_assert_true(girara_setting_add(session, "test", "oldvalue", STRING, false, NULL, setting_callback, "data"));
  g_assert_true(girara_setting_set(session, "test", "value"));
  g_assert_cmpuint(callback_called, ==, 1);

  girara_session_destroy(session);
}

int main(int argc, char* argv[]) {
  setup_logger();

  gtk_init(NULL, NULL);
  g_test_init(&argc, &argv, NULL);
  g_test_add_func("/settings/basic", test_settings_basic);
  g_test_add_func("/settings/callback", test_settings_callback);
  return g_test_run();
}