Mercurial > irccd
diff tests/js-system/main.cpp @ 492:173c52d3120b
Tests: create js_test fixture, closes #688
Create a js_test fixture class which generates a fake javascript plugin and
loads appropriate javascript modules to test.
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 27 Sep 2017 09:42:57 +0200 |
parents | 7e273b7f4f92 |
children | b3a0f61a35fe |
line wrap: on
line diff
--- a/tests/js-system/main.cpp Fri Aug 18 11:36:49 2017 +0200 +++ b/tests/js-system/main.cpp Wed Sep 27 09:42:57 2017 +0200 @@ -16,70 +16,48 @@ * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -#include <gtest/gtest.h> +#define BOOST_TEST_MODULE "System Javascript API" +#include <boost/test/unit_test.hpp> #include <irccd/irccd.hpp> #include <irccd/js_file_module.hpp> -#include <irccd/js_irccd_module.hpp> #include <irccd/js_system_module.hpp> -#include <irccd/js_plugin.hpp> -#include <irccd/service.hpp> -#include <irccd/sysconfig.hpp> #include <irccd/system.hpp> -using namespace irccd; +#include <js_test.hpp> -class TestJsSystem : public testing::Test { -protected: - irccd::irccd m_irccd; - std::shared_ptr<js_plugin> m_plugin; +namespace irccd { + +using fixture = js_test<js_file_module, js_system_module>; - TestJsSystem() - : m_plugin(std::make_shared<js_plugin>("empty", SOURCEDIR "/empty.js")) - { - js_irccd_module().load(m_irccd, m_plugin); - js_file_module().load(m_irccd, m_plugin); - js_system_module().load(m_irccd, m_plugin); - } -}; +BOOST_FIXTURE_TEST_SUITE(js_system_suite, fixture) -TEST_F(TestJsSystem, home) +BOOST_AUTO_TEST_CASE(home) { - try { - duk_peval_string_noresult(m_plugin->context(), "result = Irccd.System.home();"); + duk_peval_string_noresult(plugin_->context(), "result = Irccd.System.home();"); - ASSERT_TRUE(duk_get_global_string(m_plugin->context(), "result")); - ASSERT_EQ(sys::home(), duk_get_string(m_plugin->context(), -1)); - } catch (const std::exception &ex) { - FAIL() << ex.what(); - } + BOOST_TEST(duk_get_global_string(plugin_->context(),"result")); + BOOST_TEST(duk_get_string(plugin_->context(), -1) == sys::home()); } #if defined(HAVE_POPEN) -TEST_F(TestJsSystem, popen) +BOOST_AUTO_TEST_CASE(popen) { - try { - auto ret = duk_peval_string(m_plugin->context(), - "f = Irccd.System.popen(\"" IRCCD_EXECUTABLE " --version\", \"r\");" - "r = f.readline();" - ); + auto ret = duk_peval_string(plugin_->context(), + "f = Irccd.System.popen(\"" IRCCD_EXECUTABLE " --version\", \"r\");" + "r = f.readline();" + ); - if (ret != 0) - throw dukx_exception(m_plugin->context(), -1); + if (ret != 0) + throw dukx_exception(plugin_->context(), -1); - ASSERT_TRUE(duk_get_global_string(m_plugin->context(), "r")); - ASSERT_STREQ(IRCCD_VERSION, duk_get_string(m_plugin->context(), -1)); - } catch (const std::exception &ex) { - FAIL() << ex.what(); - } + BOOST_TEST(duk_get_global_string(plugin_->context(), "r")); + BOOST_TEST(duk_get_string(plugin_->context(), -1) == IRCCD_VERSION); } #endif -int main(int argc, char **argv) -{ - testing::InitGoogleTest(&argc, argv); +BOOST_AUTO_TEST_SUITE_END() - return RUN_ALL_TESTS(); -} +} // !irccd