From f3a301d314cac3037f10c91e3fc759b50fc94cf6 Mon Sep 17 00:00:00 2001 From: Raphael Date: Tue, 16 Nov 2010 16:15:37 -0800 Subject: [PATCH] Don't expect raises in request specs, redirect to :back on all requesting --- spec/controllers/requests_controller_spec.rb | 47 ++++++++------------ spec/models/user/connecting_spec.rb | 27 ++++++----- 2 files changed, 33 insertions(+), 41 deletions(-) diff --git a/spec/controllers/requests_controller_spec.rb b/spec/controllers/requests_controller_spec.rb index c7ca19a92..b7b11c85b 100644 --- a/spec/controllers/requests_controller_spec.rb +++ b/spec/controllers/requests_controller_spec.rb @@ -10,6 +10,7 @@ describe RequestsController do @user = make_user sign_in :user, @user + request.env["HTTP_REFERER"] = "http://test.host" @user.aspects.create!(:name => "lame-os") @user.reload @@ -22,7 +23,6 @@ describe RequestsController do @other_user.reload @other_user.send_contact_request_to(@user.person, @other_user.aspects.first) - @user.reload # so it can find its pending requests. @friend_request = @user.pending_requests.first end @@ -42,52 +42,41 @@ describe RequestsController do describe '#create' do it "redirects when requesting to be contacts with yourself" do - put(:create, { - :destination_handle => @user.diaspora_handle, - :aspect_id => @user.aspects[0].id + post(:create, :request => { + :to => @user.diaspora_handle, + :into => @user.aspects[0].id } ) - response.should redirect_to aspects_manage_path + response.should redirect_to :back end it "flashes and redirects when requesting an invalid identity" do - put(:create, { - :destination_handle => "not_a_@valid_email", - :aspect_id => @user.aspects[0].id - } + post(:create, :request => { + :to => "not_a_@valid_email", + :into => @user.aspects[0].id + } ) flash[:error].should_not be_blank - response.should redirect_to aspects_manage_path + response.should redirect_to :back end it "flashes and redirects when requesting an invalid identity with a port number" do - put(:create, { - :destination_handle => "johndoe@email.com:3000", - :aspect_id => @user.aspects[0].id + post(:create, :request => { + :to => "johndoe@email.com:3000", + :into => @user.aspects[0].id } ) flash[:error].should_not be_blank - response.should redirect_to aspects_manage_path + response.should redirect_to :back end it "redirects when requesting an identity from an invalid server" do - stub_request(:get, /notadiasporaserver\.com/).to_raise(Errno::ETIMEDOUT) - put(:create, { - :destination_handle => "johndoe@notadiasporaserver.com", - :aspect_id => @user.aspects[0].id + post(:create, :request => { + :to => "johndoe@notadiasporaserver.com", + :into => @user.aspects[0].id } ) - response.should redirect_to aspects_manage_path - end - - it 'should redirect to the page which you called it from ' do - pending "This controller should probably redirect to :back" - put(:create, { - :destination_handle => "johndoe@notadiasporaserver.com", - :aspect_id => @user.aspects[0].id - } - ) - response.should redirect_to(:back) + response.should redirect_to :back end end end diff --git a/spec/models/user/connecting_spec.rb b/spec/models/user/connecting_spec.rb index a6c4092f6..2567b379d 100644 --- a/spec/models/user/connecting_spec.rb +++ b/spec/models/user/connecting_spec.rb @@ -17,8 +17,7 @@ describe Diaspora::UserModules::Connecting do let(:user2) { make_user } let(:aspect2) { user2.aspects.create(:name => "aspect two") } - - context 'contact requesting' do + describe '#send_contact_request_to' do it "should assign a request to a aspect for the user that sent it out" do aspect.requests.size.should == 0 @@ -27,7 +26,9 @@ describe Diaspora::UserModules::Connecting do aspect.reload aspect.requests.size.should == 1 end + end + context 'contact requesting' do describe '#receive_contact_request' do it 'adds a request to pending if it was not sent by user' do r = Request.instantiate(:to => user.person, :from => person) @@ -51,27 +52,27 @@ describe Diaspora::UserModules::Connecting do let(:request_from_myself) {Request.instantiate(:to => user.person, :from => user.person)} before do request_for_user.save - user.receive_request(request_for_user, person) - user.receive_request(request2_for_user, person_one) + user.receive(request_for_user.to_diaspora_xml, person) + @received_request = Request.first(:from_id => request_for_user.from.id, :to_id => user.person.id, :sent => false) + user.receive(request2_for_user.to_diaspora_xml, person_one) + @received_request2 = Request.first(:from_id => request2_for_user.from.id, :to_id => user.person.id, :sent => false) user.reload end it "should delete an accepted contact request" do - proc { user.accept_contact_request(request2_for_user, aspect) }.should change( - user.reload.pending_requests, :count ).by(-1) + proc { + user.accept_contact_request(@received_request, aspect) + }.should change(user.reload.pending_requests, :count ).by(-1) end it 'should be able to ignore a pending contact request' do - proc { user.ignore_contact_request(request_for_user.id) }.should change( + proc { user.ignore_contact_request(@received_request.id) }.should change( user.reload.pending_requests, :count ).by(-1) end it 'should ignore a contact request from yourself' do reversed_request = request_from_myself.reverse_for(user) - user.pending_requests.delete_all - user.save - proc { user.receive_contact_request(reversed_request) }.should raise_error /request from himself/ end @@ -79,11 +80,13 @@ describe Diaspora::UserModules::Connecting do it 'should not be able to contact request an existing contact' do connect_users(user, aspect, user2, aspect2) - proc { user.send_contact_request_to(user2.person, aspect1) }.should raise_error /already connected/ + proc { user.send_contact_request_to(user2.person, aspect1) + }.should raise_error(MongoMapper::DocumentNotValid, /already connected/) end it 'should not be able to contact request yourself' do - proc { user.send_contact_request_to(nil, aspect) }.should raise_error(RuntimeError, /connect yourself/) + proc { user.send_contact_request_to(nil, aspect) + }.should raise_error(MongoMapper::DocumentNotValid) end it 'should send an email on acceptance if a contact request' do