Mercurial > irccd
comparison tests/js-plugin/main.cpp @ 522:683eb8ad79d1
Irccd: do not set config in js_plugin load, closes #678
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 13 Nov 2017 19:34:52 +0100 |
parents | |
children | ba81aeb514b8 |
comparison
equal
deleted
inserted
replaced
521:e03521cf207b | 522:683eb8ad79d1 |
---|---|
1 /* | |
2 * main.cpp -- test js_plugin object | |
3 * | |
4 * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr> | |
5 * | |
6 * Permission to use, copy, modify, and/or distribute this software for any | |
7 * purpose with or without fee is hereby granted, provided that the above | |
8 * copyright notice and this permission notice appear in all copies. | |
9 * | |
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
17 */ | |
18 | |
19 #define BOOST_TEST_MODULE "Javascript plugin object" | |
20 #include <boost/test/unit_test.hpp> | |
21 | |
22 #include <irccd/irccd.hpp> | |
23 #include <irccd/js_plugin.hpp> | |
24 #include <irccd/js_irccd_module.hpp> | |
25 #include <irccd/js_plugin_module.hpp> | |
26 | |
27 namespace irccd { | |
28 | |
29 class test { | |
30 protected: | |
31 irccd irccd_; | |
32 std::shared_ptr<js_plugin> plugin_; | |
33 | |
34 void load(std::string name, std::string path) | |
35 { | |
36 plugin_ = std::make_unique<js_plugin>(std::move(name), std::move(path)); | |
37 | |
38 js_irccd_module().load(irccd_, plugin_); | |
39 js_plugin_module().load(irccd_, plugin_); | |
40 } | |
41 }; | |
42 | |
43 BOOST_FIXTURE_TEST_SUITE(test_suite, test) | |
44 | |
45 BOOST_AUTO_TEST_CASE(assign) | |
46 { | |
47 load("assign", CMAKE_CURRENT_SOURCE_DIR "/config-assign.js"); | |
48 | |
49 plugin_->set_config({ | |
50 { "key2", "value2" } | |
51 }); | |
52 plugin_->on_load(irccd_); | |
53 | |
54 BOOST_TEST(plugin_->config().at("key1") == "value1"); | |
55 BOOST_TEST(plugin_->config().at("key2") == "value2"); | |
56 } | |
57 | |
58 BOOST_AUTO_TEST_CASE(fill) | |
59 { | |
60 load("assign", CMAKE_CURRENT_SOURCE_DIR "/config-fill.js"); | |
61 | |
62 plugin_->set_config({ | |
63 { "key2", "value2" } | |
64 }); | |
65 plugin_->on_load(irccd_); | |
66 | |
67 BOOST_TEST(plugin_->config().at("key1") == "value1"); | |
68 BOOST_TEST(plugin_->config().at("key2") == "value2"); | |
69 } | |
70 | |
71 BOOST_AUTO_TEST_CASE(merge_after) | |
72 { | |
73 load("assign", CMAKE_CURRENT_SOURCE_DIR "/config-fill.js"); | |
74 | |
75 plugin_->on_load(irccd_); | |
76 plugin_->set_config({ | |
77 { "key2", "value2" } | |
78 }); | |
79 | |
80 BOOST_TEST(plugin_->config().at("key1") == "value1"); | |
81 BOOST_TEST(plugin_->config().at("key2") == "value2"); | |
82 } | |
83 | |
84 BOOST_AUTO_TEST_SUITE_END() | |
85 | |
86 } // !irccd |