pry--pry/spec/editor_spec.rb

75 lines
1.8 KiB
Ruby
Raw Normal View History

require 'pathname'
require 'helper'
describe Pry::Editor do
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 = Pathname.new(Dir::Tmpname.tmpdir)
@tf_path = @tf_dir.to_s + File::SEPARATOR + 'hello world.rb'
end
unless Pry::Helpers::BaseHelpers.windows?
describe "build_editor_invocation_string" do
before do
class << Pry::Editor
public :build_editor_invocation_string
end
end
it 'should shell-escape files' do
invocation_str = Pry::Editor.build_editor_invocation_string(@tf_path, 5, true)
invocation_str.should =~ /#@tf_dir.+hello\\ world\.rb/
end
2013-01-13 22:24:58 +00:00
end
end
describe "build_editor_invocation_string on windows" do
2013-01-13 22:24:58 +00:00
before do
class << Pry::Editor
def windows?; true; end
end
2013-01-13 22:24:58 +00:00
end
2013-01-13 22:24:58 +00:00
after do
class << Pry::Editor
undef windows?
end
2013-01-13 22:24:58 +00:00
end
2013-01-13 22:24:58 +00:00
it "should replace / by \\" do
invocation_str = Pry::Editor.build_editor_invocation_string(@tf_path, 5, true)
invocation_str.should =~ %r(\\#{@tf_dir.basename}\\)
2013-01-13 22:24:58 +00:00
end
2013-01-13 22:24:58 +00:00
it "should not shell-escape files" do
invocation_str = Pry::Editor.build_editor_invocation_string(@tf_path, 5, true)
invocation_str.should =~ /hello world\.rb/
2013-01-13 22:24:58 +00:00
end
end
describe 'invoke_editor with a proc' do
2013-01-13 22:24:58 +00:00
before do
@old_editor = Pry.config.editor
Pry.config.editor = proc{ |file, line, blocking|
2013-01-13 22:24:58 +00:00
@file = file
nil
}
2013-01-13 22:24:58 +00:00
end
2013-01-13 22:24:58 +00:00
after do
Pry.config.editor = @old_editor
end
2013-01-13 22:24:58 +00:00
it 'should not shell-escape files' do
Pry::Editor.invoke_editor(@tf_path, 10, true)
@file.should == "#@tf_path"
2013-01-13 22:24:58 +00:00
end
end
end