require File.dirname(__FILE__) + '/../test_helper' class Muck::ActivationsControllerTest < ActionController::TestCase def setup @controller = Muck::ActivationsController.new @request = ActionController::TestRequest.new @response = ActionController::TestResponse.new activate_authlogic end context "activations controller" do context "not logged in" do setup do @password = 'testpass' @login = 'testuser' @user = Factory(:user, :login => @login, :password => @password, :password_confirmation => @password, :activated_at => nil) end context "activate user" do setup do get :new, :id => @user.perishable_token end should_set_the_flash_to(/Your account has been activated! You can now login/i) should_redirect_to("welcome path") { welcome_user_path(@user) } should "be able to login" do user_session = UserSession.new(:login => @login, :password => @password) assert user_session.save end end context "attempt to activate already activated user" do setup do @user.activate! get :new, :id => @user.perishable_token end should_set_the_flash_to(/Your account has already been activated. You can log in below/i) should_redirect_to("login") { login_path } end context "don't activate user without key" do setup do get :new end should_set_the_flash_to(/Activation code not found. Please try creating a new account/i) should_redirect_to("signup") { new_user_path } end context "don't activate user with blank key" do setup do get :new, :id => '' end should_set_the_flash_to(/Activation code not found. Please try creating a new account/i) should_redirect_to("signup") { new_user_path } end context "don't activate user with bad key" do setup do get :new, :id => 'asdfasdfasdf' end should_set_the_flash_to(/Activation code not found. Please try creating a new account/i) should_redirect_to("signup") { new_user_path } end end context "logged in" do setup do @activated_user = Factory(:user) login_as @activated_user get :new, :id => @activated_user.perishable_token end should_redirect_to("already logged in page") { @activated_user } end end end