annotate tests/rules/main.cpp @ 189:bb70bb9e41eb

Irccd: use native Duktape API
author David Demelier <markand@malikania.fr>
date Fri, 03 Jun 2016 13:28:10 +0200
parents 77f950caab35
children 6635b9187d71
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
1 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
2 * main.cpp -- test irccd rules
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
3 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr>
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
5 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
6 * Permission to use, copy, modify, and/or distribute this software for any
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
7 * purpose with or without fee is hereby granted, provided that the above
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
8 * copyright notice and this permission notice appear in all copies.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
9 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
17 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
18
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
19 #include <gtest/gtest.h>
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
20
95
1125d90b3b44 Misc: switch to .hpp, #477
David Demelier <markand@malikania.fr>
parents: 75
diff changeset
21 #include <irccd/rule.hpp>
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
22 #include <irccd/service-rule.hpp>
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
24 namespace irccd {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
25
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 * Simulate the following rules configuration:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 * # On all servers, each channel #staff can't use the onCommand event,
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * # everything else is allowed.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 * [rule] #1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 * servers = ""
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 * events = "onCommand"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 * action = drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 * # However, the same onCommand on #staff is allowed on server "unsafe"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 * [rule] #2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 * servers = "unsafe"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 * events = "onCommand"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 * action = accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 * # Plugin game is only allowed on server "malikania" and "localhost",
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 * # channel "#games" and events "onMessage, onCommand".
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
52 * # The first rule #3-1 disable the plugin game for every server, it is
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 * # reenabled again with the #3-2.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 * [rule] #3-1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 * plugins = "game"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 * action = drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 * [rule] #3-2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 * servers = "malikania localhost"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 * channels = "#games"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 * plugins = "game"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 * events = "onMessage onCommand"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 * action = accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 class RulesTest : public testing::Test {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 protected:
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
68 RuleService m_rules;
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
69
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 RulesTest()
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 // #1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 {
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
74 m_rules.add({
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 RuleSet{ }, // Servers
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 RuleSet{ "#staff" }, // Channels
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 RuleSet{ }, // Origins
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 RuleSet{ }, // Plugins
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 RuleSet{ "onCommand" }, // Events
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 RuleAction::Drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
81 });
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
82 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
83
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 // #2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 {
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
86 m_rules.add({
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 RuleSet{ "unsafe" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 RuleSet{ "#staff" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
89 RuleSet{ },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
90 RuleSet{ },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 RuleSet{ "onCommand" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 RuleAction::Accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
93 });
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
94 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
95
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 // #3-1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 {
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
98 m_rules.add({
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
99 RuleSet{},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
100 RuleSet{},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
101 RuleSet{},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 RuleSet{"game"},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 RuleSet{},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 RuleAction::Drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
105 });
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
106 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
107
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 // #3-2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 {
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
110 m_rules.add({
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 RuleSet{ "malikania", "localhost" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 RuleSet{ "#games" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 RuleSet{ },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 RuleSet{ "game" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 RuleSet{ "onCommand", "onMessage" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 RuleAction::Accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
117 });
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
118 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
119 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
120 };
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
121
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 TEST_F(RulesTest, basicMatch1)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 Rule m;
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
129 ASSERT_TRUE(m.match("freenode", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 ASSERT_TRUE(m.match("", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
132
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 TEST_F(RulesTest, basicMatch2)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 Rule m(RuleSet{"freenode"});
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
136
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 * servers = "freenode"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
140 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
141
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
142 ASSERT_TRUE(m.match("freenode", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 ASSERT_FALSE(m.match("malikania", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 ASSERT_TRUE(m.match("freenode", "", "jean", "", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
145 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
146
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 TEST_F(RulesTest, basicMatch3)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 Rule m(RuleSet{"freenode"}, RuleSet{"#staff"});
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
150
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 * servers = "freenode"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
154 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
156
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 ASSERT_TRUE(m.match("freenode", "#staff", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 ASSERT_FALSE(m.match("freenode", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 ASSERT_FALSE(m.match("malikania", "#staff", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
160 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
161
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 TEST_F(RulesTest, basicMatch4)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 Rule m(RuleSet{"malikania"}, RuleSet{"#staff"}, RuleSet{"a"});
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 * servers = "malikania"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
169 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 * plugins = "a"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
172
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 ASSERT_TRUE(m.match("malikania", "#staff", "a", "",""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 ASSERT_FALSE(m.match("malikania", "#staff", "b", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 ASSERT_FALSE(m.match("freenode", "#staff", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
176 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
177
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 TEST_F(RulesTest, complexMatch1)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 Rule m(RuleSet{"malikania", "freenode"});
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
181
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 * servers = "malikania freenode"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
185 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
186
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
187 ASSERT_TRUE(m.match("malikania", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 ASSERT_TRUE(m.match("freenode", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 ASSERT_FALSE(m.match("no", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
190 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
191
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 TEST_F(RulesTest, basicSolve)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 /* Allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
195 ASSERT_TRUE(m_rules.solve("malikania", "#staff", "", "a", "onMessage"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
196
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 /* Allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
198 ASSERT_TRUE(m_rules.solve("freenode", "#staff", "", "b", "onTopic"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
199
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
200 /* Not allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
201 ASSERT_FALSE(m_rules.solve("malikania", "#staff", "", "", "onCommand"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
202
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
203 /* Not allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
204 ASSERT_FALSE(m_rules.solve("freenode", "#staff", "", "c", "onCommand"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
205
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
206 /* Allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
207 ASSERT_TRUE(m_rules.solve("unsafe", "#staff", "", "c", "onCommand"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 TEST_F(RulesTest, gamesSolve)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 /* Allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
213 ASSERT_TRUE(m_rules.solve("malikania", "#games", "", "game", "onMessage"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
214
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 /* Allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
216 ASSERT_TRUE(m_rules.solve("localhost", "#games", "", "game", "onMessage"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
217
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
218 /* Allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
219 ASSERT_TRUE(m_rules.solve("malikania", "#games", "", "game", "onCommand"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
220
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
221 /* Not allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
222 ASSERT_FALSE(m_rules.solve("malikania", "#games", "", "game", "onQuery"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
223
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
224 /* Not allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
225 ASSERT_FALSE(m_rules.solve("freenode", "#no", "", "game", "onMessage"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
226
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
227 /* Not allowed */
127
77f950caab35 Irccd: implement RuleService, #498
David Demelier <markand@malikania.fr>
parents: 95
diff changeset
228 ASSERT_FALSE(m_rules.solve("malikania", "#test", "", "game", "onMessage"));
0
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
230
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 } // !irccd
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
232
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 int main(int argc, char **argv)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
234 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 testing::InitGoogleTest(&argc, argv);
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
236
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 return RUN_ALL_TESTS();
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 }