Mercurial > irccd
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 |
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 | 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 | 24 #include <irccd/service.hpp> |
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 |