Don't expect raises in request specs, redirect to :back on all requesting

This commit is contained in:
Raphael 2010-11-16 16:15:37 -08:00
parent 538c6ce4b9
commit f3a301d314
2 changed files with 33 additions and 41 deletions

View file

@ -10,6 +10,7 @@ describe RequestsController do
@user = make_user @user = make_user
sign_in :user, @user sign_in :user, @user
request.env["HTTP_REFERER"] = "http://test.host"
@user.aspects.create!(:name => "lame-os") @user.aspects.create!(:name => "lame-os")
@user.reload @user.reload
@ -22,7 +23,6 @@ describe RequestsController do
@other_user.reload @other_user.reload
@other_user.send_contact_request_to(@user.person, @other_user.aspects.first) @other_user.send_contact_request_to(@user.person, @other_user.aspects.first)
@user.reload # so it can find its pending requests. @user.reload # so it can find its pending requests.
@friend_request = @user.pending_requests.first @friend_request = @user.pending_requests.first
end end
@ -42,52 +42,41 @@ describe RequestsController do
describe '#create' do describe '#create' do
it "redirects when requesting to be contacts with yourself" do it "redirects when requesting to be contacts with yourself" do
put(:create, { post(:create, :request => {
:destination_handle => @user.diaspora_handle, :to => @user.diaspora_handle,
:aspect_id => @user.aspects[0].id :into => @user.aspects[0].id
} }
) )
response.should redirect_to aspects_manage_path response.should redirect_to :back
end end
it "flashes and redirects when requesting an invalid identity" do it "flashes and redirects when requesting an invalid identity" do
put(:create, { post(:create, :request => {
:destination_handle => "not_a_@valid_email", :to => "not_a_@valid_email",
:aspect_id => @user.aspects[0].id :into => @user.aspects[0].id
} }
) )
flash[:error].should_not be_blank flash[:error].should_not be_blank
response.should redirect_to aspects_manage_path response.should redirect_to :back
end end
it "flashes and redirects when requesting an invalid identity with a port number" do it "flashes and redirects when requesting an invalid identity with a port number" do
put(:create, { post(:create, :request => {
:destination_handle => "johndoe@email.com:3000", :to => "johndoe@email.com:3000",
:aspect_id => @user.aspects[0].id :into => @user.aspects[0].id
} }
) )
flash[:error].should_not be_blank flash[:error].should_not be_blank
response.should redirect_to aspects_manage_path response.should redirect_to :back
end end
it "redirects when requesting an identity from an invalid server" do it "redirects when requesting an identity from an invalid server" do
stub_request(:get, /notadiasporaserver\.com/).to_raise(Errno::ETIMEDOUT) post(:create, :request => {
put(:create, { :to => "johndoe@notadiasporaserver.com",
:destination_handle => "johndoe@notadiasporaserver.com", :into => @user.aspects[0].id
:aspect_id => @user.aspects[0].id
} }
) )
response.should redirect_to aspects_manage_path response.should redirect_to :back
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)
end end
end end
end end

View file

@ -17,8 +17,7 @@ describe Diaspora::UserModules::Connecting do
let(:user2) { make_user } let(:user2) { make_user }
let(:aspect2) { user2.aspects.create(:name => "aspect two") } let(:aspect2) { user2.aspects.create(:name => "aspect two") }
describe '#send_contact_request_to' do
context 'contact requesting' do
it "should assign a request to a aspect for the user that sent it out" do it "should assign a request to a aspect for the user that sent it out" do
aspect.requests.size.should == 0 aspect.requests.size.should == 0
@ -27,7 +26,9 @@ describe Diaspora::UserModules::Connecting do
aspect.reload aspect.reload
aspect.requests.size.should == 1 aspect.requests.size.should == 1
end end
end
context 'contact requesting' do
describe '#receive_contact_request' do describe '#receive_contact_request' do
it 'adds a request to pending if it was not sent by user' do it 'adds a request to pending if it was not sent by user' do
r = Request.instantiate(:to => user.person, :from => person) 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)} let(:request_from_myself) {Request.instantiate(:to => user.person, :from => user.person)}
before do before do
request_for_user.save request_for_user.save
user.receive_request(request_for_user, person) user.receive(request_for_user.to_diaspora_xml, person)
user.receive_request(request2_for_user, person_one) @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 user.reload
end end
it "should delete an accepted contact request" do it "should delete an accepted contact request" do
proc { user.accept_contact_request(request2_for_user, aspect) }.should change( proc {
user.reload.pending_requests, :count ).by(-1) user.accept_contact_request(@received_request, aspect)
}.should change(user.reload.pending_requests, :count ).by(-1)
end end
it 'should be able to ignore a pending contact request' do 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) user.reload.pending_requests, :count ).by(-1)
end end
it 'should ignore a contact request from yourself' do it 'should ignore a contact request from yourself' do
reversed_request = request_from_myself.reverse_for(user) reversed_request = request_from_myself.reverse_for(user)
user.pending_requests.delete_all
user.save
proc { user.receive_contact_request(reversed_request) proc { user.receive_contact_request(reversed_request)
}.should raise_error /request from himself/ }.should raise_error /request from himself/
end end
@ -79,11 +80,13 @@ describe Diaspora::UserModules::Connecting do
it 'should not be able to contact request an existing contact' do it 'should not be able to contact request an existing contact' do
connect_users(user, aspect, user2, aspect2) 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 end
it 'should not be able to contact request yourself' do 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 end
it 'should send an email on acceptance if a contact request' do it 'should send an email on acceptance if a contact request' do