Merge branch 'next-minor' into develop

This commit is contained in:
Benjamin Neff 2018-06-20 00:50:34 +02:00
commit f9a59f2ff0
No known key found for this signature in database
GPG key ID: 971464C3F1A90194
4 changed files with 36 additions and 21 deletions

View file

@ -25,6 +25,7 @@
## Features ## Features
* Support fetching StatusMessage by Poll GUID [#7815](https://github.com/diaspora/diaspora/pull/7815) * Support fetching StatusMessage by Poll GUID [#7815](https://github.com/diaspora/diaspora/pull/7815)
* Always include link to diaspora in facebook cross-posts [#7774](https://github.com/diaspora/diaspora/pull/7774)
# 0.7.5.0 # 0.7.5.0

View file

@ -480,7 +480,7 @@ GEM
byebug (~> 10.0) byebug (~> 10.0)
pry (~> 0.10) pry (~> 0.10)
public_suffix (3.0.2) public_suffix (3.0.2)
rack (2.0.4) rack (2.0.5)
rack-cors (1.0.2) rack-cors (1.0.2)
rack-google-analytics (1.2.0) rack-google-analytics (1.2.0)
actionpack actionpack
@ -676,7 +676,7 @@ GEM
spring (>= 0.9.1) spring (>= 0.9.1)
spring-commands-rspec (1.0.4) spring-commands-rspec (1.0.4)
spring (>= 0.9.1) spring (>= 0.9.1)
sprockets (3.7.1) sprockets (3.7.2)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
rack (> 1, < 3) rack (> 1, < 3)
sprockets-es6 (0.9.2) sprockets-es6 (0.9.2)

View file

@ -24,14 +24,18 @@ class Services::Facebook < Service
def create_post_params(post) def create_post_params(post)
message = post.message.plain_text_without_markdown message = post.message.plain_text_without_markdown
if post.photos.any? post_url = short_post_url(post, protocol: AppConfig.pod_uri.scheme, host: AppConfig.pod_uri.authority)
message += " " + short_post_url(post, protocol: AppConfig.pod_uri.scheme,
host: AppConfig.pod_uri.authority)
end
{message: message, message = if message.empty?
access_token: access_token, post_url
link: post.message.urls.first else
"#{message} (via #{post_url})"
end
{
message: message,
access_token: access_token,
link: post.message.urls.first
} }
end end

View file

@ -22,39 +22,49 @@ describe Services::Facebook, :type => :model do
post_params = @service.create_post_params(post) post_params = @service.create_post_params(post)
end end
it 'does not add post link when no photos' do it "adds '(via <post URL>)'" do
message = "Some text." message = "Some text."
post = double(message: double(plain_text_without_markdown: message, urls: []), photos: []) post = double(message: double(plain_text_without_markdown: message, urls: []), photos: [])
post_params = @service.create_post_params(post) post_params = @service.create_post_params(post)
expect(post_params[:message]).not_to include "http" expect(post_params[:message]).to include "(via http:"
end end
it 'sets facebook id on post' do it "sets facebook id on post" do
stub_request(:post, "https://graph.facebook.com/me/feed"). stub_request(:post, "https://graph.facebook.com/me/feed")
to_return(:status => 200, :body => '{"id": "12345"}', :headers => {}) .to_return(status: 200, body: '{"id": "12345"}', headers: {})
@service.post(@post) @service.post(@post)
expect(@post.facebook_id).to match "12345" expect(@post.facebook_id).to match "12345"
end end
end end
describe "with photo" do describe "with photo" do
before do before do
@photos = [alice.build_post(:photo, :pending => true, :user_file=> File.open(photo_fixture_name)), @photos = [alice.build_post(:photo, pending: true, user_file: File.open(photo_fixture_name)),
alice.build_post(:photo, :pending => true, :user_file=> File.open(photo_fixture_name))] alice.build_post(:photo, pending: true, user_file: File.open(photo_fixture_name))]
@photos.each(&:save!) @photos.each(&:save!)
end
@status_message = alice.build_post(:status_message, :text => "the best pebble.") it "should include post url in message with photos as (via... " do
@status_message.photos << @photos @status_message = alice.build_post(:status_message, text: "the best pebble.")
@status_message.photos << @photos
@status_message.save! @status_message.save!
alice.add_to_streams(@status_message, alice.aspects) alice.add_to_streams(@status_message, alice.aspects)
post_params = @service.create_post_params(@status_message)
expect(post_params[:message]).to include "(via http:"
end end
it "should include post url in message with photos" do it "should include post url in message with photos when no text message" do
@status_message = alice.build_post(:status_message, text: "")
@status_message.photos << @photos
@status_message.save!
alice.add_to_streams(@status_message, alice.aspects)
post_params = @service.create_post_params(@status_message) post_params = @service.create_post_params(@status_message)
expect(post_params[:message]).to include 'http' expect(post_params[:message]).to include "http:"
end end
end end