xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit e4058829d5c053268c07b08629750b5803ea2a61

Test :split and :vsplit commands
Author: xaizek
Author date (UTC): 2026-09-02 07:38
Committer name: xaizek
Committer date (UTC): 2026-09-02 07:38
Parent(s): 54d41e356e669248369b6e746d39b9da9cfae17d
Signing key: 99DC5E4DB05F6BE2
Tree: 4ece689423280e97dbeb7695cd4f56f21e1c76fd
File Lines added Lines deleted
tests/commands/misc.c 57 0
File tests/commands/misc.c changed (mode: 100644) (index dbcc4daa9..257c28bb6)
... ... TEST(messages_command)
718 718 assert_string_equal("new 1\nnew 2", ui_sb_last()); assert_string_equal("new 1\nnew 2", ui_sb_last());
719 719 } }
720 720
721 TEST(split)
722 {
723 curr_stats.split = VSPLIT;
724 curr_stats.number_of_windows = 1;
725
726 make_abs_path(lwin.curr_dir, sizeof(lwin.curr_dir), TEST_DATA_PATH, "",
727 saved_cwd);
728
729 /* `:split`, `:split!`, `:split! path`, `:split path` */
730
731 assert_success(cmds_dispatch1("split", &lwin, CIT_COMMAND));
732 assert_int_equal(HSPLIT, curr_stats.split);
733 assert_int_equal(2, curr_stats.number_of_windows);
734
735 assert_success(cmds_dispatch1("split!", &lwin, CIT_COMMAND));
736 assert_int_equal(HSPLIT, curr_stats.split);
737 assert_int_equal(1, curr_stats.number_of_windows);
738
739 assert_success(cmds_dispatch1("split!", &lwin, CIT_COMMAND));
740 assert_int_equal(HSPLIT, curr_stats.split);
741 assert_int_equal(2, curr_stats.number_of_windows);
742
743 ui_sb_msg("");
744 assert_failure(cmds_dispatch1("split! ..", &lwin, CIT_COMMAND));
745 assert_string_equal("No arguments are allowed if you use \"!\"",
746 ui_sb_last());
747
748 assert_success(cmds_dispatch1("split read", &lwin, CIT_COMMAND));
749 assert_int_equal(HSPLIT, curr_stats.split);
750 assert_int_equal(2, curr_stats.number_of_windows);
751 assert_string_ends_with("/read", rwin.curr_dir);
752
753 /* `:vsplit`, `:vsplit!`, `:vsplit! path`, `:vsplit path` */
754
755 assert_success(cmds_dispatch1("vsplit", &lwin, CIT_COMMAND));
756 assert_int_equal(VSPLIT, curr_stats.split);
757 assert_int_equal(2, curr_stats.number_of_windows);
758
759 assert_success(cmds_dispatch1("vsplit!", &lwin, CIT_COMMAND));
760 assert_int_equal(VSPLIT, curr_stats.split);
761 assert_int_equal(1, curr_stats.number_of_windows);
762
763 assert_success(cmds_dispatch1("vsplit!", &lwin, CIT_COMMAND));
764 assert_int_equal(VSPLIT, curr_stats.split);
765 assert_int_equal(2, curr_stats.number_of_windows);
766
767 ui_sb_msg("");
768 assert_failure(cmds_dispatch1("vsplit! ..", &lwin, CIT_COMMAND));
769 assert_string_equal("No arguments are allowed if you use \"!\"",
770 ui_sb_last());
771
772 assert_success(cmds_dispatch1("vsplit read", &lwin, CIT_COMMAND));
773 assert_int_equal(VSPLIT, curr_stats.split);
774 assert_int_equal(2, curr_stats.number_of_windows);
775 assert_string_ends_with("/read", rwin.curr_dir);
776 }
777
721 778 static void static void
722 779 strings_list_is(const strlist_t expected, const strlist_t actual) strings_list_is(const strlist_t expected, const strlist_t actual)
723 780 { {
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master