summaryrefslogtreecommitdiff
path: root/test/test-main.rb
diff options
context:
space:
mode:
Diffstat (limited to 'test/test-main.rb')
-rw-r--r--test/test-main.rb39
1 files changed, 21 insertions, 18 deletions
diff --git a/test/test-main.rb b/test/test-main.rb
index dab8006..5db3f52 100644
--- a/test/test-main.rb
+++ b/test/test-main.rb
@@ -152,17 +152,8 @@ END
end
File.open(@filename, 'w') { |f| f.write(@input) } if @filename
begin
- #if @options.is_a?(Array)
- # command = "ruby #{$script} #{@options.join(' ')} #{@filename}"
- #else
- # command = "ruby #{$script} #{@options} #{@filename}"
- #end
- #output = `#{command}`
- if @options.is_a?(Array)
- argv = @options + [ @filename ]
- else
- argv = "#{@options} #{@filename}".split
- end
+ argv = @options.is_a?(Array) ? @options.dup : @options.split
+ argv << @filename if @filename
$stdout = output = StringWriter.new
Erubis::Main.new.execute(argv)
ensure
@@ -172,6 +163,12 @@ END
assert_text_equal(@expected, output)
end
+ def _error_test(errclass, errmsg)
+ ex = assert_raise(errclass) { _test() }
+ assert_equal(errmsg, ex.message)
+ end
+
+
def test_help # -h
@options = '-h'
m = Erubis::Main.new
@@ -242,7 +239,7 @@ END
-:7: syntax error, unexpected $end, expecting ')'
END
errmsgs << <<'END'
-7: syntax error, unexpected $end, expecting keyword_end or keyword_endfor
+7: syntax error, unexpected $end, expecting keyword_end
END
else
errmsgs << <<'END'
@@ -620,24 +617,30 @@ END
def test_invalid_option # -1 (invalid option)
@input = INPUT
@options = '-1'
- ex = assert_raise(Erubis::CommandOptionError) { _test() }
- assert_equal("-1: unknown option.", ex.message)
+ _error_test(Erubis::CommandOptionError, "-1: unknown option.")
end
def test_invalid_enhancer # -E hoge
@options = '-E hoge'
errmsg = "hoge: no such Enhancer (try '-h' to show all enhancers)."
- ex = assert_raise(Erubis::CommandOptionError) { _test() }
- assert_equal(errmsg, ex.message)
+ _error_test(Erubis::CommandOptionError, errmsg)
end
def test_invalid_lang # -l hoge
@options = '-l hoge'
errmsg = "-l hoge: invalid language name (class Erubis::Ehoge not found)."
- ex = assert_raise(Erubis::CommandOptionError) { _test() }
- assert_equal(errmsg, ex.message)
+ _error_test(Erubis::CommandOptionError, errmsg)
+ end
+
+
+ def test_missing_argument # -E
+ @filename = false
+ @options = '-E'
+ _error_test(Erubis::CommandOptionError, "-E: enhancers required.")
+ @options = '-l'
+ _error_test(Erubis::CommandOptionError, "-l: lang required.")
end