diff options
Diffstat (limited to 'actionpack/test/dispatch/session')
5 files changed, 55 insertions, 31 deletions
diff --git a/actionpack/test/dispatch/session/abstract_store_test.rb b/actionpack/test/dispatch/session/abstract_store_test.rb index fe1a7b4f86..d38d1bbce6 100644 --- a/actionpack/test/dispatch/session/abstract_store_test.rb +++ b/actionpack/test/dispatch/session/abstract_store_test.rb @@ -10,13 +10,13 @@ module ActionDispatch            super          end -        def get_session(env, sid) +        def find_session(env, sid)            sid ||= 1            session = @sessions[sid] ||= {}            [sid, session]          end -        def set_session(env, sid, session, options) +        def write_session(env, sid, session, options)            @sessions[sid] = session          end        end @@ -27,7 +27,7 @@ module ActionDispatch          as.call(env)          assert @env -        assert Request::Session.find @env +        assert Request::Session.find ActionDispatch::Request.new @env        end        def test_new_session_object_is_merged_with_old @@ -36,11 +36,11 @@ module ActionDispatch          as.call(env)          assert @env -        session = Request::Session.find @env +        session = Request::Session.find ActionDispatch::Request.new @env          session['foo'] = 'bar'          as.call(@env) -        session1 = Request::Session.find @env +        session1 = Request::Session.find ActionDispatch::Request.new @env          assert_not_equal session, session1          assert_equal session.to_hash, session1.to_hash diff --git a/actionpack/test/dispatch/session/cache_store_test.rb b/actionpack/test/dispatch/session/cache_store_test.rb index 22a46b0930..dbb996973d 100644 --- a/actionpack/test/dispatch/session/cache_store_test.rb +++ b/actionpack/test/dispatch/session/cache_store_test.rb @@ -18,11 +18,11 @@ class CacheStoreTest < ActionDispatch::IntegrationTest      end      def get_session_value -      render :text => "foo: #{session[:foo].inspect}" +      render plain: "foo: #{session[:foo].inspect}"      end      def get_session_id -      render :text => "#{request.session.id}" +      render plain: "#{request.session.id}"      end      def call_reset_session @@ -170,7 +170,7 @@ class CacheStoreTest < ActionDispatch::IntegrationTest          @app = self.class.build_app(set) do |middleware|            @cache = ActiveSupport::Cache::MemoryStore.new            middleware.use ActionDispatch::Session::CacheStore, :key => '_session_id', :cache => @cache -          middleware.delete "ActionDispatch::ShowExceptions" +          middleware.delete ActionDispatch::ShowExceptions          end          yield diff --git a/actionpack/test/dispatch/session/cookie_store_test.rb b/actionpack/test/dispatch/session/cookie_store_test.rb index e7f4235de8..f07e215e3a 100644 --- a/actionpack/test/dispatch/session/cookie_store_test.rb +++ b/actionpack/test/dispatch/session/cookie_store_test.rb @@ -16,25 +16,25 @@ class CookieStoreTest < ActionDispatch::IntegrationTest      end      def persistent_session_id -      render :text => session[:session_id] +      render plain: session[:session_id]      end      def set_session_value        session[:foo] = "bar" -      render :text => Rack::Utils.escape(Verifier.generate(session.to_hash)) +      render plain: Rack::Utils.escape(Verifier.generate(session.to_hash))      end      def get_session_value -      render :text => "foo: #{session[:foo].inspect}" +      render plain: "foo: #{session[:foo].inspect}"      end      def get_session_id -      render :text => "id: #{request.session.id}" +      render plain: "id: #{request.session.id}"      end      def get_class_after_reset_session        reset_session -      render :text => "class: #{session.class}" +      render plain: "class: #{session.class}"      end      def call_session_clear @@ -274,28 +274,32 @@ class CookieStoreTest < ActionDispatch::IntegrationTest      with_test_route_set(:expire_after => 5.hours) do        # First request accesses the session        time = Time.local(2008, 4, 24) -      Time.stubs(:now).returns(time) -      expected_expiry = (time + 5.hours).gmtime.strftime("%a, %d %b %Y %H:%M:%S -0000") +      cookie_body = nil -      cookies[SessionKey] = SignedBar +      Time.stub :now, time do +        expected_expiry = (time + 5.hours).gmtime.strftime("%a, %d %b %Y %H:%M:%S -0000") -      get '/set_session_value' -      assert_response :success +        cookies[SessionKey] = SignedBar -      cookie_body = response.body -      assert_equal "_myapp_session=#{cookie_body}; path=/; expires=#{expected_expiry}; HttpOnly", -        headers['Set-Cookie'] +        get '/set_session_value' +        assert_response :success + +        cookie_body = response.body +        assert_equal "_myapp_session=#{cookie_body}; path=/; expires=#{expected_expiry}; HttpOnly", +          headers['Set-Cookie'] +      end        # Second request does not access the session        time = Time.local(2008, 4, 25) -      Time.stubs(:now).returns(time) -      expected_expiry = (time + 5.hours).gmtime.strftime("%a, %d %b %Y %H:%M:%S -0000") +      Time.stub :now, time do +        expected_expiry = (time + 5.hours).gmtime.strftime("%a, %d %b %Y %H:%M:%S -0000") -      get '/no_session_access' -      assert_response :success +        get '/no_session_access' +        assert_response :success -      assert_equal "_myapp_session=#{cookie_body}; path=/; expires=#{expected_expiry}; HttpOnly", -        headers['Set-Cookie'] +        assert_equal "_myapp_session=#{cookie_body}; path=/; expires=#{expected_expiry}; HttpOnly", +          headers['Set-Cookie'] +      end      end    end @@ -348,7 +352,7 @@ class CookieStoreTest < ActionDispatch::IntegrationTest          @app = self.class.build_app(set) do |middleware|            middleware.use ActionDispatch::Session::CookieStore, options -          middleware.delete "ActionDispatch::ShowExceptions" +          middleware.delete ActionDispatch::ShowExceptions          end          yield diff --git a/actionpack/test/dispatch/session/mem_cache_store_test.rb b/actionpack/test/dispatch/session/mem_cache_store_test.rb index 9a5d5131c0..3fed9bad4f 100644 --- a/actionpack/test/dispatch/session/mem_cache_store_test.rb +++ b/actionpack/test/dispatch/session/mem_cache_store_test.rb @@ -19,11 +19,11 @@ class MemCacheStoreTest < ActionDispatch::IntegrationTest      end      def get_session_value -      render :text => "foo: #{session[:foo].inspect}" +      render plain: "foo: #{session[:foo].inspect}"      end      def get_session_id -      render :text => "#{request.session.id}" +      render plain: "#{request.session.id}"      end      def call_reset_session @@ -192,7 +192,7 @@ class MemCacheStoreTest < ActionDispatch::IntegrationTest          @app = self.class.build_app(set) do |middleware|            middleware.use ActionDispatch::Session::MemCacheStore, :key => '_session_id', :namespace => "mem_cache_store_test:#{SecureRandom.hex(10)}" -          middleware.delete "ActionDispatch::ShowExceptions" +          middleware.delete ActionDispatch::ShowExceptions          end          yield diff --git a/actionpack/test/dispatch/session/test_session_test.rb b/actionpack/test/dispatch/session/test_session_test.rb index d30461a623..3e61d123e3 100644 --- a/actionpack/test/dispatch/session/test_session_test.rb +++ b/actionpack/test/dispatch/session/test_session_test.rb @@ -40,4 +40,24 @@ class ActionController::TestSessionTest < ActiveSupport::TestCase      assert_equal %w(one two), session.keys      assert_equal %w(1 2), session.values    end + +  def test_fetch_returns_default +    session = ActionController::TestSession.new(one: '1') +    assert_equal('2', session.fetch(:two, '2')) +  end + +  def test_fetch_on_symbol_returns_value +    session = ActionController::TestSession.new(one: '1') +    assert_equal('1', session.fetch(:one)) +  end + +  def test_fetch_on_string_returns_value +    session = ActionController::TestSession.new(one: '1') +    assert_equal('1', session.fetch('one')) +  end + +  def test_fetch_returns_block_value +    session = ActionController::TestSession.new(one: '1') +    assert_equal(2, session.fetch('2') { |key| key.to_i }) +  end  end  | 
