summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authortomoya ishida <tomoyapenguin@gmail.com>2023-05-01 21:20:09 +0900
committergit <svn-admin@ruby-lang.org>2023-05-01 12:20:20 +0000
commit13dfbcf7bf988922ed33e68456749b7179ab14bb (patch)
tree84da8fdb867d14d38d060dd64b6498095a031a67 /test
parentdd5ba1b725036d59ae473f5679057762cea54515 (diff)
downloadruby-13dfbcf7bf988922ed33e68456749b7179ab14bb.tar.gz
[ruby/reline] Rewrite dialog rendering
(https://github.com/ruby/reline/pull/492) * Rewrite dialog rendering * Fix failing test of dialog with small screen * Add multiple-dialog rendering test * Add description comments for each part of render_dialog_changes
Diffstat (limited to 'test')
-rw-r--r--test/reline/test_line_editor.rb13
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb23
2 files changed, 33 insertions, 3 deletions
diff --git a/test/reline/test_line_editor.rb b/test/reline/test_line_editor.rb
new file mode 100644
index 0000000000..8399e76e92
--- /dev/null
+++ b/test/reline/test_line_editor.rb
@@ -0,0 +1,13 @@
+require_relative 'helper'
+require 'reline/line_editor'
+
+class Reline::LineEditor::Test < Reline::TestCase
+ def test_range_subtract
+ dummy_config = nil
+ editor = Reline::LineEditor.new(dummy_config, 'ascii-8bit')
+ base_ranges = [3...5, 4...10, 6...8, 12...15, 15...20]
+ subtract_ranges = [5...7, 8...9, 11...13, 17...18, 18...19]
+ expected_result = [3...5, 7...8, 9...10, 13...17, 19...20]
+ assert_equal expected_result, editor.send(:range_subtract, base_ranges, subtract_ranges)
+ end
+end
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index d34db1c14e..49d8ed406e 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -1138,6 +1138,23 @@ begin
EOC
end
+ def test_rerender_multiple_dialog
+ start_terminal(20, 60, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --autocomplete --dialog simple}, startup_message: 'Multiline REPL.')
+ write("if\n abcdef\n 123456\n 456789\nend\C-p\C-p\C-p\C-p Str")
+ write("\t")
+ close
+ assert_screen(<<~'EOC')
+ Multiline REPL.
+ prompt> if String
+ prompt> aStringRuby is...
+ prompt> 1StructA dynamic, open source programming
+ prompt> 456789 language with a focus on simplicity
+ prompt> end and productivity. It has an elegant
+ syntax that is natural to read and
+ easy to write.
+ EOC
+ end
+
def test_autocomplete_long_with_scrollbar
start_terminal(20, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --autocomplete-long}, startup_message: 'Multiline REPL.')
write('S')
@@ -1343,11 +1360,11 @@ begin
prompt>
prompt>
prompt>
- prompt> S
prompt> String
prompt> Struct
- prompt> enSymbol
- ScriptError
+ prompt> Symbol
+ prompt> enScriptError
+ SyntaxError
Signal
EOC
end