diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index ef357fb..bbed8c4 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -38,9 +38,11 @@ class UsersController < ApplicationController private def load_sensitive_user_data_from_session - @user.provider = session[:new_user][:provider] - @user.uid = session[:new_user][:uid] - @user.avatar_url = session[:new_user][:avatar_url] + if session[:new_user] + @user.provider = session[:new_user][:provider] + @user.uid = session[:new_user][:uid] + @user.avatar_url = session[:new_user][:avatar_url] + end end def clear_sensitive_session_user_data diff --git a/spec/controllers/sessions_controller_spec.rb b/spec/controllers/sessions_controller_spec.rb index 8231550..fb834b5 100644 --- a/spec/controllers/sessions_controller_spec.rb +++ b/spec/controllers/sessions_controller_spec.rb @@ -73,8 +73,8 @@ describe SessionsController do it "puts uid and provider in session " do post :create - session[:uid].should == uid - session[:provider].should == provider + session[:new_user][:uid].should == uid + session[:new_user][:provider].should == provider end it "renders user/new" do diff --git a/spec/controllers/users_controller_spec.rb b/spec/controllers/users_controller_spec.rb index 5a98d6f..b799380 100644 --- a/spec/controllers/users_controller_spec.rb +++ b/spec/controllers/users_controller_spec.rb @@ -12,10 +12,14 @@ describe UsersController do context "when user saved" do let(:provider) { 'foo' } let(:uid) { '123' } + let(:avatar_url) { 'url' } before do - session[:provider] = provider - session[:uid] = uid + session[:new_user] = { + :provider => provider, + :uid => uid, + :avatar_url => avatar_url + } user.stub!(:save => true) end @@ -23,6 +27,7 @@ describe UsersController do it "assigns provider and uid" do user.should_receive(:provider=).with(provider).and_return(true) user.should_receive(:uid=).with(uid).and_return(true) + user.should_receive(:avatar_url=).with(avatar_url).and_return(true) post :create end @@ -35,8 +40,7 @@ describe UsersController do it "clears user session data" do post :create - session[:provider].should be_nil - session[:uid].should be_nil + session[:new_user].should be_nil end it "redirects back" do diff --git a/spec/views/users/new.html.erb_spec.rb b/spec/views/users/new.html.erb_spec.rb index 2cbc671..e1f2056 100644 --- a/spec/views/users/new.html.erb_spec.rb +++ b/spec/views/users/new.html.erb_spec.rb @@ -11,6 +11,6 @@ describe "users/new" do render rendered.should =~ /user\[nickname\]/ rendered.should =~ /user\[name\]/ - rendered.should =~ /user\[avatar_url\]/ + rendered.should =~ /user\[email\]/ end end