1
0
Fork 0
mirror of https://github.com/pry/pry.git synced 2022-11-09 12:35:05 -05:00
pry--pry/spec/editor_spec.rb

64 lines
1.5 KiB
Ruby
Raw Normal View History

require 'pathname'
require_relative 'helper'
describe Pry::Editor do
2014-04-29 03:27:16 -04:00
class Pry::Editor
public :build_editor_invocation_string
end
before do
# OS-specific tempdir name. For GNU/Linux it's "tmp", for Windows it's
# something "Temp".
@tf_dir =
if Pry::Helpers::BaseHelpers.mri_19?
Pathname.new(Dir::Tmpname.tmpdir)
else
Pathname.new(Dir.tmpdir)
end
@tf_path = File.join(@tf_dir.to_s, 'hello world.rb')
2014-04-29 03:27:16 -04:00
@editor = Pry::Editor.new(Pry.new)
end
unless Pry::Helpers::BaseHelpers.windows?
describe "build_editor_invocation_string" do
it 'should shell-escape files' do
2014-04-29 03:27:16 -04:00
invocation_str = @editor.build_editor_invocation_string(@tf_path, 5, true)
2015-03-10 16:49:29 -04:00
expect(invocation_str).to match(/#@tf_dir.+hello\\ world\.rb/)
end
2013-01-13 17:24:58 -05:00
end
end
describe "build_editor_invocation_string on windows" do
2013-01-13 17:24:58 -05:00
before do
2014-04-29 03:27:16 -04:00
class Pry::Editor
2013-01-13 17:24:58 -05:00
def windows?; true; end
end
2013-01-13 17:24:58 -05:00
end
2013-01-13 17:24:58 -05:00
after do
2014-04-29 03:27:16 -04:00
class Pry::Editor
2013-01-13 17:24:58 -05:00
undef windows?
end
2013-01-13 17:24:58 -05:00
end
2013-01-13 17:24:58 -05:00
it "should not shell-escape files" do
2014-04-29 03:27:16 -04:00
invocation_str = @editor.build_editor_invocation_string(@tf_path, 5, true)
2015-03-10 16:49:29 -04:00
expect(invocation_str).to match(/hello world\.rb/)
2013-01-13 17:24:58 -05:00
end
end
describe 'invoke_editor with a proc' do
2014-04-29 03:27:16 -04:00
it 'should not shell-escape files' do
editor = Pry::Editor.new(Pry.new(editor: proc{ |file, line, blocking|
2013-01-13 17:24:58 -05:00
@file = file
nil
2014-04-29 03:27:16 -04:00
}))
2014-04-29 03:27:16 -04:00
editor.invoke_editor(@tf_path, 10, true)
2015-03-10 16:49:29 -04:00
expect(@file).to eq(@tf_path)
2013-01-13 17:24:58 -05:00
end
end
end