summaryrefslogtreecommitdiff
path: root/users/test/functional/users_controller_test.rb
diff options
context:
space:
mode:
authorjessib <jessib@leap.se>2012-12-07 10:31:12 -0800
committerjessib <jessib@leap.se>2012-12-07 10:31:12 -0800
commite1a004e2b24c2c235452469abfefa033e24435b2 (patch)
treea4b1c89a5aa4d5ccb3c17521499c999dedd5842d /users/test/functional/users_controller_test.rb
parent4793c2b770fcb018303b7ab226b75cc218364327 (diff)
parent8282b83c798ba4e5c1e26ec8243b82669b3ee6d4 (diff)
Merge branch 'master' into help_develop
Conflicts: app/views/layouts/application.html.haml help/app/controllers/tickets_controller.rb help/test/functional/tickets_controller_test.rb users/test/support/stub_record_helper.rb
Diffstat (limited to 'users/test/functional/users_controller_test.rb')
-rw-r--r--users/test/functional/users_controller_test.rb55
1 files changed, 46 insertions, 9 deletions
diff --git a/users/test/functional/users_controller_test.rb b/users/test/functional/users_controller_test.rb
index ab29845..1840a72 100644
--- a/users/test/functional/users_controller_test.rb
+++ b/users/test/functional/users_controller_test.rb
@@ -5,6 +5,7 @@ class UsersControllerTest < ActionController::TestCase
test "should get new" do
get :new
+
assert_equal User, assigns(:user).class
assert_response :success
end
@@ -12,7 +13,9 @@ class UsersControllerTest < ActionController::TestCase
test "should create new user" do
user = stub_record User
User.expects(:create).with(user.params).returns(user)
+
post :create, :user => user.params, :format => :json
+
assert_nil session[:user_id]
assert_json_response user
assert_response :success
@@ -24,50 +27,81 @@ class UsersControllerTest < ActionController::TestCase
params.stringify_keys!
assert !user.valid?
User.expects(:create).with(params).returns(user)
+
post :create, :user => params, :format => :json
+
assert_json_error user.errors.messages
assert_response 422
end
test "should get edit view" do
- user = stub_record User
- User.expects(:find_by_param).with(user.id.to_s).returns(user)
+ user = find_record User, :email => nil, :email_forward => nil
+
login user
get :edit, :id => user.id
+
assert_equal user, assigns[:user]
end
test "should process updated params" do
- user = stub_record User
+ user = find_record User
user.expects(:update_attributes).with(user.params).returns(true)
- User.expects(:find_by_param).with(user.id.to_s).returns(user)
+
login user
put :update, :user => user.params, :id => user.id, :format => :json
+
assert_equal user, assigns[:user]
+ assert_response 204
assert_equal " ", @response.body
+ end
+
+ test "admin can update user" do
+ user = find_record User
+ user.expects(:update_attributes).with(user.params).returns(true)
+
+ login :is_admin? => true
+ put :update, :user => user.params, :id => user.id, :format => :json
+
+ assert_equal user, assigns[:user]
assert_response 204
+ assert_equal " ", @response.body
end
test "admin can destroy user" do
- login :is_admin? => true
- user = stub_record User
+ user = find_record User
user.expects(:destroy)
- User.expects(:find_by_param).with(user.id.to_s).returns(user)
+
+ login :is_admin? => true
delete :destroy, :id => user.id
+
+ assert_response :redirect
+ assert_redirected_to users_path
+ end
+
+ test "user can cancel account" do
+ user = find_record User
+ user.expects(:destroy)
+
+ login user
+ delete :destroy, :id => @current_user.id
+
assert_response :redirect
- # assert_redirected_to users_path
+ assert_redirected_to login_path
end
test "non-admin can't destroy user" do
- login
user = stub_record User
+
+ login
delete :destroy, :id => user.id
+
assert_access_denied
end
test "admin can list users" do
login :is_admin? => true
get :index
+
assert_response :success
assert assigns(:users)
end
@@ -75,12 +109,14 @@ class UsersControllerTest < ActionController::TestCase
test "non-admin can't list users" do
login
get :index
+
assert_access_denied
end
test "admin can autocomplete users" do
login :is_admin? => true
get :index, :format => :json
+
assert_response :success
assert assigns(:users)
end
@@ -88,6 +124,7 @@ class UsersControllerTest < ActionController::TestCase
test "admin can search users" do
login :is_admin? => true
get :index, :query => "a"
+
assert_response :success
assert assigns(:users)
end