From a86b986805ef107ce34db6aa4ba493ff984379cb Mon Sep 17 00:00:00 2001 From: albert Date: Fri, 28 Jan 2011 18:12:09 -0500 Subject: [PATCH] added session controller test --- app/views/{session => sessions}/new.html.erb | 2 +- test/functional/sessions_controller_test.rb | 40 ++++++++++++++++++-- 2 files changed, 38 insertions(+), 4 deletions(-) rename app/views/{session => sessions}/new.html.erb (96%) diff --git a/app/views/session/new.html.erb b/app/views/sessions/new.html.erb similarity index 96% rename from app/views/session/new.html.erb rename to app/views/sessions/new.html.erb index dda7b22a2..e142d279e 100644 --- a/app/views/session/new.html.erb +++ b/app/views/sessions/new.html.erb @@ -2,7 +2,7 @@

Login

- <% form_tag(session_path) do %> + <%= form_tag(session_path) do %> diff --git a/test/functional/sessions_controller_test.rb b/test/functional/sessions_controller_test.rb index 56a35d16e..de0c94e2d 100644 --- a/test/functional/sessions_controller_test.rb +++ b/test/functional/sessions_controller_test.rb @@ -1,8 +1,42 @@ require 'test_helper' class SessionsControllerTest < ActionController::TestCase - # Replace this with your real tests. - test "the truth" do - assert true + context "the sessions controller" do + setup do + @user = Factory.create(:user) + end + + context "new action" do + should "render" do + get :new + assert_response :success + end + end + + context "create action" do + should "create a new session" do + post :create, {:name => @user.name, :password => "password"} + assert_redirected_to posts_path + assert_equal(@user.id, session[:user_id]) + end + end + + context "destroy action" do + setup do + CurrentUser.user = @user + CurrentUser.ip_addr = "127.0.0.1" + end + + teardown do + CurrentUser.user = nil + CurrentUser.ip_addr = nil + end + + should "clear the session" do + post :destroy, {}, {:user_id => @user.id} + assert_redirected_to posts_path + assert_nil(session[:user_id]) + end + end end end