fugafugaにrestful_authenticationをセットアップ。(3) ~ spec/controllers/*_spec.rbの修正
んじゃあ、コントローラのspecの修正。
結構、悩んだねぇwww
# lib/authenticated_test_helper.rb (略) def authorize_as(user) - @request.env["HTTP_AUTHORIZATION"] = user ? ActionController::HttpAuthentication::Basic.encode_credentials(users(user).login, 'monkey') : nil + @request.env["HTTP_AUTHORIZATION"] = user ? ActionController::HttpAuthentication::Basic.encode_credentials(users(user).email, 'monkey') : nil end
# spec/controllers/access_control_spec.rb (略) include AuthenticatedTestHelper +include AuthenticatedSystem
# spec/controllers/sessions_controller_spec.rb (略) before do @user = mock_user - @login_params = { :login => 'quentin', :password => 'test' } - User.stub!(:authenticate).with(@login_params[:login], @login_params[:password]).and_return(@user) + @login_params = { :email => 'quentin@example.com', :password => 'test' } + User.stub!(:authenticate).with(@login_params[:email], @login_params[:password]).and_return(@user) end (略) it 'logs out keeping session' do controller.should_receive(:logout_keeping_session!); do_create end - it 'flashes an error' do do_create; flash[:error].should =~ /Couldn't log you in as 'quentin'/ end + it 'flashes an error' do do_create; flash[:error].should =~ /Couldn't log you in as 'quentin@example.com'/ end it 'renders the log in page' do do_create; response.should render_template('new') end
# spec/controllers/users_controller_spec.rb (略) it 'requires login on signup' do lambda do - create_user(:login => nil) - assigns[:user].errors.on(:login).should_not be_nil + create_user(:email => nil) + assigns[:user].errors.on(:email).should_not be_nil response.should be_success end.should_not change(User, :count) end (略) it 'activates user' do - User.authenticate('aaron', 'monkey').should be_nil + User.authenticate('aaron@example.com', 'monkey').should be_nil get :activate, :activation_code => users(:aaron).activation_code response.should redirect_to('/login') flash[:notice].should_not be_nil flash[:error ].should be_nil - User.authenticate('aaron', 'monkey').should == users(:aaron) + User.authenticate('aaron@example.com', 'monkey').should == users(:aaron) end (略)
spec/controllers/authenticated_system_spec.rbは、変更なしで通ったね。
おk。