Mercurial > irccd
comparison tests/service-plugin/main.cpp @ 486:0b156b82b8c1
Irccd: rework of paths, closes #611
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 20 Jul 2017 15:12:41 +0200 |
parents | |
children | 7e273b7f4f92 |
comparison
equal
deleted
inserted
replaced
485:daf3aa8b2ddb | 486:0b156b82b8c1 |
---|---|
1 /* | |
2 * main.cpp -- test irccd rules | |
3 * | |
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #include <gtest/gtest.h> | |
20 | |
21 #include <irccd/irccd.hpp> | |
22 #include <irccd/service.hpp> | |
23 | |
24 namespace irccd { | |
25 | |
26 TEST(service_plugin, default_paths) | |
27 { | |
28 Irccd irccd; | |
29 | |
30 irccd.plugins().setPaths({ | |
31 { "cache", "/var/cache/irccd" }, | |
32 { "config", "/etc/irccd" }, | |
33 { "data", "/usr/local/share/irccd" } | |
34 }); | |
35 | |
36 auto paths = irccd.plugins().paths("ask"); | |
37 | |
38 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]); | |
39 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]); | |
40 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]); | |
41 } | |
42 | |
43 TEST(service_plugin, override_cache) | |
44 { | |
45 Irccd irccd; | |
46 | |
47 irccd.plugins().setPaths({ | |
48 { "cache", "/var/cache/irccd" }, | |
49 { "config", "/etc/irccd" }, | |
50 { "data", "/usr/local/share/irccd" } | |
51 }); | |
52 irccd.plugins().setPaths("ask", { | |
53 { "cache", "/opt/cache/ask" } | |
54 }); | |
55 | |
56 auto paths = irccd.plugins().paths("ask"); | |
57 | |
58 ASSERT_EQ("/opt/cache/ask", paths["cache"]); | |
59 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]); | |
60 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]); | |
61 } | |
62 | |
63 TEST(service_plugin, override_config) | |
64 { | |
65 Irccd irccd; | |
66 | |
67 irccd.plugins().setPaths({ | |
68 { "cache", "/var/cache/irccd" }, | |
69 { "config", "/etc/irccd" }, | |
70 { "data", "/usr/local/share/irccd" } | |
71 }); | |
72 irccd.plugins().setPaths("ask", { | |
73 { "config", "/opt/config/ask" } | |
74 }); | |
75 | |
76 auto paths = irccd.plugins().paths("ask"); | |
77 | |
78 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]); | |
79 ASSERT_EQ("/opt/config/ask", paths["config"]); | |
80 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]); | |
81 } | |
82 | |
83 TEST(service_plugin, override_data) | |
84 { | |
85 Irccd irccd; | |
86 | |
87 irccd.plugins().setPaths({ | |
88 { "cache", "/var/cache/irccd" }, | |
89 { "config", "/etc/irccd" }, | |
90 { "data", "/usr/local/share/irccd" } | |
91 }); | |
92 irccd.plugins().setPaths("ask", { | |
93 { "data", "/opt/data/ask" } | |
94 }); | |
95 | |
96 auto paths = irccd.plugins().paths("ask"); | |
97 | |
98 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]); | |
99 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]); | |
100 ASSERT_EQ("/opt/data/ask", paths["data"]); | |
101 } | |
102 | |
103 TEST(service_plugin, override_all) | |
104 { | |
105 Irccd irccd; | |
106 | |
107 irccd.plugins().setPaths({ | |
108 { "cache", "/var/cache/irccd" }, | |
109 { "config", "/etc/irccd" }, | |
110 { "data", "/usr/local/share/irccd" } | |
111 }); | |
112 irccd.plugins().setPaths("ask", { | |
113 { "cache", "/opt/cache/ask" }, | |
114 { "config", "/opt/config/ask" }, | |
115 { "data", "/opt/data/ask" } | |
116 }); | |
117 | |
118 auto paths = irccd.plugins().paths("ask"); | |
119 | |
120 ASSERT_EQ("/opt/cache/ask", paths["cache"]); | |
121 ASSERT_EQ("/opt/config/ask", paths["config"]); | |
122 ASSERT_EQ("/opt/data/ask", paths["data"]); | |
123 } | |
124 | |
125 TEST(service_plugin, extra_paths) | |
126 { | |
127 Irccd irccd; | |
128 | |
129 irccd.plugins().setPaths({ | |
130 { "cache", "/var/cache/irccd" }, | |
131 { "config", "/etc/irccd" }, | |
132 { "data", "/usr/local/share/irccd" } | |
133 }); | |
134 irccd.plugins().setPaths("ask", { | |
135 { "extra", "/opt/magic" } | |
136 }); | |
137 | |
138 auto paths = irccd.plugins().paths("ask"); | |
139 | |
140 ASSERT_EQ("/var/cache/irccd/plugin/ask", paths["cache"]); | |
141 ASSERT_EQ("/etc/irccd/plugin/ask", paths["config"]); | |
142 ASSERT_EQ("/usr/local/share/irccd/plugin/ask", paths["data"]); | |
143 ASSERT_EQ("/opt/magic", paths["extra"]); | |
144 } | |
145 | |
146 } // !irccd | |
147 | |
148 int main(int argc, char **argv) | |
149 { | |
150 testing::InitGoogleTest(&argc, argv); | |
151 | |
152 return RUN_ALL_TESTS(); | |
153 } |