0
require File.join(File.dirname(__FILE__), '..', 'spec_helper.rb')
0
-require File.join( File.dirname(__FILE__), "..", "user_spec_helper")
0
-require File.join( File.dirname(__FILE__), "..", "authenticated_system_spec_helper")
0
-describe Password,"new action" do
0
- include UserSpecHelper
0
- it "should get new" do
0
- dispatch_to(Password, :new).should respond_successfully
0
-describe Password, "create action" do
0
- include UserSpecHelper
0
- @user = User.create(valid_user_hash)
0
- it "should forget password for valid email" do
0
- controller = dispatch_to(Password, :create, :email => valid_user_hash[:email])
0
- controller.should redirect
0
- user = User.first(:email => valid_user_hash[:email])
0
- user.password_reset_code.should_not be_nil
0
- it "should not forget password for invalid email" do
0
- controller = dispatch_to(Password, :create, :email => "foo@bar.com")
0
- controller.should redirect
0
- @user.password_reset_code.should be_nil
0
-describe Password, "edit action" do
0
- include UserSpecHelper
0
- @user = User.create(valid_user_hash)
0
- it "a login is required for edit" do
0
- dispatch_to(Password, :edit).should redirect
0
- it "should render edit" do
0
- controller = dispatch_to(Password, :edit) do |controller|
0
- controller.stub!(:current_user).and_return(@user)
0
+require File.dirname(__FILE__) + '/../spec_helper'
0
+ Merb::Router.prepare { |r| r.add_slice(:CanHasAuth) } if standalone?
0
- controller.should respond_successfully
0
-describe Password, "update action" do
0
- include UserSpecHelper
0
- @user = User.create(valid_user_hash)
0
- def dispatch_update(params)
0
- dispatch_to(Password, :update, params) do |controller|
0
- controller.stub!(:current_user).and_return(@user)
0
- it "resets the password" do
0
- controller = dispatch_update(:user => {:password => @pass, :password_confirmation => @pass})
0
- controller.should redirect
0
- User.authenticate(valid_user_hash[:email], @pass).should == User.first(:email => valid_user_hash[:email])
0
- it "changes the password" do
0
- controller = dispatch_update(:old_password => valid_user_hash[:password], :user => {:password => @pass, :password_confirmation => @pass})
0
- controller.should redirect
0
- User.authenticate(valid_user_hash[:email], @pass).should == User.first(:email => valid_user_hash[:email])
0
- it "passwords must match" do
0
- controller = dispatch_update(:old_password => 'test', :user => {:password => @pass, :password_confirmation => 'test' })
0
- controller.should redirect
0
- User.authenticate(valid_user_hash[:email], @pass).should_not == User.first(:email => valid_user_hash[:email])
0
- it "old password must be correct" do
0
- controller = dispatch_update(:old_password => 'wrong',:user => {:password => @pass, :password_confirmation => @pass} )
0
- controller.should redirect
0
- User.authenticate(valid_user_hash[:email], @pass).should_not == User.first(:email => valid_user_hash[:email])
0
-describe Password,"reset action" do
0
- include UserSpecHelper
0
- it "should redirect to / if password code is nil" do
0
- dispatch_to(Password, :reset).should redirect_to('/')
0
- it "should render if there's a valid password reset code" do
0
- user = User.create(valid_user_hash)
0
- controller = dispatch_to(Password, :reset, :code => user.password_reset_code)
0
- controller.should respond_successfully
0
-describe Password, "routes" do
0
- it "routed to Password#reset from 'password/reset'" do
0
- request = request_to("/password/reset")
0
- request[:controller].should == "password"
0
- request[:action].should == "reset"
0
- it "routed to Password#new from 'password/new'" do
0
- request = request_to("/password/new")
0
- request[:controller].should == "password"
0
- request[:action].should == "new"
0
- it "routed to Password#reset from 'password/edit'" do
0
- request = request_to("/password/edit")
0
- request[:controller].should == "password"
0
- request[:action].should == "edit"
0
- it "routed to Password#reset from 'password/create' via :post" do
0
- request = request_to("/password", :post)
0
- request[:controller].should == "password"
0
- request[:action].should == "create"
0
- it "routed to Password#reset from 'password/update' via :put" do
0
- request = request_to("/password", :put)
0
- request[:controller].should == "password"
0
- request[:action].should == "update"
0
+ it "should get new" do
0
+ dispatch_to(Password, :new).should respond_successfully
0
+ it "should forget password for valid email" do
0
+ controller = dispatch_to(Password, :create, :email => @user.email)
0
+ controller.should redirect
0
+ @user.password_reset_code.should_not be_nil
0
+ it "should not forget password for invalid email" do
0
+ controller = dispatch_to(Password, :create, :email => "foo@bar.com")
0
+ controller.should redirect
0
+ @user.password_reset_code.should be_nil
0
+ it "a login is required for edit" do
0
+ dispatch_to(Password, :edit).should redirect
0
+ it "should render edit" do
0
+ controller = dispatch_to(Password, :edit) do |controller|
0
+ controller.stub!(:current_user).and_return(@user)
0
+ controller.should respond_successfully
0
+ def dispatch_update(params)
0
+ dispatch_to(Password, :update, params) do |controller|
0
+ controller.stub!(:current_user).and_return(@user)
0
+ it "resets the password" do
0
+ new_password = Random.word
0
+ controller = dispatch_update(:user => {:password => new_password, :password_confirmation => new_password})
0
+ controller.should redirect
0
+ User.authenticate(@user.email, new_password).should be_same_as(controller.current_user)
0
+ it "changes the password" do
0
+ old_password, new_password = @user.password, Random.word
0
+ controller = dispatch_update(:old_password => old_password, :user => {:password => new_password, :password_confirmation => new_password})
0
+ controller.should redirect
0
+ User.authenticate(@user.email, new_password).crypted_password.should_not == @user.crypted_password
0
+ it "passwords must match" do
0
+ old_password, new_password = @user.password, Random.word
0
+ controller = dispatch_update(:old_password => old_password, :user => {:password => new_password, :password_confirmation => Random.word })
0
+ controller.should_not redirect
0
+ User.authenticate(@user.email, new_password).should be_nil
0
+ it "old password must be correct" do
0
+ old_password, new_password = @user.password, Random.word
0
+ controller = dispatch_update(:old_password => Random.word,:user => {:password => new_password, :password_confirmation => new_password} )
0
+ controller.should redirect
0
+ User.authenticate(@user.email, new_password).should be_nil
0
+ it "should redirect to / if password code is nil" do
0
+ dispatch_to(Password, :reset).should redirect_to('/')
0
+ it "should render if there's a valid password reset code" do
0
+ controller = dispatch_to(Password, :reset, :code => user.password_reset_code)
0
+ controller.should respond_successfully
0
\ No newline at end of file