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


Reply via email to