diff options
author | Santiago Pastorino <santiago@wyeworks.com> | 2015-04-15 15:30:27 -0300 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2015-06-11 16:54:09 -0300 |
commit | 032778eefb4439a72c2933ea0bd4a7a0ef776234 (patch) | |
tree | 4f79724c4543a479f2271a16354c91f95f5997e6 /actionpack/test/controller/api/conditional_get_test.rb | |
parent | ed7d787e120347ebc97647014a5e1fef7a34c19c (diff) | |
download | rails-032778eefb4439a72c2933ea0bd4a7a0ef776234.tar.gz rails-032778eefb4439a72c2933ea0bd4a7a0ef776234.tar.bz2 rails-032778eefb4439a72c2933ea0bd4a7a0ef776234.zip |
Add ActionController API functionality
Diffstat (limited to 'actionpack/test/controller/api/conditional_get_test.rb')
-rw-r--r-- | actionpack/test/controller/api/conditional_get_test.rb | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/actionpack/test/controller/api/conditional_get_test.rb b/actionpack/test/controller/api/conditional_get_test.rb new file mode 100644 index 0000000000..e729ea9d33 --- /dev/null +++ b/actionpack/test/controller/api/conditional_get_test.rb @@ -0,0 +1,57 @@ +require 'abstract_unit' +require 'active_support/core_ext/integer/time' +require 'active_support/core_ext/numeric/time' + +class ConditionalGetApiController < ActionController::API + before_action :handle_last_modified_and_etags, :only => :two + + def one + if stale?(:last_modified => Time.now.utc.beginning_of_day, :etag => [:foo, 123]) + render :text => "Hi!" + end + end + + def two + render :text => "Hi!" + end + + private + + def handle_last_modified_and_etags + fresh_when(:last_modified => Time.now.utc.beginning_of_day, :etag => [ :foo, 123 ]) + end +end + +class ConditionalGetApiTest < ActionController::TestCase + tests ConditionalGetApiController + + def setup + @last_modified = Time.now.utc.beginning_of_day.httpdate + end + + def test_request_with_bang_gets_last_modified + get :two + assert_equal @last_modified, @response.headers['Last-Modified'] + assert_response :success + end + + def test_request_with_bang_obeys_last_modified + @request.if_modified_since = @last_modified + get :two + assert_response :not_modified + end + + def test_last_modified_works_with_less_than_too + @request.if_modified_since = 5.years.ago.httpdate + get :two + assert_response :success + end + + def test_request_not_modified + @request.if_modified_since = @last_modified + get :one + assert_equal 304, @response.status.to_i + assert @response.body.blank? + assert_equal @last_modified, @response.headers['Last-Modified'] + end +end |