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 end
cgi.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
うまくいきました。