Facebook plugin always appends (via D* post URL) to cross-posts
fixes #7770 closes #7774
This commit is contained in:
parent
3d83fbdbe5
commit
5a8bdc1e71
3 changed files with 34 additions and 19 deletions
|
|
@ -12,6 +12,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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue