Functional tests now work properly, bearing in mind whether a user is logged in or...
[depot.git] / test / functional / users_controller_test.rb
index c4a4804786f643991dbb44fe69b5e82be657c9bd..a966d45dde1c8a9c40f56488cc058129e0777089 100644 (file)
@@ -1,45 +1,98 @@
 require 'test_helper'
 
 class UsersControllerTest < ActionController::TestCase
+
+  fixtures :users
+
+
   test "should get index" do
-    get :index
+    get :index, {}, { :user_id => users(:dave).id }
     assert_response :success
     assert_not_nil assigns(:users)
   end
 
   test "should get new" do
-    get :new
+    get :new, {}, { :user_id => users(:dave).id }
     assert_response :success
   end
 
   test "should create user" do
     assert_difference('User.count') do
-      post :create, :user => { }
+      post :create, {:user => {:name => "noone", :password => "password" }}, { :user_id => users(:dave).id }
     end
 
-    assert_redirected_to user_path(assigns(:user))
+    #  redirect to index, not user show page
+    assert_redirected_to users_path
   end
 
   test "should show user" do
-    get :show, :id => users(:one).id
+    get :show, {:id => users(:dave).id}, { :user_id => users(:dave).id }
     assert_response :success
   end
 
   test "should get edit" do
-    get :edit, :id => users(:one).id
+    get :edit, {:id => users(:dave).id}, { :user_id => users(:dave).id }
     assert_response :success
   end
 
   test "should update user" do
-    put :update, :id => users(:one).id, :user => { }
-    assert_redirected_to user_path(assigns(:user))
+    put :update, {:id => users(:dave).id, :user => { }}, { :user_id => users(:dave).id }
+    # redirect to index, not user show page
+    assert_redirected_to users_path
   end
 
   test "should destroy user" do
     assert_difference('User.count', -1) do
-      delete :destroy, :id => users(:one).id
+      delete :destroy, {:id => users(:dave).id}, { :user_id => users(:dave).id }
     end
 
     assert_redirected_to users_path
   end
+
+
+
+
+  test "get index without logged-in user" do
+    get :index
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+  test "get new without logged-in user" do
+    get :new
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+  test "create user without logged-in user" do
+    post :create, :user => { }
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+  test "show user without logged-in user" do
+    get :show, :id => users(:dave).id
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+  test "get edit without logged-in user" do
+    get :edit, :id => users(:dave).id
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+  test "update user without logged-in user" do
+    put :update, :id => users(:dave).id, :user => { }
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+  test "destroy user without logged-in user" do
+    delete :destroy, :id => users(:dave).id
+    assert_redirected_to :controller => "admin", :action => "login"
+    assert_equal "Please log in", flash[:notice]
+  end
+
+
 end