Hey guys,

I just ran into a situation where this test started failing after upgrading
to 2.3.2 from 2.2.2:

xhr :post, :signin, :email => "[email protected]", :password => "correct"
assert_template "signin/link"

xhr :post, :signin, :email => "[email protected]"
assert_template "signin/index"


The second assert is failing.  Instead of rendering the index template, it's
rendering the link template again.  After a bit of debugging, I saw that the
second request has :password => "correct" being passed in as a parameter.

I tracked it down to action_controller/request.rb:

420     # Override Rack's GET method to support indifferent access
421     def GET
422       @env["action_controller.request.query_parameters"] ||=
normalize_parameters(super)
423     end
424     alias_method :query_parameters, :GET
425
426     # Override Rack's POST method to support indifferent access
427     def POST
428       @env["action_controller.request.request_parameters"] ||=
normalize_parameters(super)
429     end
430     alias_method :request_parameters, :POST

In action_controller/test_process.rb, there are several places where we try
to clean up the current request by setting @parameters to nil, but this
ignores the fact that request_parameters no longer relies on @parameters.
It's now duping @env["action_controller.request.request_parameters"]

So I'm thinking test_process needs a 'clear_parameters' method:

def clear_parameters
  @request.env.delete('action_controller.request.request_parameters')
  @request.env.delete('action_controller.request.query_parameters')
end

And that this method should be called in place of @parameters = nil

This is my first foray into the world of Rack, so I could be way off base
here.  Thoughts?

Thanks,
Ryan

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to