pending specs for facebook inviter
This commit is contained in:
parent
e56ba84094
commit
b3467b5d17
4 changed files with 44 additions and 5 deletions
|
|
@ -1,7 +1,5 @@
|
||||||
# Copyright (c) 2010, Diaspora Inc. This file is
|
# Copyright (c) 2010, Diaspora Inc. This file is
|
||||||
# licensed under the Affero General Public License version 3 or later. See
|
# licensed under the Affero General Public License version 3 or later. See # the COPYRIGHT file.
|
||||||
# the COPYRIGHT file.
|
|
||||||
|
|
||||||
|
|
||||||
class ServicesController < ApplicationController
|
class ServicesController < ApplicationController
|
||||||
before_filter :authenticate_user!
|
before_filter :authenticate_user!
|
||||||
|
|
@ -51,4 +49,12 @@ class ServicesController < ApplicationController
|
||||||
service = current_user.services.where(:provider => params[:provider]).first
|
service = current_user.services.where(:provider => params[:provider]).first
|
||||||
@friends = service ? service.finder : {}
|
@friends = service ? service.finder : {}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def inviter
|
||||||
|
@uid = params[:uid]
|
||||||
|
@subject = "Join me on DIASPORA*"
|
||||||
|
@message = ""
|
||||||
|
|
||||||
|
redirect_to "http://facebook.com"
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
||||||
|
|
@ -25,8 +25,6 @@ class Services::Facebook < Service
|
||||||
data_h[d['id']] = {:name => d['name']}
|
data_h[d['id']] = {:name => d['name']}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
service_objects = Services::Facebook.where(:uid => data_h.keys).includes(:user => :person)
|
service_objects = Services::Facebook.where(:uid => data_h.keys).includes(:user => :person)
|
||||||
service_objects.each do |s|
|
service_objects.each do |s|
|
||||||
data_h[s.uid][:person] = s.user.person
|
data_h[s.uid][:person] = s.user.person
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ Diaspora::Application.routes.draw do
|
||||||
resources :comments, :only => [:create]
|
resources :comments, :only => [:create]
|
||||||
resources :requests, :only => [:destroy, :create]
|
resources :requests, :only => [:destroy, :create]
|
||||||
|
|
||||||
|
match 'services/inviter/:provider' => 'services#inviter', :as => 'service_inviter'
|
||||||
match 'services/finder/:provider' => 'services#finder', :as => 'friend_finder'
|
match 'services/finder/:provider' => 'services#finder', :as => 'friend_finder'
|
||||||
resources :services
|
resources :services
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,4 +92,38 @@ describe ServicesController do
|
||||||
get :finder, :provider => @service1.provider
|
get :finder, :provider => @service1.provider
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#invite' do
|
||||||
|
|
||||||
|
before do
|
||||||
|
pending
|
||||||
|
@service1 = Services::Facebook.create(:provider => 'facebook')
|
||||||
|
@uid = "abc"
|
||||||
|
@invite_params = {:provider => @service1.provider, :uid => @uid, :aspect_id => @user.aspects.first.id}
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'creates an invitation' do
|
||||||
|
lambda {
|
||||||
|
put :inviter, @invite_params
|
||||||
|
}.should change(Invitation, :count).by(1)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets the subject' do
|
||||||
|
put :inviter, @invite_params
|
||||||
|
assigns[:@subject].should_not be_nil
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'sets a message containing the invitation link' do
|
||||||
|
put :inviter, @invite_params
|
||||||
|
assigns[:@message].should include(User.last.invitation_token)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'redirects to a prefilled facebook message url' do
|
||||||
|
put :inviter, @invite_params
|
||||||
|
response.should be_redirect
|
||||||
|
response.should have_text(/http:\/\/www\.facebook\.com\/\?compose=1&id=.*&subject=.*&message=.*&sk=messages/)
|
||||||
|
end
|
||||||
|
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue