2005-11-09 02:41:40 +03:00
|
|
|
require 'test/unit'
|
|
|
|
require 'shellwords'
|
|
|
|
|
|
|
|
class TestShellwords < Test::Unit::TestCase
|
|
|
|
|
|
|
|
include Shellwords
|
|
|
|
|
|
|
|
def setup
|
|
|
|
@not_string = Class.new
|
|
|
|
@cmd = "ruby my_prog.rb | less"
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
def test_string
|
|
|
|
assert_instance_of(Array, shellwords(@cmd))
|
|
|
|
assert_equal(4, shellwords(@cmd).length)
|
|
|
|
end
|
2009-03-06 06:56:38 +03:00
|
|
|
|
2005-11-09 02:41:40 +03:00
|
|
|
def test_unmatched_double_quote
|
|
|
|
bad_cmd = 'one two "three'
|
2008-09-24 21:44:39 +04:00
|
|
|
assert_raise ArgumentError do
|
2005-11-09 02:41:40 +03:00
|
|
|
shellwords(bad_cmd)
|
|
|
|
end
|
|
|
|
end
|
2009-03-06 06:56:38 +03:00
|
|
|
|
2005-11-09 02:41:40 +03:00
|
|
|
def test_unmatched_single_quote
|
|
|
|
bad_cmd = "one two 'three"
|
2008-09-24 21:44:39 +04:00
|
|
|
assert_raise ArgumentError do
|
2005-11-09 02:41:40 +03:00
|
|
|
shellwords(bad_cmd)
|
|
|
|
end
|
|
|
|
end
|
2009-03-06 06:56:38 +03:00
|
|
|
|
2005-11-09 02:41:40 +03:00
|
|
|
def test_unmatched_quotes
|
|
|
|
bad_cmd = "one '"'"''""'""
|
2008-09-24 21:44:39 +04:00
|
|
|
assert_raise ArgumentError do
|
2005-11-09 02:41:40 +03:00
|
|
|
shellwords(bad_cmd)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|