summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--users/test/functional/users_controller_test.rb33
-rw-r--r--users/test/support/auth_test_helper.rb3
-rw-r--r--users/test/support/stub_record_helper.rb18
3 files changed, 30 insertions, 24 deletions
diff --git a/users/test/functional/users_controller_test.rb b/users/test/functional/users_controller_test.rb
index feae2dd..4318928 100644
--- a/users/test/functional/users_controller_test.rb
+++ b/users/test/functional/users_controller_test.rb
@@ -1,6 +1,8 @@
require 'test_helper'
class UsersControllerTest < ActionController::TestCase
+ include StubRecordHelper
+
test "should get new" do
get :new
assert_equal User, assigns(:user).class
@@ -8,11 +10,9 @@ class UsersControllerTest < ActionController::TestCase
end
test "should create new user" do
- params = User.valid_attributes_hash
- user = stub params.merge(:id => 123)
- params.stringify_keys!
- User.expects(:create!).with(params).returns(user)
- post :create, :user => params
+ user = stub_record User
+ User.expects(:create!).with(user.params).returns(user)
+ post :create, :user => user.params
assert_nil session[:user_id]
assert_response :redirect
assert_redirected_to root_url
@@ -31,34 +31,19 @@ class UsersControllerTest < ActionController::TestCase
end
test "should get edit view" do
- params = User.valid_attributes_hash
- user = stub params.merge(:id => 123, :class => User, :to_key => ['123'], :new_record? => false, :persisted? => :true)
+ user = stub_record User
login user
get :edit, :id => user.id
assert_equal user, assigns[:user]
end
test "should process updated params" do
- params = User.valid_attributes_hash
- user = stub params.merge(:id => 123)
- params.stringify_keys!
- user.expects(:update).with(params).returns(user)
+ user = stub_record User
+ user.expects(:update).with(user.params).returns(user)
login user
- post :update, :user => params, :id => user.id
+ post :update, :user => user.params, :id => user.id
assert_equal user, assigns[:user]
assert_response :redirect
assert_redirected_to edit_user_path(user)
end
-
- test "should validate updated params" do
- params = User.valid_attributes_hash
- user = stub params.merge(:id => 123)
- params.stringify_keys!
- user.expects(:update).with(params).returns(user)
- login user
- post :update, :user => params, :id => user.id
- assert_equal user, assigns[:user]
- end
-
-
end
diff --git a/users/test/support/auth_test_helper.rb b/users/test/support/auth_test_helper.rb
index f211597..0b73f5f 100644
--- a/users/test/support/auth_test_helper.rb
+++ b/users/test/support/auth_test_helper.rb
@@ -11,6 +11,9 @@ module AuthTestHelper
def login(user = nil)
@current_user = user || stub
+ unless @current_user.respond_to? :is_admin?
+ @current_user.stubs(:is_admin?).returns(false)
+ end
request.env['warden'] = stub :user => @current_user
return @current_user
end
diff --git a/users/test/support/stub_record_helper.rb b/users/test/support/stub_record_helper.rb
new file mode 100644
index 0000000..95b9d63
--- /dev/null
+++ b/users/test/support/stub_record_helper.rb
@@ -0,0 +1,18 @@
+module StubRecordHelper
+
+ # Create a stub that has the usual functions of a database record.
+ # It won't fail on rendering a form for example.
+ def stub_record(klass, params = {}, persisted = true)
+ if klass.respond_to?(:valid_attributes_hash)
+ params.reverse_merge!(klass.valid_attributes_hash)
+ end
+ params[:params] = params.stringify_keys
+ params.reverse_merge! :id => 123,
+ :class => klass,
+ :to_key => ['123'],
+ :new_record? => !persisted,
+ :persisted? => persisted
+ stub params
+ end
+
+end