diff options
| -rw-r--r-- | users/test/functional/users_controller_test.rb | 33 | ||||
| -rw-r--r-- | users/test/support/auth_test_helper.rb | 3 | ||||
| -rw-r--r-- | users/test/support/stub_record_helper.rb | 18 | 
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 | 
