CGI#out fails new rubypecs, prints results to original stdout rather than to
the redefined one
----------------------------------------------------------------------------------------------
Key: JRUBY-2710
URL: http://jira.codehaus.org/browse/JRUBY-2710
Project: JRuby
Issue Type: Bug
Components: Core Classes/Modules
Affects Versions: JRuby 1.1.2
Environment: Latest JRuby
Reporter: Vladimir Sizikov
Assignee: Vladimir Sizikov
Fix For: JRuby 1.1.3
CGI#out prints results to wrong output, thus failing the rubyspecs:
{noformat}
>mspec -t j 1.8/library/cgi
.......................................................................Content-Type:
text/html
Content-Length: 0
FContent-Type: text/html
Content-Length: 5
test!FContent-Type: text/html
Content-Length: 10
0123456789FContent-Type: text/html
Content-Length: 0
Set-Cookie: multiple
Set-Cookie: cookies
F.........................................................................
1)
CGI#out it writes a HTMl header based on the passed argument to $stdout FAILED
Expected ""
to equal "Content-Type: text/html\r\nContent-Length: 0\r\n\r\n"
/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `=='
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:16
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process'
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main'
/opt/work/mspec.git/bin/mspec-run:8
2)
CGI#out appends the block's return value to the HTML header FAILED
Expected ""
to equal "Content-Type: text/html\r\nContent-Length: 5\r\n\r\ntest!"
/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `=='
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:21
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process'
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main'
/opt/work/mspec.git/bin/mspec-run:8
3)
CGI#out automatically sets the Content-Length Header based on the block's
return value FAILED
Expected ""
to equal "Content-Type: text/html\r\nContent-Length: 10\r\n\r\n0123456789"
/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `=='
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:26
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process'
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main'
/opt/work/mspec.git/bin/mspec-run:8
4)
CGI#out includes Cookies in the @output_cookies field FAILED
Expected ""
to equal "Content-Type: text/html\r\nContent-Length: 0\r\nSet-Cookie:
multiple\r\nSet-Cookie: cookies\r\n\r\n"
/opt/work/mspec.git/lib/mspec/expectations/expectations.rb:10:in `fail_with'
/opt/work/mspec.git/lib/mspec/matchers/base.rb:9:in `=='
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:32
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:46:in `protect'
/opt/work/mspec.git/lib/mspec/runner/state.rb:60:in `process'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `each'
/opt/work/mspec.git/lib/mspec/runner/state.rb:56:in `process'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:28:in `describe'
/opt/work/mspec.git/lib/mspec/runner/object.rb:11:in `describe'
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:4
/opt/work/spec/ruby/./1.8/library/cgi/out_spec.rb:49:in `load'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `instance_eval'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:124:in `protect'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:49:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `each'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:43:in `files'
/opt/work/mspec.git/lib/mspec/runner/mspec.rb:35:in `process'
/opt/work/mspec.git/lib/mspec/commands/mspec-run.rb:76:in `run'
/opt/work/mspec.git/lib/mspec/utils/script.rb:85:in `main'
/opt/work/mspec.git/bin/mspec-run:8
Finished in 0.722000 seconds
105 files, 148 examples, 105 expectations, 4 failures, 0 errors
{noformat}
The issue, it seems that CGI#out used $DEFAULT_OUTPUT from 'English' library,
but JRuby doesn't redefine
the value of that variable when $stdout is redefined.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email