Mercurial > irccd
changeset 197:1b3365343b18
Irccd: fix default amount in Irccd.File.read to -1 and add test
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 08 Jun 2016 12:37:55 +0200 |
parents | bdeda4baf684 |
children | b87679fbf7d8 |
files | lib/irccd/duktape.hpp lib/irccd/mod-file.cpp tests/js-file/main.cpp |
diffstat | 3 files changed, 23 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/lib/irccd/duktape.hpp Tue Jun 07 20:49:47 2016 +0200 +++ b/lib/irccd/duktape.hpp Wed Jun 08 12:37:55 2016 +0200 @@ -441,7 +441,7 @@ * * \param ctx the context * \param index the array index - * \param getter the conversion function (e.g. duk_get_int) + * \param get the conversion function (e.g. duk_get_int) */ template <typename Getter> auto dukx_get_array(duk_context *ctx, duk_idx_t index, Getter &&get)
--- a/lib/irccd/mod-file.cpp Tue Jun 07 20:49:47 2016 +0200 +++ b/lib/irccd/mod-file.cpp Wed Jun 08 12:37:55 2016 +0200 @@ -246,7 +246,7 @@ duk_ret_t methodRead(duk_context *ctx) { auto file = self(ctx); - auto amount = duk_is_number(ctx, 0) ? duk_get_int(ctx, 0) : 0; + auto amount = duk_is_number(ctx, 0) ? duk_get_int(ctx, 0) : -1; if (amount == 0 || file->handle() == nullptr) return 0;
--- a/tests/js-file/main.cpp Tue Jun 07 20:49:47 2016 +0200 +++ b/tests/js-file/main.cpp Wed Jun 08 12:37:55 2016 +0200 @@ -357,6 +357,27 @@ } } +TEST_F(TestJsFile, methodRead1) +{ + try { + duk_push_string(m_plugin->context(), IRCCD_TESTS_DIRECTORY); + duk_put_global_string(m_plugin->context(), "directory"); + + auto ret = duk_peval_string(m_plugin->context(), + "f = new Irccd.File(directory + '/file.txt', 'r');" + "result = f.read();" + ); + + if (ret != 0) + throw dukx_exception(m_plugin->context(), -1); + + ASSERT_TRUE(duk_get_global_string(m_plugin->context(), "result")); + ASSERT_STREQ("file.txt", duk_get_string(m_plugin->context(), -1)); + } catch (const std::exception &ex) { + FAIL() << ex.what(); + } +} + TEST_F(TestJsFile, methodReadline) { try {