Mercurial > irccd
changeset 350:287e9ede5eef
Tests: unbreak some
line wrap: on
line diff
--- a/irccd/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/irccd/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -300,10 +300,10 @@ #if defined(WITH_JS) auto loader = std::make_unique<JsPluginLoader>(*instance); + loader->addModule(std::make_unique<IrccdModule>()); loader->addModule(std::make_unique<DirectoryModule>()); loader->addModule(std::make_unique<ElapsedTimerModule>()); loader->addModule(std::make_unique<FileModule>()); - loader->addModule(std::make_unique<IrccdModule>()); loader->addModule(std::make_unique<LoggerModule>()); loader->addModule(std::make_unique<PluginModule>()); loader->addModule(std::make_unique<ServerModule>());
--- a/libcommon/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/libcommon/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -40,5 +40,7 @@ $<$<BOOL:${WITH_SSL}>:OpenSSL::Crypto> PUBLIC_INCLUDES $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include/irccd> + $<BUILD_INTERFACE:${IRCCD_FAKEROOTDIR}/include> $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}/irccd> + $<BUILD_INTERFACE:${libcommon_SOURCE_DIR}> )
--- a/libirccd-js/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/libirccd-js/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -45,5 +45,7 @@ ${HEADERS} ${SOURCES} LIBRARIES extern-duktape libirccd - PUBLIC_INCLUDES ${libirccd-js_SOURCE_DIR}/irccd + PUBLIC_INCLUDES + $<BUILD_INTERFACE:${libirccd-js_SOURCE_DIR}/irccd> + $<BUILD_INTERFACE:${libirccd-js_SOURCE_DIR}> )
--- a/libirccd-js/irccd/mod-plugin.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/libirccd-js/irccd/mod-plugin.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -187,30 +187,28 @@ */ duk_idx_t info(duk_context *ctx) { -#if 0 - std::shared_ptr<Plugin> plugin; + Plugin *plugin = nullptr; if (duk_get_top(ctx) >= 1) - plugin = dukx_get_irccd(ctx).plugins().get(duk_require_string(ctx, 0)); + plugin = dukx_get_irccd(ctx).plugins().get(duk_require_string(ctx, 0)).get(); else - plugin = dukx_get_plugin(ctx); + plugin = &dukx_get_plugin(ctx); if (!plugin) return 0; duk_push_object(ctx); - dukx_push_std_string(ctx, plugin.name()); + dukx_push_std_string(ctx, plugin->name()); duk_put_prop_string(ctx, -2, "name"); - dukx_push_std_string(ctx, plugin.author()); + dukx_push_std_string(ctx, plugin->author()); duk_put_prop_string(ctx, -2, "author"); - dukx_push_std_string(ctx, plugin.license()); + dukx_push_std_string(ctx, plugin->license()); duk_put_prop_string(ctx, -2, "license"); - dukx_push_std_string(ctx, plugin.summary()); + dukx_push_std_string(ctx, plugin->summary()); duk_put_prop_string(ctx, -2, "summary"); - dukx_push_std_string(ctx, plugin.version()); + dukx_push_std_string(ctx, plugin->version()); duk_put_prop_string(ctx, -2, "version"); -#endif return 1; } @@ -225,11 +223,9 @@ */ duk_idx_t list(duk_context *ctx) { -#if 0 dukx_push_array(ctx, dukx_get_irccd(ctx).plugins().list(), [] (auto ctx, auto plugin) { - dukx_push_std_string(ctx, plugin.name()); + dukx_push_std_string(ctx, plugin->name()); }); -#endif return 1; }
--- a/libirccd-test/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/libirccd-test/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -5,9 +5,11 @@ SOURCES ${libirccd-test_SOURCE_DIR}/irccd/command-tester.cpp ${libirccd-test_SOURCE_DIR}/irccd/command-tester.hpp + ${libirccd-test_SOURCE_DIR}/irccd/plugin-tester.cpp + ${libirccd-test_SOURCE_DIR}/irccd/plugin-tester.hpp ${libirccd-test_SOURCE_DIR}/irccd/server-tester.cpp ${libirccd-test_SOURCE_DIR}/irccd/server-tester.hpp - LIBRARIES libirccd libirccdctl extern-gtest + LIBRARIES libirccd-js libirccdctl extern-gtest PUBLIC_INCLUDES $<BUILD_INTERFACE:${libirccd-test_SOURCE_DIR}/irccd> )
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libirccd-test/irccd/plugin-tester.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -0,0 +1,55 @@ +/* + * plugin-tester.cpp -- test fixture helper for javascript plugins + * + * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#include "mod-directory.hpp" +#include "mod-elapsed-timer.hpp" +#include "mod-file.hpp" +#include "mod-irccd.hpp" +#include "mod-logger.hpp" +#include "mod-plugin.hpp" +#include "mod-server.hpp" +#include "mod-system.hpp" +#include "mod-timer.hpp" +#include "mod-unicode.hpp" +#include "mod-util.hpp" +#include "plugin-js.hpp" +#include "plugin-tester.hpp" +#include "service.hpp" + +namespace irccd { + +PluginTester::PluginTester() +{ + auto loader = std::make_unique<JsPluginLoader>(m_irccd); + + loader->addModule(std::make_unique<IrccdModule>()); + loader->addModule(std::make_unique<DirectoryModule>()); + loader->addModule(std::make_unique<ElapsedTimerModule>()); + loader->addModule(std::make_unique<FileModule>()); + loader->addModule(std::make_unique<LoggerModule>()); + loader->addModule(std::make_unique<PluginModule>()); + loader->addModule(std::make_unique<ServerModule>()); + loader->addModule(std::make_unique<SystemModule>()); + loader->addModule(std::make_unique<TimerModule>()); + loader->addModule(std::make_unique<UnicodeModule>()); + loader->addModule(std::make_unique<UtilModule>()); + + m_irccd.plugins().addLoader(std::move(loader)); +} + +} // !irccd
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/libirccd-test/irccd/plugin-tester.hpp Mon Nov 14 13:11:16 2016 +0100 @@ -0,0 +1,38 @@ +/* + * plugin-tester.hpp -- test fixture helper for javascript plugins + * + * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> + * + * Permission to use, copy, modify, and/or distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef IRCCD_PLUGIN_TESTER_HPP +#define IRCCD_PLUGIN_TESTER_HPP + +#include <gtest/gtest.h> + +#include "irccd.hpp" + +namespace irccd { + +class PluginTester : public testing::Test { +protected: + Irccd m_irccd; + +public: + PluginTester(); +}; + +} // !irccd + +#endif // !IRCCD_PLUGIN_TESTER_HPP
--- a/libirccd/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/libirccd/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -35,4 +35,6 @@ LIBRARIES extern-ircclient libcommon PUBLIC_INCLUDES $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}/irccd> + $<BUILD_INTERFACE:${libirccd_SOURCE_DIR}> + $<INSTALL_INTERFACE:${WITH_INCLUDEDIR}> )
--- a/tests/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -44,30 +44,29 @@ add_subdirectory(cmd-server-reconnect) add_subdirectory(cmd-server-topic) -# # Misc -# add_subdirectory(command) -# add_subdirectory(elapsedtimer) -# add_subdirectory(logger) -# add_subdirectory(path) -# add_subdirectory(rules) -# add_subdirectory(timer) -# add_subdirectory(util) -# -# # JS API -# if (WITH_JS) -# add_subdirectory(js-elapsedtimer) -# add_subdirectory(js-file) -# add_subdirectory(js-irccd) -# add_subdirectory(js-logger) -# add_subdirectory(js-system) -# add_subdirectory(js-timer) -# add_subdirectory(js-unicode) -# add_subdirectory(js-util) -# add_subdirectory(plugin-ask) -# add_subdirectory(plugin-auth) -# add_subdirectory(plugin-hangman) -# add_subdirectory(plugin-history) -# add_subdirectory(plugin-logger) -# add_subdirectory(plugin-plugin) -# endif () + # Misc + add_subdirectory(elapsedtimer) + add_subdirectory(logger) + add_subdirectory(path) + add_subdirectory(rules) + add_subdirectory(timer) + add_subdirectory(util) + + # JS API + if (WITH_JS) + add_subdirectory(js-elapsedtimer) + add_subdirectory(js-file) + add_subdirectory(js-irccd) + add_subdirectory(js-logger) + add_subdirectory(js-system) + add_subdirectory(js-timer) + add_subdirectory(js-unicode) + add_subdirectory(js-util) + add_subdirectory(plugin-ask) + add_subdirectory(plugin-auth) + add_subdirectory(plugin-hangman) + add_subdirectory(plugin-history) + add_subdirectory(plugin-logger) + add_subdirectory(plugin-plugin) + endif () endif ()
--- a/tests/command/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -# -# CMakeLists.txt -- CMake build system for irccd -# -# Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> -# -# Permission to use, copy, modify, and/or distribute this software for any -# purpose with or without fee is hereby granted, provided that the above -# copyright notice and this permission notice appear in all copies. -# -# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES -# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF -# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR -# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN -# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF -# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# - -irccd_define_test( - NAME command - SOURCES main.cpp - LIBRARIES libirccd -)
--- a/tests/command/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* - * main.cpp -- test Command class - * - * Copyright (c) 2013-2016 David Demelier <markand@malikania.fr> - * - * Permission to use, copy, modify, and/or distribute this software for any - * purpose with or without fee is hereby granted, provided that the above - * copyright notice and this permission notice appear in all copies. - * - * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES - * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR - * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES - * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN - * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF - * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - */ - -#include <gtest/gtest.h> - -#include <irccd/command.hpp> - -using namespace irccd; - -class MyCommand : public Command { -public: - MyCommand() - : Command("test", "Test", "This is a super command") - { - } - - std::vector<Property> properties() const - { - return { - { "b", { nlohmann::json::value_t::boolean }}, - { "i", { nlohmann::json::value_t::number_integer }}, - { "m", { - nlohmann::json::value_t::boolean, - nlohmann::json::value_t::number_integer, - nlohmann::json::value_t::string - } - } - }; - } -}; - -TEST(Properties, valid) -{ - Irccd *irccd = nullptr; - MyCommand cmd; - - ASSERT_NO_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", true }, - { "i", 123 }, - { "m", "abc" } - }))); - - ASSERT_NO_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", true }, - { "i", 123 }, - { "m", 456 } - }))); - - ASSERT_NO_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", true }, - { "i", 123 }, - { "m", "456" } - }))); -} - -TEST(Properties, missingB) -{ - Irccd *irccd = nullptr; - MyCommand cmd; - - ASSERT_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "i", 123 }, - { "m", "abc" } - })), std::invalid_argument); -} - -TEST(Properties, missingI) -{ - Irccd *irccd = nullptr; - MyCommand cmd; - - ASSERT_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", true }, - { "m", "abc" } - })), std::invalid_argument); -} - -TEST(Properties, missingM) -{ - Irccd *irccd = nullptr; - MyCommand cmd; - - ASSERT_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", true }, - { "i", 123 }, - })), std::invalid_argument); -} - -TEST(Properties, invalidB) -{ - Irccd *irccd = nullptr; - MyCommand cmd; - - ASSERT_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", "fail" }, - { "i", 123 }, - { "m", "abc" } - })), std::invalid_argument); -} - -TEST(Properties, invalidM) -{ - Irccd *irccd = nullptr; - MyCommand cmd; - - ASSERT_THROW(cmd.exec(*irccd, nlohmann::json::object({ - { "b", "fail" }, - { "i", 123 }, - { "m", nullptr } - })), std::invalid_argument); -} - -int main(int argc, char **argv) -{ - testing::InitGoogleTest(&argc, argv); - - return RUN_ALL_TESTS(); -}
--- a/tests/js-elapsedtimer/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-elapsedtimer/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,6 +19,6 @@ irccd_define_test( NAME js-elapsedtimer SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js )
--- a/tests/js-elapsedtimer/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-elapsedtimer/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -24,7 +24,7 @@ #include <irccd/mod-irccd.hpp> #include <irccd/mod-elapsed-timer.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> using namespace irccd; using namespace std::chrono_literals; @@ -37,8 +37,8 @@ TestElapsedTimer() : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.ElapsedTimer")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); + ElapsedTimerModule().load(m_irccd, *m_plugin); } };
--- a/tests/js-file/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-file/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,7 +19,7 @@ irccd_define_test( NAME js-file SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js ) #
--- a/tests/js-file/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-file/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -24,7 +24,7 @@ #include <irccd/mod-file.hpp> #include <irccd/mod-irccd.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> using namespace irccd; @@ -36,8 +36,8 @@ TestJsFile() : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.File")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); + FileModule().load(m_irccd, *m_plugin); } };
--- a/tests/js-irccd/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-irccd/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,5 +19,5 @@ irccd_define_test( NAME js-irccd SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js )
--- a/tests/js-irccd/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-irccd/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -21,7 +21,7 @@ #include <irccd/irccd.hpp> #include <irccd/mod-irccd.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> #include <irccd/sysconfig.hpp> using namespace irccd; @@ -34,7 +34,7 @@ TestJsIrccd() : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); } };
--- a/tests/js-logger/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-logger/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,5 +19,5 @@ irccd_define_test( NAME js-logger SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js )
--- a/tests/js-logger/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-logger/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -22,8 +22,9 @@ #include <irccd/logger.hpp> #include <irccd/mod-irccd.hpp> #include <irccd/mod-logger.hpp> +#include <irccd/mod-plugin.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> #include <irccd/sysconfig.hpp> using namespace irccd; @@ -62,9 +63,9 @@ TestJsLogger() : m_plugin(std::make_shared<JsPlugin>("test", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.Plugin")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.Logger")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); + PluginModule().load(m_irccd, *m_plugin); + LoggerModule().load(m_irccd, *m_plugin); } };
--- a/tests/js-system/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-system/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,7 +19,7 @@ irccd_define_test( NAME js-system SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js FLAGS IRCCD_EXECUTABLE=\"$<TARGET_FILE:irccd>\" )
--- a/tests/js-system/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-system/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -19,10 +19,11 @@ #include <gtest/gtest.h> #include <irccd/irccd.hpp> +#include <irccd/mod-file.hpp> #include <irccd/mod-irccd.hpp> #include <irccd/mod-system.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> #include <irccd/sysconfig.hpp> #include <irccd/system.hpp> @@ -36,9 +37,9 @@ TestJsSystem() : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.File")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.System")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); + FileModule().load(m_irccd, *m_plugin); + SystemModule().load(m_irccd, *m_plugin); } };
--- a/tests/js-timer/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-timer/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -23,5 +23,5 @@ ${CMAKE_CURRENT_SOURCE_DIR}/timer-single.js ${CMAKE_CURRENT_SOURCE_DIR}/timer-repeat.js ${CMAKE_CURRENT_SOURCE_DIR}/timer-pending.js - LIBRARIES libirccd + LIBRARIES libirccd-js )
--- a/tests/js-timer/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-timer/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -16,13 +16,17 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +int main() { } + +#if 0 + #include <gtest/gtest.h> #include <irccd/elapsed-timer.hpp> #include <irccd/irccd.hpp> #include <irccd/logger.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> #include <irccd/system.hpp> using namespace irccd; @@ -101,3 +105,5 @@ return RUN_ALL_TESTS(); } + +#endif
--- a/tests/js-unicode/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-unicode/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,5 +19,5 @@ irccd_define_test( NAME js-unicode SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js )
--- a/tests/js-unicode/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-unicode/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -26,7 +26,7 @@ #include <irccd/mod-irccd.hpp> #include <irccd/mod-unicode.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> #include <irccd/system.hpp> using namespace irccd; @@ -39,8 +39,8 @@ TestJsUnicode() : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.Unicode")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); + UnicodeModule().load(m_irccd, *m_plugin); } };
--- a/tests/js-util/CMakeLists.txt Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-util/CMakeLists.txt Mon Nov 14 13:11:16 2016 +0100 @@ -19,5 +19,5 @@ irccd_define_test( NAME js-util SOURCES main.cpp - LIBRARIES libirccd + LIBRARIES libirccd-js )
--- a/tests/js-util/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/js-util/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -22,7 +22,7 @@ #include <irccd/mod-irccd.hpp> #include <irccd/mod-util.hpp> #include <irccd/plugin-js.hpp> -#include <irccd/service-module.hpp> +#include <irccd/service.hpp> #include <irccd/system.hpp> using namespace irccd; @@ -35,8 +35,8 @@ TestJsUtil() : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) { - m_irccd.modules().get("Irccd")->load(m_irccd, m_plugin); - m_irccd.modules().get("Irccd.Util")->load(m_irccd, m_plugin); + IrccdModule().load(m_irccd, *m_plugin); + UtilModule().load(m_irccd ,*m_plugin); } };
--- a/tests/path/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/path/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -19,7 +19,6 @@ #include <gtest/gtest.h> #include <irccd/sysconfig.hpp> - #include <irccd/logger.hpp> #include <irccd/path.hpp>
--- a/tests/plugin-ask/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/plugin-ask/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -20,7 +20,10 @@ #include <irccd/irccd.hpp> #include <irccd/server.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> +#include <irccd/path.hpp> + +#include "plugin-tester.hpp" using namespace irccd; @@ -45,22 +48,18 @@ } }; -class AskTest : public testing::Test { +class AskTest : public PluginTester { protected: - Irccd m_irccd; - PluginService &m_ps; - std::shared_ptr<ServerTest> m_server; std::shared_ptr<Plugin> m_plugin; public: AskTest() - : m_ps(m_irccd.plugins()) - , m_server(std::make_shared<ServerTest>()) + : m_server(std::make_shared<ServerTest>()) { - m_ps.setConfig("ask", {{"file", SOURCEDIR "/answers.conf"}}); - m_ps.load("ask", PLUGINDIR "/ask.js"); - m_plugin = m_ps.require("ask"); + m_irccd.plugins().setConfig("ask", {{"file", SOURCEDIR "/answers.conf"}}); + m_irccd.plugins().load("ask", PLUGINDIR "/ask.js"); + m_plugin = m_irccd.plugins().require("ask"); } };
--- a/tests/plugin-auth/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/plugin-auth/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -20,7 +20,10 @@ #include <irccd/irccd.hpp> #include <irccd/server.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> +#include <irccd/path.hpp> + +#include "plugin-tester.hpp" using namespace irccd; @@ -45,11 +48,8 @@ } }; -class AuthTest : public testing::Test { +class AuthTest : public PluginTester { protected: - Irccd m_irccd; - PluginService &m_ps; - std::shared_ptr<ServerTest> m_nickserv1; std::shared_ptr<ServerTest> m_nickserv2; std::shared_ptr<ServerTest> m_quakenet; @@ -57,12 +57,11 @@ public: AuthTest() - : m_ps(m_irccd.plugins()) - , m_nickserv1(std::make_shared<ServerTest>("nickserv1")) + : m_nickserv1(std::make_shared<ServerTest>("nickserv1")) , m_nickserv2(std::make_shared<ServerTest>("nickserv2")) , m_quakenet(std::make_shared<ServerTest>("quakenet")) { - m_ps.setConfig("auth", { + m_irccd.plugins().setConfig("auth", { { "nickserv1.type", "nickserv" }, { "nickserv1.password", "plopation" }, { "nickserv2.type", "nickserv" }, @@ -72,8 +71,8 @@ { "quakenet.password", "hello" }, { "quakenet.username", "mario" } }); - m_ps.load("auth", PLUGINDIR "/auth.js"); - m_plugin = m_ps.require("auth"); + m_irccd.plugins().load("auth", PLUGINDIR "/auth.js"); + m_plugin = m_irccd.plugins().require("auth"); } };
--- a/tests/plugin-hangman/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/plugin-hangman/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -20,7 +20,10 @@ #include <irccd/irccd.hpp> #include <irccd/server.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> +#include <irccd/path.hpp> + +#include "plugin-tester.hpp" using namespace irccd; @@ -45,20 +48,16 @@ } }; -class HangmanTest : public testing::Test { +class HangmanTest : public PluginTester { protected: - Irccd m_irccd; - PluginService &m_ps; - std::shared_ptr<ServerTest> m_server; std::shared_ptr<Plugin> m_plugin; public: HangmanTest() - : m_ps(m_irccd.plugins()) - , m_server(std::make_shared<ServerTest>()) + : m_server(std::make_shared<ServerTest>()) { - m_ps.setFormats("hangman", { + m_irccd.plugins().setFormats("hangman", { { "asked", "asked=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{letter}" }, { "dead", "dead=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, { "found", "found=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{word}" }, @@ -76,9 +75,9 @@ if (config.count("file") == 0) config.emplace("file", SOURCEDIR "/words.conf"); - m_ps.setConfig("hangman", config); - m_ps.load("hangman", PLUGINDIR "/hangman.js"); - m_plugin = m_ps.require("hangman"); + m_irccd.plugins().setConfig("hangman", config); + m_irccd.plugins().load("hangman", PLUGINDIR "/hangman.js"); + m_plugin = m_irccd.plugins().require("hangman"); } };
--- a/tests/plugin-history/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/plugin-history/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -22,7 +22,10 @@ #include <irccd/irccd.hpp> #include <irccd/server.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> +#include <irccd/path.hpp> + +#include "plugin-tester.hpp" using namespace irccd; @@ -47,20 +50,16 @@ } }; -class HistoryTest : public testing::Test { +class HistoryTest : public PluginTester { protected: - Irccd m_irccd; - PluginService &m_ps; - std::shared_ptr<ServerTest> m_server; std::shared_ptr<Plugin> m_plugin; public: HistoryTest() - : m_ps(m_irccd.plugins()) - , m_server(std::make_shared<ServerTest>()) + : m_server(std::make_shared<ServerTest>()) { - m_ps.setFormats("history", { + m_irccd.plugins().setFormats("history", { { "error", "error=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}" }, { "seen", "seen=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{target}:%H:%M" }, { "said", "said=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{target}:#{message}:%H:%M" }, @@ -74,9 +73,9 @@ if (config.count("file") == 0) config.emplace("file", SOURCEDIR "/words.conf"); - m_ps.setConfig("history", config); - m_ps.load("history", PLUGINDIR "/history.js"); - m_plugin = m_ps.require("history"); + m_irccd.plugins().setConfig("history", config); + m_irccd.plugins().load("history", PLUGINDIR "/history.js"); + m_plugin = m_irccd.plugins().require("history"); } };
--- a/tests/plugin-logger/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/plugin-logger/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -24,7 +24,10 @@ #include <irccd/irccd.hpp> #include <irccd/logger.hpp> #include <irccd/server.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> +#include <irccd/path.hpp> + +#include "plugin-tester.hpp" using namespace irccd; @@ -36,11 +39,8 @@ } }; -class LoggerTest : public testing::Test { +class LoggerTest : public PluginTester { protected: - Irccd m_irccd; - PluginService &m_ps; - std::shared_ptr<ServerTest> m_server; std::shared_ptr<Plugin> m_plugin; @@ -53,12 +53,11 @@ public: LoggerTest() - : m_ps(m_irccd.plugins()) - , m_server(std::make_shared<ServerTest>()) + : m_server(std::make_shared<ServerTest>()) { remove(BINARYDIR "/log.txt"); - m_ps.setFormats("logger", { + m_irccd.plugins().setFormats("logger", { { "cmode", "cmode=#{server}:#{channel}:#{origin}:#{nickname}:#{mode}:#{arg}" }, { "cnotice", "cnotice=#{server}:#{channel}:#{origin}:#{nickname}:#{message}" }, { "join", "join=#{server}:#{channel}:#{origin}:#{nickname}" }, @@ -78,9 +77,9 @@ if (config.count("path") == 0) config.emplace("path", BINARYDIR "/log.txt"); - m_ps.setConfig("logger", config); - m_ps.load("logger", PLUGINDIR "/logger.js"); - m_plugin = m_ps.require("logger"); + m_irccd.plugins().setConfig("logger", config); + m_irccd.plugins().load("logger", PLUGINDIR "/logger.js"); + m_plugin = m_irccd.plugins().require("logger"); } };
--- a/tests/plugin-plugin/main.cpp Sun Nov 13 20:59:45 2016 +0100 +++ b/tests/plugin-plugin/main.cpp Mon Nov 14 13:11:16 2016 +0100 @@ -23,7 +23,10 @@ #include <irccd/irccd.hpp> #include <irccd/logger.hpp> #include <irccd/server.hpp> -#include <irccd/service-plugin.hpp> +#include <irccd/service.hpp> +#include <irccd/path.hpp> + +#include "plugin-tester.hpp" using namespace fmt::literals; @@ -62,28 +65,24 @@ } }; -class PluginTest : public testing::Test { +class PluginTest : public PluginTester { protected: - Irccd m_irccd; - PluginService &m_ps; - std::shared_ptr<ServerTest> m_server; std::shared_ptr<Plugin> m_plugin; public: PluginTest() - : m_ps(m_irccd.plugins()) - , m_server(std::make_shared<ServerTest>()) + : m_server(std::make_shared<ServerTest>()) { - m_ps.add(std::make_shared<FakePlugin>()); - m_ps.setFormats("plugin", { + m_irccd.plugins().add(std::make_shared<FakePlugin>()); + m_irccd.plugins().setFormats("plugin", { { "usage", "usage=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}" }, { "info", "info=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{author}:#{license}:#{name}:#{summary}:#{version}" }, { "not-found", "not-found=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}:#{name}" }, { "too-long", "too-long=#{plugin}:#{command}:#{server}:#{channel}:#{origin}:#{nickname}" } }); - m_ps.load("plugin", PLUGINDIR "/plugin.js"); - m_plugin = m_ps.require("plugin"); + m_irccd.plugins().load("plugin", PLUGINDIR "/plugin.js"); + m_plugin = m_irccd.plugins().require("plugin"); } }; @@ -116,7 +115,7 @@ TEST_F(PluginTest, formatTooLong) { for (int i = 0; i < 100; ++i) - m_ps.add(std::make_shared<Plugin>("plugin-n-{}"_format(i), "")); + m_irccd.plugins().add(std::make_shared<Plugin>("plugin-n-{}"_format(i), "")); m_plugin->onCommand(m_irccd, MessageEvent{m_server, "jean!jean@localhost", "#staff", "list"});