cgi.rbのテスト
以前にruby-devでmputさんがcgi.rbにはテストが未だに無いとおっしゃるので、
ちょっとずつ書いてみるプロジェクト。勝手に開始。
ただし、昼休みしかやらないので、ほんとにちょっとずつ。
手伝ってレスをくださるかたも募集しながら。
require 'cgi/session'
class TestCgi < Test::Unit::TestCase
def test_escapeHTML
assert_equal(CGI::escapeHTML('Usage: foo "bar" <baz>'),
"Usage: foo "bar" <baz>")
end
def test_unescapeHTML
assert_equal(CGI::unescapeHTML("Usage: foo "bar" <baz>"),
"Usage: foo \"bar\" <baz>")
end
def test_escape
assert_equal(CGI::escape("'Stop!' said Fred"),"%27Stop%21%27+said+Fred")
end
def test_unescape
assert_equal(CGI::unescape("%27Stop%21%27+said+Fred"),"'Stop!' said Fred")
end
def test_escapeElement
assert_equal(CGI::escapeElement('<BR><A HREF="url"></A>', "A", "IMG"),
'<BR><A HREF="url"></A>')
assert_equal(CGI::escapeElement('<BR><A HREF="url"></A>', ["A", "IMG"]),
'<BR><A HREF="url"></A>')
end
endcgi.rbのusageを見ながらescapeElementまでやってみた。unescapeElementはまだ。
実行すると
fujioka@sv5:~/ruby-1.8.5-p2/test/cgi$ ruby test_cgi.rb Loaded suite test_cgi Started .F... Finished in 0.021225 seconds. 1) Failure: test_escapeElement(TestCgi) [test_cgi.rb:21]: <"<BR><A HREF="url"></A>"> expected but was <"<BR><A HREF="url"></A>">. 5 tests, 5 assertions, 1 failures, 0 errors
わはは。usageが間違っている。タイポですな。最後の;を忘れているようです。
def test_escapeElement
assert_equal(CGI::escapeElement('<BR><A HREF="url"></A>', "A", "IMG"),
'<BR><A HREF="url"></A>')
assert_equal(CGI::escapeElement('<BR><A HREF="url"></A>', ["A", "IMG"]),
'<BR><A HREF="url"></A>')
end
endに修正し、実行。
fujioka@sv5:~/ruby-1.8.5-p2/test/cgi$ ruby test_cgi.rb Loaded suite test_cgi Started ..... Finished in 0.003767 seconds. 5 tests, 6 assertions, 0 failures, 0 errors
うまくいきました。