diff --git a/app/controllers/status_messages_controller.rb b/app/controllers/status_messages_controller.rb index 2e4c744725af114f9766d510baa81d57340d05b2..f2792f8f3df7200528cd8250144b92d8dea487a0 100644 --- a/app/controllers/status_messages_controller.rb +++ b/app/controllers/status_messages_controller.rb @@ -15,7 +15,7 @@ class StatusMessagesController < ApplicationController if params[:status_message][:public] == '1' current_user.post_to_twitter(message) if logged_into_fb? - current_user.post_to_message_fb(message, @access_token) + current_user.post_to_facebook(message, @access_token) end end diff --git a/app/models/user.rb b/app/models/user.rb index 1bcc5417c20fe5edb7ba07ab806133fe1fb5b3b1..75a0d0989ed211ba413f17ec7e7c3161750c9247 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -154,7 +154,7 @@ class User intitial_post(class_name, aspect_ids, options) end - def post_to_message_fb(message, access_token) + def post_to_facebook(message, access_token) id = 'me' type = 'feed' Rails.logger.info("Sending a message: #{message} to Facebook") diff --git a/spec/controllers/albums_controller_spec.rb b/spec/controllers/albums_controller_spec.rb index 5c53f1909eb21b2eaec3e8f39aa1df0706eb4634..74bec40453dc92be2ae741695329fab84e8aba05 100644 --- a/spec/controllers/albums_controller_spec.rb +++ b/spec/controllers/albums_controller_spec.rb @@ -14,7 +14,6 @@ describe AlbumsController do end it "should update the name of an album" do - sign_in :user, @user put :update, :id => @album.id, :album => { :name => "new_name"} @album.reload.name.should eql("new_name") end diff --git a/spec/controllers/omniauth_services_controller_spec.rb b/spec/controllers/omniauth_services_controller_spec.rb new file mode 100644 index 0000000000000000000000000000000000000000..b72426eba72c984b629d55e9687bd3d4b089f8ca --- /dev/null +++ b/spec/controllers/omniauth_services_controller_spec.rb @@ -0,0 +1,48 @@ +# Copyright (c) 2010, Diaspora Inc. This file is +# licensed under the Affero General Public License version 3 or later. See +# the COPYRIGHT file. + +require 'spec_helper' + +describe OmniauthServicesController do + render_views + let(:user) { Factory(:user) } + let!(:aspect) { user.aspect(:name => "lame-os") } + + let!(:service1) {a = Factory(:omniauth_service); user.services << a; a} + let!(:service2) {a = Factory(:omniauth_service); user.services << a; a} + let!(:service3) {a = Factory(:omniauth_service); user.services << a; a} + let!(:service4) {a = Factory(:omniauth_service); user.services << a; a} + + let(:mock_access_token) { Object.new } + + let(:omniauth_auth) {{ 'provider' => 'twitter', 'uid' => '2', + 'user_info' => { 'nickname' => 'grimmin' }, + 'extra' => { 'access_token' => mock_access_token }}} + + before do + sign_in :user, user + mock_access_token.stub!(:token).and_return("12345") + mock_access_token.stub!(:secret).and_return("56789") + end + + describe '#index' do + it 'displays all connected serivices for a user' do + get :index + assigns[:services].should == user.services + end + end + + describe '#create' do + it 'creates a new OmniauthService' do + request.env['omniauth.auth'] = omniauth_auth + lambda{post :create}.should change(user.services, :count).by(1) + end + end + + describe '#destroy' do + it 'should destroy a service of a users with the id' do + lambda{delete :destroy, :id => service1.id.to_s}.should change(user.services, :count).by(-1) + end + end +end diff --git a/spec/controllers/status_message_controller_spec.rb b/spec/controllers/status_message_controller_spec.rb index 9c84fe3e8c366ad395e9119698def79a7b21a1ff..536db40d4054003d91c7a435293a47e9cca43305 100644 --- a/spec/controllers/status_message_controller_spec.rb +++ b/spec/controllers/status_message_controller_spec.rb @@ -12,27 +12,42 @@ describe StatusMessagesController do before do sign_in :user, user + @controller.stub!(:current_user).and_return(user) end describe '#create' do - let(:status_message_hash) {{"status_message"=>{"public"=>"1", "message"=>"facebook, is that you?", "to" =>"#{aspect.id}"}}} - - before do - @controller.stub!(:logged_into_fb?).and_return(true) - end - - it 'should post to facebook when public is set' do - my_mock = mock("http") - my_mock.stub!(:post) - EventMachine::HttpRequest.should_receive(:new).and_return(my_mock) - post :create, status_message_hash - end - - it 'should not post to facebook when public in not set' do - status_message_hash['status_message']['public'] = '0' - EventMachine::HttpRequest.should_not_receive(:new) - post :create, status_message_hash - end + let(:status_message_hash) {{"status_message"=>{"public"=>"1", "message"=>"facebook, is that you?", "to" =>"#{aspect.id}"}}} + + + context "posting out to facebook" do + before do + @controller.stub!(:logged_into_fb?).and_return(true) + end + + it 'should post to facebook when public is set' do + user.should_receive(:post_to_facebook) + post :create, status_message_hash + end + + it 'should not post to facebook when public in not set' do + status_message_hash['status_message']['public'] = '0' + user.should_not_receive(:post_to_facebook) + post :create, status_message_hash + end + end + + + context "posting to twitter" do + it 'should post to twitter if public is set' do + user.should_receive(:post_to_twitter).and_return(true) + post :create, status_message_hash + end + + it 'should not post to twitter when public in not set' do + status_message_hash['status_message']['public'] = '0' + user.should_not_receive(:post_to_twitter) + post :create, status_message_hash + end + end end end - diff --git a/spec/factories.rb b/spec/factories.rb index 982a3a07e16c291cac6d52e6895a2da1121bb042..81f001a1722e2c0636db872290e89dad4824bf84 100644 --- a/spec/factories.rb +++ b/spec/factories.rb @@ -52,22 +52,17 @@ Factory.define :status_message do |m| m.person end -Factory.define :blog do |b| - b.sequence(:title) {|n| "bobby's #{n} penguins"} - b.sequence(:body) {|n| "jimmy's huge #{n} whales"} -end - -Factory.define :bookmark do |b| - b.link "http://www.yahooligans.com/" -end - -Factory.define :post do |p| -end - Factory.define :photo do |p| p.image File.open( File.dirname(__FILE__) + '/fixtures/button.png') end -Factory.define(:comment) {} +Factory.define :omniauth_service do |service| + service.nickname "sirrobertking" + service.provider "twitter" + + service.sequence(:uid) { |token| "000#{token}" } + service.sequence(:access_token) { |token| "12345#{token}" } + service.sequence(:access_secret) { |token| "98765#{token}" } +end