comparison tests/js-system/main.cpp @ 179:ef527409e638

Irccd: update JavaScript code
author David Demelier <markand@malikania.fr>
date Tue, 31 May 2016 21:03:01 +0200
parents a02756832959
children cb61cc16e2b6
comparison
equal deleted inserted replaced
178:084081b24024 179:ef527409e638
21 #include <irccd/irccd.hpp> 21 #include <irccd/irccd.hpp>
22 #include <irccd/mod-irccd.hpp> 22 #include <irccd/mod-irccd.hpp>
23 #include <irccd/mod-system.hpp> 23 #include <irccd/mod-system.hpp>
24 #include <irccd/plugin-js.hpp> 24 #include <irccd/plugin-js.hpp>
25 #include <irccd/service-module.hpp> 25 #include <irccd/service-module.hpp>
26 #include <irccd/sysconfig.hpp>
26 #include <irccd/system.hpp> 27 #include <irccd/system.hpp>
27 28
28 using namespace irccd; 29 using namespace irccd;
29 30
30 class TestJsSystem : public testing::Test { 31 class TestJsSystem : public testing::Test {
34 35
35 TestJsSystem() 36 TestJsSystem()
36 : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js")) 37 : m_plugin(std::make_shared<JsPlugin>("empty", SOURCEDIR "/empty.js"))
37 { 38 {
38 m_irccd.moduleService().get("Irccd")->load(m_irccd, *m_plugin); 39 m_irccd.moduleService().get("Irccd")->load(m_irccd, *m_plugin);
40 m_irccd.moduleService().get("Irccd.File")->load(m_irccd, *m_plugin);
39 m_irccd.moduleService().get("Irccd.System")->load(m_irccd, *m_plugin); 41 m_irccd.moduleService().get("Irccd.System")->load(m_irccd, *m_plugin);
40 } 42 }
41 }; 43 };
42 44
43 TEST_F(TestJsSystem, home) 45 TEST_F(TestJsSystem, home)
49 } catch (const std::exception &ex) { 51 } catch (const std::exception &ex) {
50 FAIL() << ex.what(); 52 FAIL() << ex.what();
51 } 53 }
52 } 54 }
53 55
56 #if defined(HAVE_POPEN)
57
58 TEST_F(TestJsSystem, popen)
59 {
60 try {
61 auto ret = duk::pevalString(m_plugin->context(),
62 "f = Irccd.System.popen(\"" IRCCD_EXECUTABLE " --version\", \"r\");"
63 "r = f.readline();"
64 );
65
66 if (ret != 0)
67 throw duk::exception(m_plugin->context(), -1);
68
69 ASSERT_EQ(IRCCD_VERSION, duk::getGlobal<std::string>(m_plugin->context(), "r"));
70 } catch (const std::exception &ex) {
71 FAIL() << ex.what();
72 }
73 }
74
75 #endif
76
54 int main(int argc, char **argv) 77 int main(int argc, char **argv)
55 { 78 {
56 testing::InitGoogleTest(&argc, argv); 79 testing::InitGoogleTest(&argc, argv);
57 80
58 return RUN_ALL_TESTS(); 81 return RUN_ALL_TESTS();