mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
c3e8d15e8b
When calling assigns(:...) or cookies(:...), template assertions would be reset, which they obviously shouldn't be.
110 lines
2.9 KiB
Ruby
110 lines
2.9 KiB
Ruby
require 'abstract_unit'
|
|
|
|
class AssertTemplateController < ActionController::Base
|
|
def render_with_partial
|
|
render partial: 'test/partial'
|
|
end
|
|
|
|
def render_with_template
|
|
render 'test/hello_world'
|
|
end
|
|
|
|
def render_with_layout
|
|
@variable_for_layout = 'hello'
|
|
render 'test/hello_world', layout: "layouts/standard"
|
|
end
|
|
|
|
def render_with_file
|
|
render file: 'README.rdoc'
|
|
end
|
|
|
|
def render_nothing
|
|
head :ok
|
|
end
|
|
end
|
|
|
|
class AssertTemplateControllerTest < ActionDispatch::IntegrationTest
|
|
def test_template_reset_between_requests
|
|
get '/assert_template/render_with_template'
|
|
assert_template 'test/hello_world'
|
|
|
|
get '/assert_template/render_nothing'
|
|
assert_template nil
|
|
end
|
|
|
|
def test_partial_reset_between_requests
|
|
get '/assert_template/render_with_partial'
|
|
assert_template partial: 'test/_partial'
|
|
|
|
get '/assert_template/render_nothing'
|
|
assert_template partial: nil
|
|
end
|
|
|
|
def test_layout_reset_between_requests
|
|
get '/assert_template/render_with_layout'
|
|
assert_template layout: 'layouts/standard'
|
|
|
|
get '/assert_template/render_nothing'
|
|
assert_template layout: nil
|
|
end
|
|
|
|
def test_file_reset_between_requests
|
|
get '/assert_template/render_with_file'
|
|
assert_template file: 'README.rdoc'
|
|
|
|
get '/assert_template/render_nothing'
|
|
assert_template file: nil
|
|
end
|
|
|
|
def test_template_reset_between_requests_when_opening_a_session
|
|
open_session do |session|
|
|
session.get '/assert_template/render_with_template'
|
|
session.assert_template 'test/hello_world'
|
|
|
|
session.get '/assert_template/render_nothing'
|
|
session.assert_template nil
|
|
end
|
|
end
|
|
|
|
def test_partial_reset_between_requests_when_opening_a_session
|
|
open_session do |session|
|
|
session.get '/assert_template/render_with_partial'
|
|
session.assert_template partial: 'test/_partial'
|
|
|
|
session.get '/assert_template/render_nothing'
|
|
session.assert_template partial: nil
|
|
end
|
|
end
|
|
|
|
def test_layout_reset_between_requests_when_opening_a_session
|
|
open_session do |session|
|
|
session.get '/assert_template/render_with_layout'
|
|
session.assert_template layout: 'layouts/standard'
|
|
|
|
session.get '/assert_template/render_nothing'
|
|
session.assert_template layout: nil
|
|
end
|
|
end
|
|
|
|
def test_file_reset_between_requests_when_opening_a_session
|
|
open_session do |session|
|
|
session.get '/assert_template/render_with_file'
|
|
session.assert_template file: 'README.rdoc'
|
|
|
|
session.get '/assert_template/render_nothing'
|
|
session.assert_template file: nil
|
|
end
|
|
end
|
|
|
|
def test_assigns_do_not_reset_template_assertion
|
|
get '/assert_template/render_with_layout'
|
|
assert_equal 'hello', assigns(:variable_for_layout)
|
|
assert_template layout: 'layouts/standard'
|
|
end
|
|
|
|
def test_cookies_do_not_reset_template_assertion
|
|
get '/assert_template/render_with_layout'
|
|
cookies
|
|
assert_template layout: 'layouts/standard'
|
|
end
|
|
end
|