diff --git a/app/helpers/open_graph_helper.rb b/app/helpers/open_graph_helper.rb index 79b924e88eeb2dca3fe3cc3d315a3822ced8d823..8fa72e3786a045c3195091fdc28e50402da17652 100644 --- a/app/helpers/open_graph_helper.rb +++ b/app/helpers/open_graph_helper.rb @@ -50,14 +50,21 @@ module OpenGraphHelper end def og_page_post_tags(post) - [ - *og_common_tags, - og_type("#{og_namespace}:frame"), - og_title(post_page_title(post, :length => 140)), - og_url(post_url(post)), - og_image(post), - og_description(post.message.plain_text_without_markdown truncate: 1000) - ].join("\n").html_safe + tags = og_common_tags + + + if post.message + tags.concat [ + *tags, + og_type("#{og_namespace}:frame"), + og_title(post_page_title(post, :length => 140)), + og_url(post_url(post)), + og_image(post), + og_description(post.message.plain_text_without_markdown truncate: 1000) + ] + end + + tags.join("\n").html_safe end def og_prefix diff --git a/spec/helpers/open_graph_helper_spec.rb b/spec/helpers/open_graph_helper_spec.rb index 2518ee0619316937351944d9ca5737956130b3f9..f2f3e6480234212df74d798d4fd9bb76f541e0e5 100644 --- a/spec/helpers/open_graph_helper_spec.rb +++ b/spec/helpers/open_graph_helper_spec.rb @@ -1,6 +1,21 @@ require 'spec_helper' describe OpenGraphHelper, :type => :helper do + describe 'og_page_post_tags' do + it 'handles a reshare of a deleted post' do + reshare = FactoryGirl.build(:reshare, root: nil, id: 123) + + expect { + helper.og_page_post_tags(reshare) + }.to_not raise_error + end + + it 'handles a normal post' do + post = FactoryGirl.create(:status_message) + expect(helper.og_page_post_tags(post)).to include helper.og_url(post_url(post)) + end + end + describe 'og_html' do scenarios = { "article" => {