From 6837f3dc54ac4afd89c185e520c250ef2eb42c4e Mon Sep 17 00:00:00 2001 From: xibbar Date: Sun, 4 Nov 2012 11:48:05 +0000 Subject: Sun Nov 4 20:41:28 2012 Takeyuki FUJIOKA * lib/cgi.rb, lib/cgi/*/rb: rename CGI#header to CGI#http_header, add and update HTML5 tag generater. [Bug #7110] Patch provided by Marcus Stollsteimer, thank you ! git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@37466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- test/cgi/test_cgi_core.rb | 4 ---- test/cgi/test_cgi_header.rb | 46 ++++++++++++++++++++--------------------- test/cgi/test_cgi_modruby.rb | 6 +++--- test/cgi/test_cgi_tag_helper.rb | 13 ++++++++++++ 4 files changed, 39 insertions(+), 30 deletions(-) (limited to 'test') diff --git a/test/cgi/test_cgi_core.rb b/test/cgi/test_cgi_core.rb index 171ff7b8bc..08a8d383de 100644 --- a/test/cgi/test_cgi_core.rb +++ b/test/cgi/test_cgi_core.rb @@ -357,10 +357,6 @@ class CGICoreTest < Test::Unit::TestCase cgi = CGI.new('html5') expected = '' assert_equal(expected, cgi.doctype) - # cgi.header not broken - expected = "Content-Type: text/html\r\n\r\n" - actual = cgi.header - assert_equal(expected, actual) end diff --git a/test/cgi/test_cgi_header.rb b/test/cgi/test_cgi_header.rb index 4d458b1a71..c6306eb0ff 100644 --- a/test/cgi/test_cgi_header.rb +++ b/test/cgi/test_cgi_header.rb @@ -21,28 +21,28 @@ class CGIHeaderTest < Test::Unit::TestCase end - def test_cgi_header_simple + def test_cgi_http_header_simple cgi = CGI.new ## default content type expected = "Content-Type: text/html\r\n\r\n" - actual = cgi.header + actual = cgi.http_header assert_equal(expected, actual) ## content type specified as string expected = "Content-Type: text/xhtml; charset=utf8\r\n\r\n" - actual = cgi.header('text/xhtml; charset=utf8') + actual = cgi.http_header('text/xhtml; charset=utf8') assert_equal(expected, actual) ## content type specified as hash expected = "Content-Type: image/png\r\n\r\n" - actual = cgi.header('type'=>'image/png') + actual = cgi.http_header('type'=>'image/png') assert_equal(expected, actual) ## charset specified expected = "Content-Type: text/html; charset=utf8\r\n\r\n" - actual = cgi.header('charset'=>'utf8') + actual = cgi.http_header('charset'=>'utf8') assert_equal(expected, actual) end - def test_cgi_header_complex + def test_cgi_http_header_complex cgi = CGI.new options = { 'type' => 'text/xhtml', @@ -64,12 +64,12 @@ class CGIHeaderTest < Test::Unit::TestCase expected << "Expires: Sun, 23 Jan 2000 12:34:56 GMT\r\n" expected << "location: http://www.ruby-lang.org/\r\n" expected << "\r\n" - actual = cgi.header(options) + actual = cgi.http_header(options) assert_equal(expected, actual) end - def test_cgi_header_argerr + def test_cgi_http_header_argerr cgi = CGI.new #expected = NoMethodError # must be ArgumentError if RUBY_VERSION>="1.9.0" @@ -78,12 +78,12 @@ class CGIHeaderTest < Test::Unit::TestCase expected = NoMethodError # for Ruby1.8 end assert_raise(expected) do - cgi.header(nil) + cgi.http_header(nil) end end - def test_cgi_header_cookie + def test_cgi_http_header_cookie cgi = CGI.new cookie1 = CGI::Cookie.new('name1', 'abc', '123') cookie2 = CGI::Cookie.new('name'=>'name2', 'value'=>'value2', 'secure'=>true) @@ -92,25 +92,25 @@ class CGIHeaderTest < Test::Unit::TestCase c1 = "Set-Cookie: name1=abc&123; path=\r\n" c2 = "Set-Cookie: name2=value2; path=; secure\r\n" ## CGI::Cookie object - actual = cgi.header('cookie'=>cookie1) + actual = cgi.http_header('cookie'=>cookie1) expected = ctype + c1 + sep assert_equal(expected, actual) ## String - actual = cgi.header('cookie'=>cookie2.to_s) + actual = cgi.http_header('cookie'=>cookie2.to_s) expected = ctype + c2 + sep assert_equal(expected, actual) ## Array - actual = cgi.header('cookie'=>[cookie1, cookie2]) + actual = cgi.http_header('cookie'=>[cookie1, cookie2]) expected = ctype + c1 + c2 + sep assert_equal(expected, actual) ## Hash - actual = cgi.header('cookie'=>{'name1'=>cookie1, 'name2'=>cookie2}) + actual = cgi.http_header('cookie'=>{'name1'=>cookie1, 'name2'=>cookie2}) expected = ctype + c1 + c2 + sep assert_equal(expected, actual) end - def test_cgi_header_output_cookies + def test_cgi_http_header_output_cookies cgi = CGI.new ## output cookies cookies = [ CGI::Cookie.new('name1', 'abc', '123'), @@ -122,28 +122,28 @@ class CGIHeaderTest < Test::Unit::TestCase expected << "Set-Cookie: name2=value2; path=; secure\r\n" expected << "\r\n" ## header when string - actual = cgi.header('text/html; charset=utf8') + actual = cgi.http_header('text/html; charset=utf8') assert_equal(expected, actual) ## _header_for_string - actual = cgi.header('type'=>'text/html', 'charset'=>'utf8') + actual = cgi.http_header('type'=>'text/html', 'charset'=>'utf8') assert_equal(expected, actual) end - def test_cgi_header_nph + def test_cgi_http_header_nph time_start = Time.now.to_i cgi = CGI.new ## 'nph' is true ENV['SERVER_SOFTWARE'] = 'Apache 2.2.0' - actual1 = cgi.header('nph'=>true) + actual1 = cgi.http_header('nph'=>true) ## when old IIS, NPH-mode is forced ENV['SERVER_SOFTWARE'] = 'IIS/4.0' - actual2 = cgi.header - actual3 = cgi.header('status'=>'REDIRECT', 'location'=>'http://www.example.com/') + actual2 = cgi.http_header + actual3 = cgi.http_header('status'=>'REDIRECT', 'location'=>'http://www.example.com/') ## newer IIS doesn't require NPH-mode ## [ruby-dev:30537] ENV['SERVER_SOFTWARE'] = 'IIS/5.0' - actual4 = cgi.header - actual5 = cgi.header('status'=>'REDIRECT', 'location'=>'http://www.example.com/') + actual4 = cgi.http_header + actual5 = cgi.http_header('status'=>'REDIRECT', 'location'=>'http://www.example.com/') time_end = Time.now.to_i date = /^Date: ([A-Z][a-z]{2}, \d{2} [A-Z][a-z]{2} \d{4} \d\d:\d\d:\d\d GMT)\r\n/ [actual1, actual2, actual3].each do |actual| diff --git a/test/cgi/test_cgi_modruby.rb b/test/cgi/test_cgi_modruby.rb index b41b9bd007..b0fc442bc9 100644 --- a/test/cgi/test_cgi_modruby.rb +++ b/test/cgi/test_cgi_modruby.rb @@ -30,7 +30,7 @@ class CGIModrubyTest < Test::Unit::TestCase cgi = CGI.new assert(req._setup_cgi_env_invoked?) assert(! req._send_http_header_invoked?) - actual = cgi.header + actual = cgi.http_header assert_equal('', actual) assert_equal('text/html', req.content_type) assert(req._send_http_header_invoked?) @@ -51,7 +51,7 @@ class CGIModrubyTest < Test::Unit::TestCase } assert(req._setup_cgi_env_invoked?) assert(! req._send_http_header_invoked?) - actual = cgi.header(options) + actual = cgi.http_header(options) assert_equal('', actual) assert_equal('image/gif', req.content_type) assert_equal('403 Forbidden', req.status_line) @@ -71,7 +71,7 @@ class CGIModrubyTest < Test::Unit::TestCase 'status' => '200 OK', 'location' => 'http://www.example.com/', } - cgi.header(options) + cgi.http_header(options) assert_equal('200 OK', req.status_line) # should be '302 Found' ? assert_equal(302, req.status) assert_equal('http://www.example.com/', req.headers_out['location']) diff --git a/test/cgi/test_cgi_tag_helper.rb b/test/cgi/test_cgi_tag_helper.rb index 29306578b0..51d1d58bd3 100644 --- a/test/cgi/test_cgi_tag_helper.rb +++ b/test/cgi/test_cgi_tag_helper.rb @@ -338,4 +338,17 @@ class CGITagHelperTest < Test::Unit::TestCase end =end + def test_cgi_tag_helper_html5 + @environ = { + 'REQUEST_METHOD' => 'GET', + } + ENV.update(@environ) + ## html5 + cgi = CGI.new('html5') + assert_equal('
',cgi.header) + assert_equal('
',cgi.footer) + assert_equal('
',cgi.article) + assert_equal('
',cgi.section) + end + end -- cgit v1.2.3