Skip to content

Instantly share code, notes, and snippets.

@santiago
Created November 24, 2010 02:55
Show Gist options
  • Save santiago/713017 to your computer and use it in GitHub Desktop.
Save santiago/713017 to your computer and use it in GitHub Desktop.
def create
@user = User.new(params[:user])
if @user.save
# it should save/update birthdate
if params[:year]
birthdate= params[:year]
month= params[:month]||''
if month.strip =~ /^\d{2}$/
day= params[:day]||''
if day.strip =~ /^\d{2}$/
birthdate << "-#{params[:month]}-#{params[:day]}"
end
end
end
begin
@user.register_partner({
:personals => {
:birth_date => birthdate,
:gender=>params[:gender],
},
:link_from_email => params[:c],
:link_from_signup => params[:partner],
:registration_client => params[:client]
})
rescue Exception => e
flash[:notice] = e.message
end
tpl= "verify_account"
if params[:client]=="fun"
@redirect_to= "fun_url"
tpl= {:template => "users/fun_verify_account", :layout => false}
end
respond_to do |format|
format.html { render tpl }
end
else
render :action => :new
end
end
require File.join('spec', 'spec_helper')
describe UsersController do
before(:each) do
@user= Factory.build(:user)
@user.stub(:save).and_return(false)
User.stub(:new).and_return(@user)
end
describe "Sign Up" do
it "should redirect back to new user form when user input is not valid" do
post :create
response.should render_template("new")
end
it "should set an user object" do
post :create
assigns[:user].should == @user
end
context "User created" do
before(:each) do
@user.stub(:save).and_return(true)
end
it "should register its associated partner to update personal info and check for link invitation" do
@user.should_receive(:register_partner)
post :create
end
it "should render verify account page" do
post :create
response.should render_template("users/verify_account")
end
context "Registration called from Fun" do
it "should set redirect_to to 'fun_url'" do
post :create, {:client => "fun"}
assigns[:redirect_to].should == "fun_url"
end
it "should render verify account page for Fun" do
post :create, {:client => "fun"}
response.should render_template("users/fun_verify_account")
end
end
end
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment