Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'test_helper'
- def login_as_user(user, password)
- post :create, :login => user.login, :password => password
- end
- describe LoginController, "with unspecified user" do
- before(:each) do
- @user = User.make!(:login => "nobody")
- logout
- end
- it "should not log in if bad login" do
- login_as_user(@user, 'nobody')
- should.redirect_to home_url
- session[:user_id].should.be.nil
- flash[:alert].should == 'There was a problem with your user account. Please contact the administrator.'
- end
- end
- describe LoginController, "with teacher" do
- before(:each) do
- @user = Teacher.make!(:user => User.make!(:login => "teacher")).user
- logout
- end
- it "should log in" do
- login_as_user(@user, 'teacher')
- session[:user_id].should.equal @user.id
- end
- it "should not log in if bad login" do
- login_as_user(@user, 'bad')
- should.redirect_to home_url
- session[:user_id].should.be.nil
- flash[:alert].should == 'Invalid login. Please try again.'
- end
- it "should log out" do
- login_as_user(@user, 'teacher')
- session[:user_id].should.equal @user.id
- delete :destroy
- should.redirect_to home_url
- session[:user_id].should.be.nil
- flash[:notice].should == 'Successfully logged out.'
- end
- it "should redirect to teacher home if user is a teacher" do
- login_as_user(@user, 'teacher')
- session[:teacher_id].should.equal @user.teacher.id
- should.redirect_to teacherhome_url
- end
- end
- describe LoginController, "with student" do
- before(:each) do
- @user = Student.make!(:user => User.make!(:student, :login => "student")).user
- logout
- end
- it "should redirect to student home if user is a student" do
- login_as_user(@user, 'student')
- session[:student_id].should.equal @user.student.id
- should.redirect_to studenthome_url
- end
- end
- describe LoginController, "testing create password action" do
- before(:each) do
- @user = Student.make!(:user => User.make!(:student, :login => "student"))
- @user.generate_token
- end
- it "should create new password" do
- post :create_new_password,
- :token => @user.token,
- :email => @user.email,
- :login => "student",
- :password => "pass",
- :confirm => "pass"
- p "repsonse status #{response.status}"
- status.should.be 200
- flash[:alert].should == ""
- end
- it "should not create new password because bad login" do
- post :create_new_password,
- :token => @user.token,
- :email => @user.email,
- :login => "bad_login",
- :password => "new_password",
- :confirm => "new_password"
- p "repsonse status #{response.status}"
- status.should.be 200
- flash[:alert].should.not == ""
- flash[:alert].should == "Email and login don't match."
- end
- it "should not create new password because it`s missmatch" do
- post :create_new_password,
- :token => @user.token,
- :email => @user.email,
- :login => @user.user.login,
- :password => "new_password",
- :confirm => "new_passwordxx"
- p "repsonse status #{response.status}"
- status.should.be 200
- flash[:alert].should.not == ""
- flash[:alert].should == "Must enter matching passwords."
- end
- it "should not create new password because null password" do
- post :create_new_password,
- :token => @user.token,
- :email => @user.email,
- :login => @user.user.login,
- :password => "",
- :confirm => "new_passwordxx"
- p "repsonse status #{response.status}"
- status.should.be 200
- flash[:alert].should.not == ""
- flash[:alert].should == "Must enter matching passwords."
- end
- it "should not create new password because email and token don`t match" do
- post :create_new_password,
- :token => "wrong_token",
- :email => @user.email,
- :login => @user.user.login,
- :password => "new_password",
- :confirm => "new_password"
- p "repsonse status #{response.status}"
- status.should.be 200
- flash[:alert].should.not == ""
- flash[:alert].should == "Email and token don't match. Please check your email address and try again."
- end
- end
Add Comment
Please, Sign In to add comment