Mercurial > irccd
annotate tests/src/libirccd-daemon/server-util/main.cpp @ 809:8460b4a34191
misc: reorganize namespaces, closes #952 @4h
author | David Demelier <markand@malikania.fr> |
---|---|
date | Fri, 16 Nov 2018 12:25:00 +0100 |
parents | tests/src/libirccd/server-util/main.cpp@7145a3df4cb7 |
children | 06cc2f95f479 |
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 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
30 using irccd::daemon::server; |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
31 using irccd::daemon::server_util::from_config; |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
32 using irccd::daemon::server_util::from_json; |
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
33 using irccd::daemon::server_util::message_type; |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
34 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
35 namespace irccd { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
36 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
37 namespace server_util { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
38 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
39 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
|
40 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
41 if (kind == message_type::is_command) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
42 out << "command"; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
43 else |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
44 out << "message"; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
45 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
46 return out; |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
49 } // !server_util |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
50 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
51 namespace { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
52 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
53 class fixture { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
54 protected: |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
55 boost::asio::io_service ctx_; |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
58 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
|
59 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
60 boost::filesystem::path path; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
61 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
62 path /= CMAKE_CURRENT_SOURCE_DIR; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
63 path /= config; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
64 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
65 return ini::read_file(path.string()); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
68 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
|
69 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
70 boost::filesystem::path path; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
71 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
72 path /= CMAKE_CURRENT_SOURCE_DIR; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
73 path /= file; |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
74 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
75 std::ifstream input(path.string()); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
76 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
77 if (!input) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
78 throw std::runtime_error(std::strerror(errno)); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
79 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
80 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
|
81 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
82 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
83 BOOST_FIXTURE_TEST_SUITE(load_from_config, fixture) |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
84 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
85 BOOST_AUTO_TEST_SUITE(valid) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
86 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
87 BOOST_AUTO_TEST_CASE(full) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
88 { |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
89 const auto sv = from_config(ctx_, open_config("full.conf")[0]); |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
90 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
91 BOOST_TEST(sv->get_id() == "localhost"); |
785
7145a3df4cb7
misc: rename host to hostname, closes #941 @2h
David Demelier <markand@malikania.fr>
parents:
779
diff
changeset
|
92 BOOST_TEST(sv->get_hostname() == "irc.localhost"); |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
93 BOOST_TEST(sv->get_port() == 3344U); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
94 BOOST_TEST(sv->get_password() == "secret"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
95 BOOST_TEST(sv->get_nickname() == "superbot"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
96 BOOST_TEST(sv->get_username() == "sp"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
97 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
|
98 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
|
99 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
|
100 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
|
101 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
102 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
103 #if defined(IRCCD_HAVE_SSL) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
104 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
105 BOOST_AUTO_TEST_CASE(ssl) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
106 { |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
107 const auto sv = from_config(ctx_, open_config("ssl.conf")[0]); |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
108 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
109 BOOST_TEST(sv->get_id() == "localhost"); |
785
7145a3df4cb7
misc: rename host to hostname, closes #941 @2h
David Demelier <markand@malikania.fr>
parents:
779
diff
changeset
|
110 BOOST_TEST(sv->get_hostname() == "irc.localhost"); |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
111 BOOST_TEST(sv->get_port() == 6697U); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
112 BOOST_TEST(sv->get_password() == "secret"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
113 BOOST_TEST(sv->get_nickname() == "secure"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
114 BOOST_TEST(sv->get_username() == "sc"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
115 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
|
116 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
|
117 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
|
118 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
|
119 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
|
120 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
121 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
122 #endif // !IRCCD_HAVE_SSL |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
123 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
124 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
125 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
126 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
127 |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
128 BOOST_FIXTURE_TEST_SUITE(load_from_json, fixture) |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
129 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
130 BOOST_AUTO_TEST_SUITE(valid) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
131 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
132 BOOST_AUTO_TEST_CASE(full) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
133 { |
809
8460b4a34191
misc: reorganize namespaces, closes #952 @4h
David Demelier <markand@malikania.fr>
parents:
785
diff
changeset
|
134 const auto sv = from_json(ctx_, open_json("full.json")); |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
135 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
136 BOOST_TEST(sv->get_id() == "localhost"); |
785
7145a3df4cb7
misc: rename host to hostname, closes #941 @2h
David Demelier <markand@malikania.fr>
parents:
779
diff
changeset
|
137 BOOST_TEST(sv->get_hostname() == "irc.localhost"); |
779
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
138 BOOST_TEST(sv->get_port() == 3344U); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
139 BOOST_TEST(sv->get_password() == "secret"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
140 BOOST_TEST(sv->get_nickname() == "superbot"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
141 BOOST_TEST(sv->get_username() == "sp"); |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
142 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
|
143 } |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
144 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
145 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
146 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
147 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
148 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
149 BOOST_AUTO_TEST_SUITE(message) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
150 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
151 BOOST_AUTO_TEST_CASE(valid_short) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
152 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
153 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
|
154 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
155 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
|
156 BOOST_TEST(m.message == ""); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
159 BOOST_AUTO_TEST_CASE(valid_arguments) |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
160 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
161 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
|
162 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
163 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
|
164 BOOST_TEST(m.message == "world"); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
167 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
|
168 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
169 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
|
170 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
171 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
|
172 BOOST_TEST(m.message == "!hello"); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
175 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
|
176 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
177 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
|
178 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
179 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
|
180 BOOST_TEST(m.message == "!hello world"); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
183 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
|
184 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
185 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
|
186 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
187 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
|
188 BOOST_TEST(m.message == "!hello"); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
191 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
|
192 { |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
193 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
|
194 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
195 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
|
196 BOOST_TEST(m.message == "!hello"); |
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 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
199 BOOST_AUTO_TEST_SUITE_END() |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
200 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
201 } // !namespace |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
202 |
317c66a131be
Irccd: merge [identity] with [server], closes #905 @2h
David Demelier <markand@malikania.fr>
parents:
diff
changeset
|
203 } // !irccd |