title: Unable to set session hash in Rails 5 controller test
body: <p>According to the <a href="http://edgeguides.rubyonrails.org/testing.html#functional-tests-for-your-controllers" rel="noreferrer">Rails Edge Guide</a> all ActionDispatch::IntegrationTest HTTP requests take optional named keyword arguments:</p>
  
  <p><code>get post_url, params: { id: 12 }, session: { user_id: 5 }</code></p>
  
  <p>Great. Now, I've got the following code in a controller test:</p>
  
  <pre><code>test 'should redirect from login page if user is logged in' do
    get '/login', session: { user_id: users(:stephen).id }
    assert_redirected_to root_url, 'Expected redirect to root'
  end
  </code></pre>
  
  <p>And when I run it, my test <strong>fails</strong> and I see the following deprecation warning:</p>
  
  <pre><code>ActionDispatch::IntegrationTest HTTP request methods will accept only
  the following keyword arguments in future Rails versions:
  params, headers, env, xhr
  </code></pre>
  
  <p>So obviously it's rails is not letting me pass a keyword argument named <strong>session</strong>. </p>
  
  <p>Furthermore, both of the old methods of setting the session in a functional test no longer work either:</p>
  
  <pre><code>test "some thing" do
    session[:user_id] = users(:stephen).id
    # etc
  end
  </code></pre>
  
  <blockquote>
    <p>NoMethodError: undefined method `session' for nil:NilClass</p>
  </blockquote>
  
  <p>And this fails too:</p>
  
  <pre><code>test "some thing" do
    get '/login', nil, nil, { user_id: users(:stephen).id }
    # etc
  end
  </code></pre>
  
  <p>The session hash is just ignored and the deprecation warning about rails only accepting 4 different named arguments appears.</p>
  
  <p>Is anyone else having this sort of trouble with Rails 5.rc1?</p>