@@ -15,40 +15,40 @@ def test_valid?
15
15
16
16
def test_call
17
17
assert_equal \
18
- [ 200 , { "Content-Type" => "text/html" , "Content-Length" => "7" } , [ 'Success' ] ] ,
19
- app . call ( { 'PATH_INFO' => 'success.cgi' , 'REQUEST_METHOD' => 'GET' } )
18
+ [ 200 , { "Content-Type" => "text/html" , "Content-Length" => "7" } , 'Success' ] ,
19
+ call ( { 'PATH_INFO' => 'success.cgi' , 'REQUEST_METHOD' => 'GET' } )
20
20
assert_equal \
21
21
[ 200 , { "Content-Type" => "text/html" } , 'Endpoint' ] ,
22
- app . call ( { 'PATH_INFO' => 'missing.cgi' } )
23
- assert_equal [ 200 , { } , [ '' ] ] ,
24
- app . call ( { 'PATH_INFO' => 'empty.cgi' , 'REQUEST_METHOD' => 'GET' } )
25
- assert_equal [ 404 , { "Content-Type" => "text/html" } , [ '' ] ] ,
26
- app . call ( { 'PATH_INFO' => '404.cgi' , 'REQUEST_METHOD' => 'GET' } )
27
- assert_equal [ 200 , { "Content-Type" => "text/html" , 'Set-Cookie' => "cookie1\n cookie2" } , [ '' ] ] ,
28
- app . call ( { 'PATH_INFO' => 'dup_headers.cgi' , 'REQUEST_METHOD' => 'GET' } )
22
+ call ( { 'PATH_INFO' => 'missing.cgi' } )
23
+ assert_equal [ 200 , { } , '' ] ,
24
+ call ( { 'PATH_INFO' => 'empty.cgi' , 'REQUEST_METHOD' => 'GET' } )
25
+ assert_equal [ 404 , { "Content-Type" => "text/html" } , '' ] ,
26
+ call ( { 'PATH_INFO' => '404.cgi' , 'REQUEST_METHOD' => 'GET' } )
27
+ assert_equal [ 200 , { "Content-Type" => "text/html" , 'Set-Cookie' => "cookie1\n cookie2" } , '' ] ,
28
+ call ( { 'PATH_INFO' => 'dup_headers.cgi' , 'REQUEST_METHOD' => 'GET' } )
29
29
30
30
assert_raises Rack ::Legacy ::ExecutionError do
31
31
$stderr. reopen open ( '/dev/null' , 'w' )
32
- app . call ( { 'PATH_INFO' => 'error.cgi' , 'REQUEST_METHOD' => 'GET' } )
32
+ call ( { 'PATH_INFO' => 'error.cgi' , 'REQUEST_METHOD' => 'GET' } )
33
33
$stderr. reopen STDERR
34
34
end
35
35
36
36
assert_raises Rack ::Legacy ::ExecutionError do
37
37
$stderr. reopen open ( '/dev/null' , 'w' )
38
- app . call ( { 'PATH_INFO' => 'syntax_error.cgi' , 'REQUEST_METHOD' => 'GET' } )
38
+ call ( { 'PATH_INFO' => 'syntax_error.cgi' , 'REQUEST_METHOD' => 'GET' } )
39
39
$stderr. reopen STDERR
40
40
end
41
41
42
42
assert_equal \
43
- [ 200 , { "Content-Type" => "text/html" , "Content-Length" => "5" } , [ 'query' ] ] ,
44
- app . call ( {
43
+ [ 200 , { "Content-Type" => "text/html" , "Content-Length" => "5" } , 'query' ] ,
44
+ call ( {
45
45
'PATH_INFO' => 'param.cgi' ,
46
46
'QUERY_STRING' => 'q=query' ,
47
47
'REQUEST_METHOD' => 'GET'
48
48
} )
49
49
assert_equal \
50
- [ 200 , { "Content-Type" => "text/html" , "Content-Length" => "4" } , [ 'post' ] ] ,
51
- app . call ( {
50
+ [ 200 , { "Content-Type" => "text/html" , "Content-Length" => "4" } , 'post' ] ,
51
+ call ( {
52
52
'PATH_INFO' => 'param.cgi' ,
53
53
'REQUEST_METHOD' => 'POST' ,
54
54
'CONTENT_LENGTH' => '6' ,
@@ -62,8 +62,8 @@ def test_call
62
62
end
63
63
64
64
def test_environment
65
- status , headers , body = *app . call ( { 'PATH_INFO' => 'env.cgi' , 'REQUEST_METHOD' => 'GET' } )
66
- env = eval ( body [ 0 ] )
65
+ status , headers , body = *call ( { 'PATH_INFO' => 'env.cgi' , 'REQUEST_METHOD' => 'GET' } )
66
+ env = eval body
67
67
assert File . join ( File . dirname ( __FILE__ ) , '../fixtures' ) , env [ 'DOCUMENT_ROOT' ]
68
68
assert 'Rack Legacy' , env [ 'SERVER_SOFTWARE' ]
69
69
end
@@ -74,9 +74,15 @@ def fixture_file path
74
74
File . expand_path path , File . join ( File . dirname ( __FILE__ ) , '../fixtures' )
75
75
end
76
76
77
+ def call env
78
+ status , headers , body = *app . call ( env )
79
+ body = body . read
80
+ [ status , headers , body ]
81
+ end
82
+
77
83
def app
78
- Rack ::Legacy ::Cgi . new \
79
- proc { [ 200 , { 'Content-Type' => 'text/html' } , 'Endpoint' ] } ,
84
+ @app ||= Rack ::Legacy ::Cgi . new \
85
+ proc { [ 200 , { 'Content-Type' => 'text/html' } , StringIO . new ( 'Endpoint' ) ] } ,
80
86
File . join ( File . dirname ( __FILE__ ) , '../fixtures' )
81
87
end
82
88
0 commit comments