diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2008-10-21 16:58:12 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2008-10-21 16:58:12 +0200 |
commit | 18542c9e00209679bdaacf64075819fb887ec856 (patch) | |
tree | 70fc26b9f2184547274908d386fca77326911393 /actionpack/test/controller | |
parent | a5cdb7a813515fa0cbee23101d2f911b4017ed90 (diff) | |
download | rails-18542c9e00209679bdaacf64075819fb887ec856.tar.gz rails-18542c9e00209679bdaacf64075819fb887ec856.tar.bz2 rails-18542c9e00209679bdaacf64075819fb887ec856.zip |
Dont try to auto-set the etag based on the body if any freshness headers have already been set [DHH/José Valim]
Diffstat (limited to 'actionpack/test/controller')
-rw-r--r-- | actionpack/test/controller/render_test.rb | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/actionpack/test/controller/render_test.rb b/actionpack/test/controller/render_test.rb index 35d9b19cc0..db2d5d885b 100644 --- a/actionpack/test/controller/render_test.rb +++ b/actionpack/test/controller/render_test.rb @@ -48,6 +48,16 @@ class TestController < ActionController::Base render :template => "test/hello_world" end + def render_hello_world_with_last_modified_set + response.last_modified = Date.new(2008, 10, 10).to_time + render :template => "test/hello_world" + end + + def render_hello_world_with_etag_set + response.etag = "hello_world" + render :template => "test/hello_world" + end + def render_hello_world_with_forward_slash render :template => "/test/hello_world" end @@ -1338,12 +1348,21 @@ class EtagRenderTest < Test::Unit::TestCase assert_equal "200 OK", @response.status assert !@response.body.empty? end + + def test_render_should_not_set_etag_when_last_modified_has_been_specified + get :render_hello_world_with_last_modified_set + assert_equal "200 OK", @response.status + assert_not_nil @response.last_modified + assert_nil @response.etag + assert @response.body.present? + end def test_render_with_etag get :render_hello_world_from_variable expected_etag = etag_for('hello david') assert_equal expected_etag, @response.headers['ETag'] - + @response = ActionController::TestResponse.new + @request.if_none_match = expected_etag get :render_hello_world_from_variable assert_equal "304 Not Modified", @response.status @@ -1359,10 +1378,8 @@ class EtagRenderTest < Test::Unit::TestCase end def test_etag_should_not_be_changed_when_already_set - expected_etag = etag_for("hello somewhere else") - @response.headers["ETag"] = expected_etag - get :render_hello_world_from_variable - assert_equal expected_etag, @response.headers['ETag'] + get :render_hello_world_with_etag_set + assert_equal etag_for("hello_world"), @response.headers['ETag'] end def test_etag_should_govern_renders_with_layouts_too |