$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__) ENV['TERM'] = 'xterm' # for some CI environments require 'reline' require 'test/unit' module Reline class < expected but was <#{chunk.inspect} (#{chunk.encoding.inspect})> in EOM end def assert_cursor(expected) assert_equal(expected, @line_editor.instance_variable_get(:@cursor)) end def assert_cursor_max(expected) assert_equal(expected, @line_editor.instance_variable_get(:@cursor_max)) end def assert_line_index(expected) assert_equal(expected, @line_editor.instance_variable_get(:@line_index)) end def assert_whole_lines(expected) previous_line_index = @line_editor.instance_variable_get(:@previous_line_index) if previous_line_index lines = @line_editor.whole_lines(index: previous_line_index) else lines = @line_editor.whole_lines end assert_equal(expected, lines) end def assert_key_binding(input, method_symbol, editing_modes = [:emacs, :vi_insert, :vi_command]) editing_modes.each do |editing_mode| @config.editing_mode = editing_mode assert_equal(method_symbol, @config.editing_mode.default_key_bindings[input.bytes]) end end end