Guest User

Untitled

a guest
Apr 20th, 2018
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.04 KB | None | 0 0
  1. require File.dirname(__FILE__) + '/../spec_helper'
  2.  
  3. module UserSpecHelper
  4.  
  5. def valid_user_attributes
  6. {
  7. :login => 'giams',
  8. :email => 'ge.iams@gmail.com',
  9. :password => 'password',
  10. :password_confirmation => 'password',
  11. }
  12. end
  13.  
  14. def admin_role
  15. create_right = mock(Right)
  16. create_right.stub!(:controller).and_return('users')
  17. create_right.stub!(:action).and_return('create')
  18.  
  19. delete_right = mock(Right)
  20. delete_right.stub!(:controller).and_return('users')
  21. delete_right.stub!(:action).and_return('delete')
  22.  
  23. Role.stub!(:rights).and_return([create_right, delete_right])
  24. end
  25.  
  26. def user_role
  27. list_right = mock(Right)
  28. list_right.stub!(:controller).and_return('conferences')
  29. list_right.stub!(:action).and_return('list')
  30.  
  31. Role.stub!(:rights).and_return(list_right)
  32. end
  33.  
  34. def mock_role(name)
  35. mock(Role).stub!(:name).and_return(name)
  36. end
  37.  
  38. def mock_rights(controller, *actions)
  39. rights = []
  40. actions.each do |a|
  41. r = mock(Right).stub!(:controller).and_return(controller)
  42. r.stub!(:action).and_return(a)
  43. rights << r
  44. end
  45.  
  46. rights
  47. end
  48.  
  49. end
  50.  
  51. describe User, ' authorization' do
  52.  
  53. include UserSpecHelper
  54.  
  55. before(:each) do
  56. @user = User.new
  57. end
  58.  
  59. # TODO: implement unit tests as spec cases
  60.  
  61. it "should succeed if their role supports the action they attempt" do
  62. @user.attributes = valid_user_attributes.merge({ :role => 'admin' })
  63.  
  64. admin = mock_role('admin')
  65. admin.stub!(:rights).and_return(mock_rights('users', 'create', 'destroy'))
  66.  
  67. @user.has_right_for?('users', 'create').should be_true
  68. end
  69.  
  70. it "should fail if their role doesn't support the action they attempt" do
  71. @user.attributes = valid_user_attributes.merge({ :role => 'user' })
  72.  
  73. user = mock_role('user')
  74. user.stub!(:rights).and_return(mock_rights('conferences', 'list'))
  75.  
  76. @user.has_right_for?('users', 'create').should be_false
  77. end
  78.  
  79. # it "should be valid" do
  80. # @user.should be_valid
  81. # end
  82.  
  83. end
Add Comment
Please, Sign In to add comment