annotate tests/rules/main.cpp @ 0:1158cffe5a5e

Initial import
author David Demelier <markand@malikania.fr>
date Mon, 08 Feb 2016 16:43:14 +0100
parents
children f8160d515a76
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
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
21 #include <rule.h>
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
22
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
23 namespace irccd {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
24
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
25 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
26 * Simulate the following rules configuration:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
27 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
28 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
29 * # On all servers, each channel #staff can't use the onCommand event,
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
30 * # everything else is allowed.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
31 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
32 * [rule] #1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
33 * servers = ""
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
34 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
35 * events = "onCommand"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
36 * action = drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
37 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
38 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
39 * # However, the same onCommand on #staff is allowed on server "unsafe"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
40 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
41 * [rule] #2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
42 * servers = "unsafe"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
43 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
44 * events = "onCommand"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
45 * action = accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
46 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
47 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
48 * # Plugin game is only allowed on server "malikania" and "localhost",
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
49 * # channel "#games" and events "onMessage, onCommand".
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
50 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
51 * # 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
52 * # reenabled again with the #3-2.
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
53 * #
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
54 * [rule] #3-1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
55 * plugins = "game"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
56 * action = drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
57 *
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
58 * [rule] #3-2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
59 * servers = "malikania localhost"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
60 * channels = "#games"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
61 * plugins = "game"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
62 * events = "onMessage onCommand"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
63 * action = accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
64 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
65 class RulesTest : public testing::Test {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
66 protected:
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
67 std::vector<Rule> m_rules;
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
68
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
69 RulesTest()
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
70 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
71 // #1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
72 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
73 m_rules.push_back({
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
74 RuleSet{ }, // Servers
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
75 RuleSet{ "#staff" }, // Channels
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
76 RuleSet{ }, // Origins
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
77 RuleSet{ }, // Plugins
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
78 RuleSet{ "onCommand" }, // Events
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
79 RuleAction::Drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
80 });
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 // #2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
84 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
85 m_rules.push_back({
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
86 RuleSet{ "unsafe" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
87 RuleSet{ "#staff" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
88 RuleSet{ },
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{ "onCommand" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
91 RuleAction::Accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
92 });
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 // #3-1
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
96 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
97 m_rules.push_back({
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
98 RuleSet{},
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{"game"},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
102 RuleSet{},
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
103 RuleAction::Drop
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
104 });
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 // #3-2
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
108 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
109 m_rules.push_back({
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
110 RuleSet{ "malikania", "localhost" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
111 RuleSet{ "#games" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
112 RuleSet{ },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
113 RuleSet{ "game" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
114 RuleSet{ "onCommand", "onMessage" },
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
115 RuleAction::Accept
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
116 });
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 ~RulesTest()
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
121 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
122 m_rules.clear();
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
123 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
124 };
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
125
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
126 TEST_F(RulesTest, basicMatch1)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
127 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
128 Rule m;
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
129
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
130 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
131 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
132 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
133 ASSERT_TRUE(m.match("freenode", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
134 ASSERT_TRUE(m.match("", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
135 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
136
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
137 TEST_F(RulesTest, basicMatch2)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
138 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
139 Rule m(RuleSet{"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 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
143 * servers = "freenode"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
144 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
145
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
146 ASSERT_TRUE(m.match("freenode", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
147 ASSERT_FALSE(m.match("malikania", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
148 ASSERT_TRUE(m.match("freenode", "", "jean", "", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
149 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
150
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
151 TEST_F(RulesTest, basicMatch3)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
152 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
153 Rule m(RuleSet{"freenode"}, RuleSet{"#staff"});
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
154
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
155 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
156 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
157 * servers = "freenode"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
158 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
159 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
160
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
161 ASSERT_TRUE(m.match("freenode", "#staff", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
162 ASSERT_FALSE(m.match("freenode", "#test", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
163 ASSERT_FALSE(m.match("malikania", "#staff", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
164 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
165
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
166 TEST_F(RulesTest, basicMatch4)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
167 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
168 Rule m(RuleSet{"malikania"}, RuleSet{"#staff"}, RuleSet{"a"});
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
169
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
170 /*
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
171 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
172 * servers = "malikania"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
173 * channels = "#staff"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
174 * plugins = "a"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
175 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
176
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
177 ASSERT_TRUE(m.match("malikania", "#staff", "a", "",""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
178 ASSERT_FALSE(m.match("malikania", "#staff", "b", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
179 ASSERT_FALSE(m.match("freenode", "#staff", "a", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
180 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
181
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
182 TEST_F(RulesTest, complexMatch1)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
183 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
184 Rule m(RuleSet{"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 * [rule]
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
188 * servers = "malikania freenode"
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
189 */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
190
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
191 ASSERT_TRUE(m.match("malikania", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
192 ASSERT_TRUE(m.match("freenode", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
193 ASSERT_FALSE(m.match("no", "", "", "", ""));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
194 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
195
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
196 TEST_F(RulesTest, basicSolve)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
197 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
198 /* Allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
199 ASSERT_TRUE(Rule::solve(m_rules, "malikania", "#staff", "", "a", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
200
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
201 /* Allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
202 ASSERT_TRUE(Rule::solve(m_rules, "freenode", "#staff", "", "b", "onTopic"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
203
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
204 /* Not allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
205 ASSERT_FALSE(Rule::solve(m_rules, "malikania", "#staff", "", "", "onCommand"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
206
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
207 /* Not allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
208 ASSERT_FALSE(Rule::solve(m_rules, "freenode", "#staff", "", "c", "onCommand"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
209
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
210 /* Allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
211 ASSERT_TRUE(Rule::solve(m_rules, "unsafe", "#staff", "", "c", "onCommand"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
212 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
213
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
214 TEST_F(RulesTest, gamesSolve)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
215 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
216 /* Allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
217 ASSERT_TRUE(Rule::solve(m_rules, "malikania", "#games", "", "game", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
218
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
219 /* Allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
220 ASSERT_TRUE(Rule::solve(m_rules, "localhost", "#games", "", "game", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
221
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
222 /* Allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
223 ASSERT_TRUE(Rule::solve(m_rules, "malikania", "#games", "", "game", "onCommand"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
224
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
225 /* Not allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
226 ASSERT_FALSE(Rule::solve(m_rules, "malikania", "#games", "", "game", "onQuery"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
227
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
228 /* Not allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
229 ASSERT_FALSE(Rule::solve(m_rules, "freenode", "#no", "", "game", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
230
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
231 /* Not allowed */
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
232 ASSERT_FALSE(Rule::solve(m_rules, "malikania", "#test", "", "game", "onMessage"));
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
233 }
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
234
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
235 } // !irccd
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
236
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
237 int main(int argc, char **argv)
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
238 {
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
239 testing::InitGoogleTest(&argc, argv);
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
240
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
241 return RUN_ALL_TESTS();
1158cffe5a5e Initial import
David Demelier <markand@malikania.fr>
parents:
diff changeset
242 }