diff options
Diffstat (limited to 'test/irb/command/test_custom_command.rb')
-rw-r--r-- | test/irb/command/test_custom_command.rb | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/test/irb/command/test_custom_command.rb b/test/irb/command/test_custom_command.rb deleted file mode 100644 index 13f412c210..0000000000 --- a/test/irb/command/test_custom_command.rb +++ /dev/null @@ -1,194 +0,0 @@ -# frozen_string_literal: true -require "irb" - -require_relative "../helper" - -module TestIRB - class CustomCommandIntegrationTest < TestIRB::IntegrationTestCase - def test_command_registration_can_happen_after_irb_require - write_ruby <<~RUBY - require "irb" - require "irb/command" - - class PrintCommand < IRB::Command::Base - category 'CommandTest' - description 'print_command' - def execute(*) - puts "Hello from PrintCommand" - end - end - - IRB::Command.register(:print!, PrintCommand) - - binding.irb - RUBY - - output = run_ruby_file do - type "print!" - type "exit" - end - - assert_include(output, "Hello from PrintCommand") - end - - def test_command_registration_accepts_string_too - write_ruby <<~RUBY - require "irb/command" - - class PrintCommand < IRB::Command::Base - category 'CommandTest' - description 'print_command' - def execute(*) - puts "Hello from PrintCommand" - end - end - - IRB::Command.register("print!", PrintCommand) - - binding.irb - RUBY - - output = run_ruby_file do - type "print!" - type "exit" - end - - assert_include(output, "Hello from PrintCommand") - end - - def test_arguments_propagation - write_ruby <<~RUBY - require "irb/command" - - class PrintArgCommand < IRB::Command::Base - category 'CommandTest' - description 'print_command_arg' - def execute(arg) - $nth_execution ||= 0 - puts "\#{$nth_execution} arg=\#{arg.inspect}" - $nth_execution += 1 - end - end - - IRB::Command.register(:print_arg, PrintArgCommand) - - binding.irb - RUBY - - output = run_ruby_file do - type "print_arg" - type "print_arg \n" - type "print_arg a r g" - type "print_arg a r g \n" - type "exit" - end - - assert_include(output, "0 arg=\"\"") - assert_include(output, "1 arg=\"\"") - assert_include(output, "2 arg=\"a r g\"") - assert_include(output, "3 arg=\"a r g\"") - end - - def test_def_extend_command_still_works - write_ruby <<~RUBY - require "irb" - - class FooBarCommand < IRB::Command::Base - category 'FooBarCategory' - description 'foobar_description' - def execute(*) - $nth_execution ||= 1 - puts "\#{$nth_execution} FooBar executed" - $nth_execution += 1 - end - end - - IRB::ExtendCommandBundle.def_extend_command(:foobar, FooBarCommand, nil, [:fbalias, IRB::Command::OVERRIDE_ALL]) - - binding.irb - RUBY - - output = run_ruby_file do - type "foobar" - type "fbalias" - type "help foobar" - type "exit" - end - - assert_include(output, "1 FooBar executed") - assert_include(output, "2 FooBar executed") - assert_include(output, "foobar_description") - end - - def test_no_meta_command_also_works - write_ruby <<~RUBY - require "irb/command" - - class NoMetaCommand < IRB::Command::Base - def execute(*) - puts "This command does not override meta attributes" - end - end - - IRB::Command.register(:no_meta, NoMetaCommand) - - binding.irb - RUBY - - output = run_ruby_file do - type "no_meta" - type "help no_meta" - type "exit" - end - - assert_include(output, "This command does not override meta attributes") - assert_include(output, "No description provided.") - assert_not_include(output, "Maybe IRB bug") - end - - def test_command_name_local_variable - write_ruby <<~RUBY - require "irb/command" - - class FooBarCommand < IRB::Command::Base - category 'CommandTest' - description 'test' - def execute(arg) - puts "arg=\#{arg.inspect}" - end - end - - IRB::Command.register(:foo_bar, FooBarCommand) - - binding.irb - RUBY - - output = run_ruby_file do - type "binding.irb" - type "foo_bar == 1 || 1" - type "foo_bar =~ /2/ || 2" - type "exit" - type "binding.irb" - type "foo_bar = '3'; foo_bar" - type "foo_bar == 4 || '4'" - type "foo_bar =~ /5/ || '5'" - type "exit" - type "binding.irb" - type "foo_bar ||= '6'; foo_bar" - type "foo_bar == 7 || '7'" - type "foo_bar =~ /8/ || '8'" - type "exit" - type "exit" - end - - assert_include(output, 'arg="== 1 || 1"') - assert_include(output, 'arg="=~ /2/ || 2"') - assert_include(output, '=> "3"') - assert_include(output, '=> "4"') - assert_include(output, '=> "5"') - assert_include(output, '=> "6"') - assert_include(output, '=> "7"') - assert_include(output, '=> "8"') - end - end -end |