Mercurial > irccd
annotate tests/plugin-auth/main.cpp @ 177:254bbc0f13b5
Misc: dos2unix some files
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 26 May 2016 18:52:09 +0200 |
parents | 70da13c626de |
children | 1c22fcce1662 |
rev | line source |
---|---|
177
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
1 /* |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
2 * main.cpp -- test auth plugin |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
3 * |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
4 * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
5 * |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
9 * |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
17 */ |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
18 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
19 #include <gtest/gtest.h> |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
20 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
21 #include <irccd/irccd.hpp> |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
22 #include <irccd/server.hpp> |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
23 #include <irccd/service-plugin.hpp> |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
24 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
25 using namespace irccd; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
26 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
27 class ServerTest : public Server { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
28 private: |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
29 std::string m_last; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
30 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
31 public: |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
32 inline ServerTest(std::string name) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
33 : Server(std::move(name), ServerInfo()) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
34 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
35 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
36 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
37 inline const std::string &last() const noexcept |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
38 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
39 return m_last; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
40 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
41 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
42 void message(std::string target, std::string message) override |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
43 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
44 m_last = util::join({target, message}); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
45 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
46 }; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
47 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
48 class AuthTest : public testing::Test { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
49 protected: |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
50 Irccd m_irccd; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
51 PluginService &m_ps; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
52 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
53 std::shared_ptr<ServerTest> m_nickserv1; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
54 std::shared_ptr<ServerTest> m_nickserv2; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
55 std::shared_ptr<ServerTest> m_quakenet; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
56 std::shared_ptr<Plugin> m_plugin; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
57 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
58 public: |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
59 AuthTest() |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
60 : m_ps(m_irccd.pluginService()) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
61 , m_nickserv1(std::make_shared<ServerTest>("nickserv1")) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
62 , m_nickserv2(std::make_shared<ServerTest>("nickserv2")) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
63 , m_quakenet(std::make_shared<ServerTest>("quakenet")) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
64 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
65 m_ps.configure("auth", { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
66 { "nickserv1.type", "nickserv" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
67 { "nickserv1.password", "plopation" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
68 { "nickserv2.type", "nickserv" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
69 { "nickserv2.password", "something" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
70 { "nickserv2.username", "jean" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
71 { "quakenet.type", "quakenet" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
72 { "quakenet.password", "hello" }, |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
73 { "quakenet.username", "mario" } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
74 }); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
75 m_ps.load("auth", PLUGINDIR "/auth.js"); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
76 m_plugin = m_ps.require("auth"); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
77 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
78 }; |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
79 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
80 TEST_F(AuthTest, nickserv1) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
81 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
82 m_plugin->onConnect(m_irccd, m_nickserv1); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
83 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
84 ASSERT_EQ("NickServ:identify plopation", m_nickserv1->last()); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
85 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
86 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
87 TEST_F(AuthTest, nickserv2) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
88 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
89 m_plugin->onConnect(m_irccd, m_nickserv2); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
90 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
91 ASSERT_EQ("NickServ:identify jean something", m_nickserv2->last()); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
92 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
93 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
94 TEST_F(AuthTest, quakenet) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
95 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
96 m_plugin->onConnect(m_irccd, m_quakenet); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
97 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
98 ASSERT_EQ("Q@CServe.quakenet.org:AUTH mario hello", m_quakenet->last()); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
99 } |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
100 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
101 int main(int argc, char **argv) |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
102 { |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
103 path::setApplicationPath(argv[0]); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
104 testing::InitGoogleTest(&argc, argv); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
105 |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
106 return RUN_ALL_TESTS(); |
254bbc0f13b5
Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents:
153
diff
changeset
|
107 } |