1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
|
#include <stic.h>
#include "../../src/lua/vlua.h"
#include "../../src/ui/ui.h"
#include <test-utils.h>
#include "asserts.h"
static vlua_t *vlua;
SETUP_ONCE()
{
stub_colmgr();
}
SETUP()
{
vlua = vlua_init();
view_setup(&lwin);
view_setup(&rwin);
curr_view = &lwin;
other_view = &rwin;
opt_handlers_setup();
}
TEARDOWN()
{
vlua_finish(vlua);
view_teardown(&lwin);
view_teardown(&rwin);
opt_handlers_teardown();
}
TEST(no_such_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.nooption = 1");
GLUA_EQ(vlua, "nil", "print(vifm.opts.global.nooption)");
}
TEST(bad_option_value)
{
BLUA_ENDS(vlua,
"Illegal character: <y>\n" "Failed to set value of option caseoptions",
"vifm.opts.global.caseoptions = 'yes'");
}
TEST(local_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.dotfiles = false");
GLUA_EQ(vlua, "nil", "print(vifm.opts.global.dotfiles)");
}
TEST(bool_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.wrap = true");
GLUA_EQ(vlua, "true", "print(vifm.opts.global.wrap)");
GLUA_EQ(vlua, "", "vifm.opts.global.wrap = false");
GLUA_EQ(vlua, "false", "print(vifm.opts.global.wrap)");
}
TEST(int_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.scrolloff = 123");
GLUA_EQ(vlua, "123", "print(vifm.opts.global.scrolloff)");
}
TEST(string_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.vicmd = 'vi-cmd'");
GLUA_EQ(vlua, "vi-cmd", "print(vifm.opts.global.vicmd)");
}
TEST(string_list_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.cdpath = 'a,b,c'");
GLUA_EQ(vlua, "a,b,c", "print(vifm.opts.global.cdpath)");
}
TEST(enum_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.dirsize = 'nitems'");
GLUA_EQ(vlua, "nitems", "print(vifm.opts.global.dirsize)");
}
TEST(set_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.confirm = 'delete,permdelete'");
GLUA_EQ(vlua, "delete,permdelete", "print(vifm.opts.global.confirm)");
}
TEST(charset_option)
{
GLUA_EQ(vlua, "", "vifm.opts.global.caseoptions = 'pG'");
GLUA_EQ(vlua, "pG", "print(vifm.opts.global.caseoptions)");
}
TEST(view_option)
{
GLUA_EQ(vlua, "", "v = vifm.currview()");
GLUA_EQ(vlua, "", "v.viewopts.vicmd = 'vicmd'");
GLUA_EQ(vlua, "nil", "print(v.viewopts.vicmd)");
GLUA_EQ(vlua, "", "v.locopts.vicmd = 'vicmd'");
GLUA_EQ(vlua, "nil", "print(v.locopts.vicmd)");
GLUA_EQ(vlua, "", "print(vifm.opts.global.vicmd)");
GLUA_EQ(vlua, "", "v.viewopts.bla = something");
GLUA_EQ(vlua, "", "v.locopts.bla = something");
GLUA_EQ(vlua, "nil", "print(v.viewopts.bla)");
GLUA_EQ(vlua, "nil", "print(v.locopts.bla)");
GLUA_EQ(vlua, "", "v.viewopts.dotfiles = false");
GLUA_EQ(vlua, "falsetrue",
"print(tostring(v.viewopts.dotfiles)..tostring(v.locopts.dotfiles))");
GLUA_EQ(vlua, "", "v.locopts.dotfiles = false");
GLUA_EQ(vlua, "falsefalse",
"print(tostring(v.viewopts.dotfiles)..tostring(v.locopts.dotfiles))");
swap_view_roles();
GLUA_EQ(vlua, "", "v.locopts.dotfiles = true");
GLUA_EQ(vlua, "truetrue",
"print(tostring(vifm.currview().viewopts.dotfiles).."
" tostring(vifm.currview().locopts.dotfiles))");
GLUA_EQ(vlua, "falsetrue",
"print(tostring(v.viewopts.dotfiles)..tostring(v.locopts.dotfiles))");
assert_true(curr_view == &rwin);
BLUA_ENDS(vlua, "bad argument #3 to '?' (boolean expected, got string)",
"v.locopts.dotfiles = 'asdf'");
assert_true(curr_view == &rwin);
}
/* vim: set tabstop=2 softtabstop=2 shiftwidth=2 noexpandtab cinoptions-=(0 : */
/* vim: set cinoptions+=t0 : */
|