annotate tests/plugin-auth/main.cpp @ 524:ba81aeb514b8

Irccd: change loading order in js_plugin, #678 To open a Javascript plugin, several steps are required in this order: 1. create Duktape heap, 2. load Javascript modules, 3. open the file 4. apply user configuration This order is important as it let the plugin setting defaults values that can be overriden by the user.
author David Demelier <markand@malikania.fr>
date Tue, 14 Nov 2017 19:54:32 +0100
parents 349fe29d86d5
children 68032209609d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 *
394
c6fbb6e0e06d Happy new year!
David Demelier <markand@malikania.fr>
parents: 350
diff changeset
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr>
177
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
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
19 #define BOOST_TEST_MODULE "Auth plugin"
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
20 #include <boost/test/unit_test.hpp>
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
21
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
22 #include <irccd/irccd.hpp>
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
23 #include <irccd/server.hpp>
350
287e9ede5eef Tests: unbreak some
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
24 #include <irccd/service.hpp>
287e9ede5eef Tests: unbreak some
David Demelier <markand@malikania.fr>
parents: 250
diff changeset
25
487
beb6c638b841 Tests: create plugin_test fixture, closes #677
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
26 #include "plugin_test.hpp"
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
27
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
28 namespace irccd {
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
29
487
beb6c638b841 Tests: create plugin_test fixture, closes #677
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
30 class auth_test : public plugin_test {
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
31 protected:
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
32 std::shared_ptr<journal_server> nickserv1_;
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
33 std::shared_ptr<journal_server> nickserv2_;
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
34 std::shared_ptr<journal_server> quakenet_;
177
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 public:
487
beb6c638b841 Tests: create plugin_test fixture, closes #677
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
37 auth_test()
beb6c638b841 Tests: create plugin_test fixture, closes #677
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
38 : plugin_test(PLUGIN_NAME, PLUGIN_PATH)
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
39 , nickserv1_(std::make_shared<journal_server>("nickserv1"))
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
40 , nickserv2_(std::make_shared<journal_server>("nickserv2"))
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
41 , quakenet_(std::make_shared<journal_server>("quakenet"))
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
42 {
487
beb6c638b841 Tests: create plugin_test fixture, closes #677
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
43 plugin_->set_config({
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
44 { "nickserv1.type", "nickserv" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
45 { "nickserv1.password", "plopation" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
46 { "nickserv2.type", "nickserv" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
47 { "nickserv2.password", "something" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
48 { "nickserv2.username", "jean" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
49 { "quakenet.type", "quakenet" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
50 { "quakenet.password", "hello" },
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
51 { "quakenet.username", "mario" }
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
52 });
487
beb6c638b841 Tests: create plugin_test fixture, closes #677
David Demelier <markand@malikania.fr>
parents: 486
diff changeset
53 plugin_->on_load(irccd_);
207
6635b9187d71 Irccd: switch to 4 spaces indent, #518
David Demelier <markand@malikania.fr>
parents: 195
diff changeset
54 }
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
55 };
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
56
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
57 BOOST_FIXTURE_TEST_SUITE(auth_test_suite, auth_test)
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
58
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
59 BOOST_AUTO_TEST_CASE(nickserv1)
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
60 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 487
diff changeset
61 plugin_->on_connect(irccd_, {nickserv1_});
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
62
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
63 auto cmd = nickserv1_->cqueue().front();
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
64
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
65 BOOST_REQUIRE_EQUAL(cmd["command"].get<std::string>(), "message");
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
66 BOOST_REQUIRE_EQUAL(cmd["target"].get<std::string>(), "NickServ");
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
67 BOOST_REQUIRE_EQUAL(cmd["message"].get<std::string>(), "identify plopation");
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
68 }
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
69
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
70 BOOST_AUTO_TEST_CASE(nickserv2)
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
71 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 487
diff changeset
72 plugin_->on_connect(irccd_, {nickserv2_});
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
73
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
74 auto cmd = nickserv2_->cqueue().front();
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
75
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
76 BOOST_REQUIRE_EQUAL(cmd["command"].get<std::string>(), "message");
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
77 BOOST_REQUIRE_EQUAL(cmd["target"].get<std::string>(), "NickServ");
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
78 BOOST_REQUIRE_EQUAL(cmd["message"].get<std::string>(), "identify jean something");
177
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
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
81 BOOST_AUTO_TEST_CASE(quakenet)
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
82 {
488
7e273b7f4f92 Irccd: new coding style, closes #576
David Demelier <markand@malikania.fr>
parents: 487
diff changeset
83 plugin_->on_connect(irccd_, {quakenet_});
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
84
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
85 auto cmd = quakenet_->cqueue().front();
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
86
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
87 BOOST_REQUIRE_EQUAL(cmd["command"].get<std::string>(), "message");
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
88 BOOST_REQUIRE_EQUAL(cmd["target"].get<std::string>(), "Q@CServe.quakenet.org");
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
89 BOOST_REQUIRE_EQUAL(cmd["message"].get<std::string>(), "AUTH mario hello");
177
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
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
92 BOOST_AUTO_TEST_SUITE_END()
177
254bbc0f13b5 Misc: dos2unix some files
David Demelier <markand@malikania.fr>
parents: 153
diff changeset
93
489
349fe29d86d5 Tests: switch to Boost, closes #680
David Demelier <markand@malikania.fr>
parents: 488
diff changeset
94 } // !irccd