Guest User

Untitled

a guest
Aug 24th, 2018
334
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.99 KB | None | 0 0
  1. require 'test_helper'
  2.  
  3. def login_as_user(user, password)
  4. post :create, :login => user.login, :password => password
  5. end
  6.  
  7. describe LoginController, "with unspecified user" do
  8.  
  9. before(:each) do
  10. @user = User.make!(:login => "nobody")
  11. logout
  12. end
  13.  
  14. it "should not log in if bad login" do
  15. login_as_user(@user, 'nobody')
  16. should.redirect_to home_url
  17. session[:user_id].should.be.nil
  18. flash[:alert].should == 'There was a problem with your user account. Please contact the administrator.'
  19. end
  20.  
  21. end
  22.  
  23. describe LoginController, "with teacher" do
  24.  
  25. before(:each) do
  26. @user = Teacher.make!(:user => User.make!(:login => "teacher")).user
  27. logout
  28. end
  29.  
  30. it "should log in" do
  31. login_as_user(@user, 'teacher')
  32. session[:user_id].should.equal @user.id
  33. end
  34.  
  35. it "should not log in if bad login" do
  36. login_as_user(@user, 'bad')
  37. should.redirect_to home_url
  38. session[:user_id].should.be.nil
  39. flash[:alert].should == 'Invalid login. Please try again.'
  40. end
  41.  
  42. it "should log out" do
  43. login_as_user(@user, 'teacher')
  44. session[:user_id].should.equal @user.id
  45.  
  46. delete :destroy
  47. should.redirect_to home_url
  48. session[:user_id].should.be.nil
  49. flash[:notice].should == 'Successfully logged out.'
  50. end
  51.  
  52. it "should redirect to teacher home if user is a teacher" do
  53. login_as_user(@user, 'teacher')
  54. session[:teacher_id].should.equal @user.teacher.id
  55. should.redirect_to teacherhome_url
  56. end
  57.  
  58. end
  59.  
  60. describe LoginController, "with student" do
  61.  
  62. before(:each) do
  63. @user = Student.make!(:user => User.make!(:student, :login => "student")).user
  64. logout
  65. end
  66.  
  67. it "should redirect to student home if user is a student" do
  68. login_as_user(@user, 'student')
  69. session[:student_id].should.equal @user.student.id
  70. should.redirect_to studenthome_url
  71. end
  72.  
  73. end
  74.  
  75. describe LoginController, "testing create password action" do
  76.  
  77. before(:each) do
  78. @user = Student.make!(:user => User.make!(:student, :login => "student"))
  79. @user.generate_token
  80. end
  81.  
  82. it "should create new password" do
  83. post :create_new_password,
  84. :token => @user.token,
  85. :email => @user.email,
  86. :login => "student",
  87. :password => "pass",
  88. :confirm => "pass"
  89.  
  90. p "repsonse status #{response.status}"
  91. status.should.be 200
  92. flash[:alert].should == ""
  93. end
  94.  
  95. it "should not create new password because bad login" do
  96. post :create_new_password,
  97. :token => @user.token,
  98. :email => @user.email,
  99. :login => "bad_login",
  100. :password => "new_password",
  101. :confirm => "new_password"
  102.  
  103. p "repsonse status #{response.status}"
  104.  
  105. status.should.be 200
  106. flash[:alert].should.not == ""
  107. flash[:alert].should == "Email and login don't match."
  108. end
  109.  
  110. it "should not create new password because it`s missmatch" do
  111. post :create_new_password,
  112. :token => @user.token,
  113. :email => @user.email,
  114. :login => @user.user.login,
  115. :password => "new_password",
  116. :confirm => "new_passwordxx"
  117.  
  118. p "repsonse status #{response.status}"
  119.  
  120. status.should.be 200
  121. flash[:alert].should.not == ""
  122. flash[:alert].should == "Must enter matching passwords."
  123. end
  124.  
  125. it "should not create new password because null password" do
  126. post :create_new_password,
  127. :token => @user.token,
  128. :email => @user.email,
  129. :login => @user.user.login,
  130. :password => "",
  131. :confirm => "new_passwordxx"
  132.  
  133. p "repsonse status #{response.status}"
  134.  
  135. status.should.be 200
  136. flash[:alert].should.not == ""
  137. flash[:alert].should == "Must enter matching passwords."
  138. end
  139.  
  140. it "should not create new password because email and token don`t match" do
  141. post :create_new_password,
  142. :token => "wrong_token",
  143. :email => @user.email,
  144. :login => @user.user.login,
  145. :password => "new_password",
  146. :confirm => "new_password"
  147.  
  148. p "repsonse status #{response.status}"
  149.  
  150. status.should.be 200
  151. flash[:alert].should.not == ""
  152. flash[:alert].should == "Email and token don't match. Please check your email address and try again."
  153. end
  154. end
Add Comment
Please, Sign In to add comment