Mercurial > irccd
annotate tests/src/libirccd/server-util/main.cpp @ 779:317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
While here, also add some tests for server_util, #779
author | David Demelier <markand@malikania.fr> |
---|---|
date | Thu, 01 Nov 2018 10:34:21 +0100 |
parents | |
children | 7145a3df4cb7 |
rev | line source |
---|---|
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
1 /* |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
2 * main.cpp -- test server_util functions |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
3 * |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
4 * Copyright (c) 2013-2018 David Demelier <markand@malikania.fr> |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
5 * |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
6 * Permission to use, copy, modify, and/or distribute this software for any |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
7 * purpose with or without fee is hereby granted, provided that the above |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
8 * copyright notice and this permission notice appear in all copies. |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
9 * |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
17 */ |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
18 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
19 #define BOOST_TEST_MODULE "server_util" |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
20 #include <boost/test/unit_test.hpp> |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
21 #include <boost/filesystem.hpp> |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
22 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
23 #include <irccd/ini.hpp> |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
24 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
25 #include <irccd/daemon/server.hpp> |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
26 #include <irccd/daemon/server_util.hpp> |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
27 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
28 using nlohmann::json; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
29 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
30 using irccd::server_util::from_config; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
31 using irccd::server_util::from_json; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
32 using irccd::server_util::message_type; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
33 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 namespace irccd { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 namespace server_util { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 auto operator<<(std::ostream& out, message_type::kind kind) -> std::ostream& |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
40 if (kind == message_type::is_command) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 out << "command"; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 else |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 out << "message"; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 return out; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
47 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
48 } // !server_util |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 namespace { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 class fixture { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 protected: |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 boost::asio::io_service ctx_; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 }; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
56 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
57 auto open_config(const std::string& config) -> ini::document |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
59 boost::filesystem::path path; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 path /= CMAKE_CURRENT_SOURCE_DIR; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 path /= config; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 return ini::read_file(path.string()); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
66 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
67 auto open_json(const std::string& file) -> json |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
69 boost::filesystem::path path; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 path /= CMAKE_CURRENT_SOURCE_DIR; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 path /= file; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 std::ifstream input(path.string()); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 if (!input) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 throw std::runtime_error(std::strerror(errno)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 return json::parse(std::string(std::istreambuf_iterator<char>(input.rdbuf()), {})); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
81 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 BOOST_FIXTURE_TEST_SUITE(from_config, fixture) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
83 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 BOOST_AUTO_TEST_SUITE(valid) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 BOOST_AUTO_TEST_CASE(full) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 const auto sv = server_util::from_config(ctx_, open_config("full.conf")[0]); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
89 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 BOOST_TEST(sv->get_id() == "localhost"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 BOOST_TEST(sv->get_host() == "irc.localhost"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
92 BOOST_TEST(sv->get_port() == 3344U); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 BOOST_TEST(sv->get_password() == "secret"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 BOOST_TEST(sv->get_nickname() == "superbot"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 BOOST_TEST(sv->get_username() == "sp"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 BOOST_TEST(sv->get_realname() == "SuperBot 2000 NT"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::join_invite)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
98 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::auto_rejoin)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
99 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::auto_reconnect)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
100 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
101 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 #if defined(IRCCD_HAVE_SSL) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 BOOST_AUTO_TEST_CASE(ssl) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 const auto sv = server_util::from_config(ctx_, open_config("ssl.conf")[0]); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
107 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 BOOST_TEST(sv->get_id() == "localhost"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 BOOST_TEST(sv->get_host() == "irc.localhost"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
110 BOOST_TEST(sv->get_port() == 6697U); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 BOOST_TEST(sv->get_password() == "secret"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 BOOST_TEST(sv->get_nickname() == "secure"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 BOOST_TEST(sv->get_username() == "sc"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 BOOST_TEST(sv->get_realname() == "SuperBot 2000 NT SSL"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::ssl)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
116 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::join_invite)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
117 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::auto_rejoin)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
118 BOOST_TEST(static_cast<bool>(sv->get_options() & server::options::auto_reconnect)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
119 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
120 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 #endif // !IRCCD_HAVE_SSL |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 BOOST_FIXTURE_TEST_SUITE(from_json, fixture) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
128 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 BOOST_AUTO_TEST_SUITE(valid) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 BOOST_AUTO_TEST_CASE(full) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 const auto sv = server_util::from_json(ctx_, open_json("full.json")); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
134 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 BOOST_TEST(sv->get_id() == "localhost"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 BOOST_TEST(sv->get_host() == "irc.localhost"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
137 BOOST_TEST(sv->get_port() == 3344U); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 BOOST_TEST(sv->get_password() == "secret"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 BOOST_TEST(sv->get_nickname() == "superbot"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 BOOST_TEST(sv->get_username() == "sp"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 BOOST_TEST(sv->get_realname() == "SuperBot 2000 NT"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
143 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 BOOST_AUTO_TEST_SUITE(message) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 BOOST_AUTO_TEST_CASE(valid_short) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 const auto m = message_type::parse("!hello", "!", "hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
154 BOOST_TEST(m.type == message_type::is_command); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 BOOST_TEST(m.message == ""); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
156 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
157 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
158 BOOST_AUTO_TEST_CASE(valid_arguments) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 const auto m = message_type::parse("!hello world", "!", "hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
162 BOOST_TEST(m.type == message_type::is_command); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 BOOST_TEST(m.message == "world"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
164 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
165 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
166 BOOST_AUTO_TEST_CASE(cchar_with_message_short) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
168 const auto m = message_type::parse("!hello", "!", "hangman"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
170 BOOST_TEST(m.type == message_type::is_message); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 BOOST_TEST(m.message == "!hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
172 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
173 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
174 BOOST_AUTO_TEST_CASE(cchar_with_message_arguments) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
176 const auto m = message_type::parse("!hello world", "!", "hangman"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
178 BOOST_TEST(m.type == message_type::is_message); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 BOOST_TEST(m.message == "!hello world"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
180 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
181 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
182 BOOST_AUTO_TEST_CASE(command_with_different_cchar_short) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
184 const auto m = message_type::parse("!hello", ">", "hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
186 BOOST_TEST(m.type == message_type::is_message); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 BOOST_TEST(m.message == "!hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
188 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
189 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
190 BOOST_AUTO_TEST_CASE(command_with_different_cchar_arguments) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
192 const auto m = message_type::parse("!hello", ">", "hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
194 BOOST_TEST(m.type == message_type::is_message); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 BOOST_TEST(m.message == "!hello"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
196 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
197 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
198 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 } // !namespace |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 } // !irccd |