pending specs for facebook inviter

This commit is contained in:
zhitomirskiyi 2011-01-25 16:50:37 -08:00
parent e56ba84094
commit b3467b5d17
4 changed files with 44 additions and 5 deletions

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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