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