diff options
Diffstat (limited to 'test/reline/test_config.rb')
-rw-r--r-- | test/reline/test_config.rb | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/test/reline/test_config.rb b/test/reline/test_config.rb index aa549a392d..9ead047ce4 100644 --- a/test/reline/test_config.rb +++ b/test/reline/test_config.rb @@ -11,12 +11,14 @@ class Reline::Config::Test < Reline::TestCase Dir.mkdir(@tmpdir) end Dir.chdir(@tmpdir) + Reline.test_mode @config = Reline::Config.new end def teardown Dir.chdir(@pwd) FileUtils.rm_rf(@tmpdir) + Reline.test_reset @config.reset end @@ -81,6 +83,22 @@ class Reline::Config::Test < Reline::TestCase assert_equal '(Emacs)', @config.instance_variable_get(:@emacs_mode_string) end + def test_encoding_is_ascii + @config.reset + Reline.core.io_gate.reset(encoding: Encoding::US_ASCII) + @config = Reline::Config.new + + assert_equal true, @config.convert_meta + end + + def test_encoding_is_not_ascii + @config.reset + Reline.core.io_gate.reset(encoding: Encoding::UTF_8) + @config = Reline::Config.new + + assert_equal nil, @config.convert_meta + end + def test_comment_line @config.read_lines([" #a: error\n"]) assert_not_include @config.key_bindings, nil @@ -142,6 +160,23 @@ class Reline::Config::Test < Reline::TestCase assert_equal :audible, @config.instance_variable_get(:@bell_style) end + def test_include_expand_path + home_backup = ENV['HOME'] + File.open('included_partial', 'wt') do |f| + f.write(<<~PARTIAL_LINES) + set bell-style on + PARTIAL_LINES + end + ENV['HOME'] = Dir.pwd + @config.read_lines(<<~LINES.lines) + $include ~/included_partial + LINES + + assert_equal :audible, @config.instance_variable_get(:@bell_style) + ensure + ENV['HOME'] = home_backup + end + def test_if @config.read_lines(<<~LINES.lines) $if Ruby @@ -256,6 +291,28 @@ class Reline::Config::Test < Reline::TestCase assert_equal expected, @config.key_bindings end + def test_additional_key_bindings_for_auxiliary_emacs_keymaps + @config.read_lines(<<~'LINES'.lines) + set keymap emacs + "ab": "AB" + set keymap emacs-standard + "cd": "CD" + set keymap emacs-ctlx + "ef": "EF" + set keymap emacs-meta + "gh": "GH" + set editing-mode emacs # keymap changes to be emacs + LINES + + expected = { + 'ab'.bytes => 'AB'.bytes, + 'cd'.bytes => 'CD'.bytes, + "\C-xef".bytes => 'EF'.bytes, + "\egh".bytes => 'GH'.bytes, + } + assert_equal expected, @config.key_bindings + end + def test_history_size @config.read_lines(<<~LINES.lines) set history-size 5000 @@ -369,3 +426,4 @@ class Reline::Config::Test < Reline::TestCase ENV['HOME'] = home_backup end end + |