dconf 0.23.1
[dconf.git] / tests / paths.c
blob5774333fb36c6c44b19377e08bc57381de5b9696
1 #include "../common/dconf-paths.h"
3 static void
4 test_paths (void)
6 struct test_case {
7 const gchar *string;
8 guint flags;
9 } cases[] = {
11 #define invalid 0
12 #define path 001
13 #define key 002 | path
14 #define dir 004 | path
15 #define rel 010
16 #define relkey 020 | rel
17 #define reldir 040 | rel
19 { NULL, invalid },
20 { "", reldir },
21 { "/", dir },
23 { "/key", key },
24 { "/path/", dir },
25 { "/path/key", key },
26 { "/path/path/", dir },
27 { "/a/b", key },
28 { "/a/b/", dir },
30 { "//key", invalid },
31 { "//path/", invalid },
32 { "//path/key", invalid },
33 { "//path/path/", invalid },
34 { "//a/b", invalid },
35 { "//a/b/", invalid },
37 { "/key", key },
38 { "/path//", invalid },
39 { "/path/key", key },
40 { "/path/path//", invalid },
41 { "/a/b", key },
42 { "/a/b//", invalid },
44 { "/key", key },
45 { "/path/", dir },
46 { "/path//key", invalid },
47 { "/path//path/", invalid },
48 { "/a//b", invalid },
49 { "/a//b/", invalid },
51 { "key", relkey },
52 { "path/", reldir },
53 { "path/key", relkey },
54 { "path/path/", reldir },
55 { "a/b", relkey },
56 { "a/b/", reldir },
58 { "key", relkey },
59 { "path//", invalid },
60 { "path/key", relkey },
61 { "path/path//", invalid },
62 { "a/b", relkey },
63 { "a/b//", invalid },
65 { "key", relkey },
66 { "path/", reldir },
67 { "path//key", invalid },
68 { "path//path/", invalid },
69 { "a//b", invalid },
70 { "a//b/", invalid }
72 gint i;
74 for (i = 0; i < G_N_ELEMENTS (cases); i++)
76 const gchar *string = cases[i].string;
77 guint flags;
79 flags = (dconf_is_path (string, NULL) ? 001 : 000) |
80 (dconf_is_key (string, NULL) ? 002 : 000) |
81 (dconf_is_dir (string, NULL) ? 004 : 000) |
82 (dconf_is_rel_path (string, NULL) ? 010 : 000) |
83 (dconf_is_rel_key (string, NULL) ? 020 : 000) |
84 (dconf_is_rel_dir (string, NULL) ? 040 : 000);
86 g_assert_cmphex (flags, ==, cases[i].flags);
90 int
91 main (int argc, char **argv)
93 g_test_init (&argc, &argv, NULL);
95 g_test_add_func ("/paths", test_paths);
97 return g_test_run ();