Commit a91ba23d160ea5e23047cc28592198c82e3a9f7c
1 parent
13b88959
Exists in
staging
and in
42 other branches
Removed unused method
Also included tests for meta tags and removed not-needed tests (ActionItem2610)
Showing
5 changed files
with
53 additions
and
48 deletions
Show diff stats
app/helpers/content_viewer_helper.rb
@@ -52,15 +52,6 @@ module ContentViewerHelper | @@ -52,15 +52,6 @@ module ContentViewerHelper | ||
52 | end | 52 | end |
53 | end | 53 | end |
54 | 54 | ||
55 | - def addthis_facebook_url(article) | ||
56 | - "http://www.facebook.com/sharer.php?s=100&p[title]=%{title}&p[summary]=%{summary}&p[url]=%{url}&p[images][0]=%{image}" % { | ||
57 | - :title => CGI.escape(article.title), | ||
58 | - :url => CGI.escape(url_for(article.url)), | ||
59 | - :summary => CGI.escape(truncate(strip_tags(article.body.to_s), :length => 300)), | ||
60 | - :image => CGI.escape(article.body_images_paths.first.to_s) | ||
61 | - } | ||
62 | - end | ||
63 | - | ||
64 | def addthis_image_tag | 55 | def addthis_image_tag |
65 | if File.exists?(File.join(Rails.root, 'public', theme_path, 'images', 'addthis.gif')) | 56 | if File.exists?(File.join(Rails.root, 'public', theme_path, 'images', 'addthis.gif')) |
66 | image_tag(File.join(theme_path, 'images', 'addthis.gif'), :border => 0, :alt => '') | 57 | image_tag(File.join(theme_path, 'images', 'addthis.gif'), :border => 0, :alt => '') |
app/views/layouts/application-ng.rhtml
@@ -11,7 +11,6 @@ | @@ -11,7 +11,6 @@ | ||
11 | <meta name="twitter:card" value="summary"> | 11 | <meta name="twitter:card" value="summary"> |
12 | <meta name="twitter:title" content="<%= h page_title %>"> | 12 | <meta name="twitter:title" content="<%= h page_title %>"> |
13 | <meta name="twitter:description" content="<%= meta_description_tag(@page) %>"> | 13 | <meta name="twitter:description" content="<%= meta_description_tag(@page) %>"> |
14 | - <meta name="twitter:image" content="<%= @page.body_images_paths.first.to_s if @page %>"> | ||
15 | 14 | ||
16 | <!-- Open Graph --> | 15 | <!-- Open Graph --> |
17 | <meta property="og:type" content="<%= @page ? 'article' : 'website' %>"> | 16 | <meta property="og:type" content="<%= @page ? 'article' : 'website' %>"> |
@@ -23,6 +22,7 @@ | @@ -23,6 +22,7 @@ | ||
23 | <% if @page %> | 22 | <% if @page %> |
24 | <meta property="article:published_time" content="<%= show_date(@page.published_at) %>"> | 23 | <meta property="article:published_time" content="<%= show_date(@page.published_at) %>"> |
25 | <% @page.body_images_paths.each do |img| %> | 24 | <% @page.body_images_paths.each do |img| %> |
25 | + <meta name="twitter:image" content="<%= img.to_s %>"> | ||
26 | <meta property="og:image" content="<%= img.to_s %>"> | 26 | <meta property="og:image" content="<%= img.to_s %>"> |
27 | <% end %> | 27 | <% end %> |
28 | <% end %> | 28 | <% end %> |
test/functional/application_controller_test.rb
@@ -263,7 +263,7 @@ class ApplicationControllerTest < ActionController::TestCase | @@ -263,7 +263,7 @@ class ApplicationControllerTest < ActionController::TestCase | ||
263 | assert_no_tag :tag => 'a', :content => /Category 2/ | 263 | assert_no_tag :tag => 'a', :content => /Category 2/ |
264 | end | 264 | end |
265 | 265 | ||
266 | - should 'show name of article as title of page' do | 266 | + should 'show name of article as title of page without environment' do |
267 | p = create_user('test_user').person | 267 | p = create_user('test_user').person |
268 | a = p.articles.create!(:name => 'test article') | 268 | a = p.articles.create!(:name => 'test article') |
269 | 269 | ||
@@ -271,17 +271,22 @@ class ApplicationControllerTest < ActionController::TestCase | @@ -271,17 +271,22 @@ class ApplicationControllerTest < ActionController::TestCase | ||
271 | @controller.instance_variable_set('@page', a) | 271 | @controller.instance_variable_set('@page', a) |
272 | 272 | ||
273 | get :index | 273 | get :index |
274 | - assert_tag 'title', :content => 'test article - ' + p.name + ' - ' + p.environment.name | 274 | + assert_tag 'title', :content => 'test article - ' + p.name |
275 | end | 275 | end |
276 | 276 | ||
277 | - should 'diplay name of profile in the title' do | 277 | + should 'diplay name of profile in the title without environment' do |
278 | p = create_user('test_user').person | 278 | p = create_user('test_user').person |
279 | p.name = 'Some Test User' | 279 | p.name = 'Some Test User' |
280 | p.save! | 280 | p.save! |
281 | @controller.instance_variable_set('@profile', p) | 281 | @controller.instance_variable_set('@profile', p) |
282 | 282 | ||
283 | get :index, :profile => p.identifier | 283 | get :index, :profile => p.identifier |
284 | - assert_tag 'title', :content => p.name + ' - ' + p.environment.name | 284 | + assert_tag 'title', :content => p.name |
285 | + end | ||
286 | + | ||
287 | + should 'display environment name in title when profile and page are not defined' do | ||
288 | + get :index | ||
289 | + assert_tag 'title', :content => assigns(:environment).name | ||
285 | end | 290 | end |
286 | 291 | ||
287 | should 'display menu links for my environment when logged in other environment' do | 292 | should 'display menu links for my environment when logged in other environment' do |
@@ -324,7 +329,8 @@ class ApplicationControllerTest < ActionController::TestCase | @@ -324,7 +329,8 @@ class ApplicationControllerTest < ActionController::TestCase | ||
324 | end | 329 | end |
325 | 330 | ||
326 | should 'set html lang as the article language if an article is present and has a language' do | 331 | should 'set html lang as the article language if an article is present and has a language' do |
327 | - a = fast_create(Article, :name => 'test article', :language => 'fr') | 332 | + p = create_user('test_user').person |
333 | + a = fast_create(Article, :name => 'test article', :language => 'fr', :profile_id => p.id ) | ||
328 | @controller.instance_variable_set('@page', a) | 334 | @controller.instance_variable_set('@page', a) |
329 | FastGettext.stubs(:locale).returns('es') | 335 | FastGettext.stubs(:locale).returns('es') |
330 | get :index | 336 | get :index |
@@ -338,7 +344,9 @@ class ApplicationControllerTest < ActionController::TestCase | @@ -338,7 +344,9 @@ class ApplicationControllerTest < ActionController::TestCase | ||
338 | end | 344 | end |
339 | 345 | ||
340 | should 'set html lang as locale if page has no language' do | 346 | should 'set html lang as locale if page has no language' do |
341 | - a = fast_create(Article, :name => 'test article', :language => nil) | 347 | + p = create_user('test_user').person |
348 | + a = fast_create(Article, :name => 'test article', :language => nil, :profile_id => p.id ) | ||
349 | + | ||
342 | @controller.instance_variable_set('@page', a) | 350 | @controller.instance_variable_set('@page', a) |
343 | FastGettext.stubs(:locale).returns('es') | 351 | FastGettext.stubs(:locale).returns('es') |
344 | get :index | 352 | get :index |
@@ -542,4 +550,18 @@ class ApplicationControllerTest < ActionController::TestCase | @@ -542,4 +550,18 @@ class ApplicationControllerTest < ActionController::TestCase | ||
542 | assert_equal nil, @controller.application_controller_test_other_filter_plugin_filter_plugin | 550 | assert_equal nil, @controller.application_controller_test_other_filter_plugin_filter_plugin |
543 | end | 551 | end |
544 | 552 | ||
553 | + should 'display meta tags for social media' do | ||
554 | + get :index | ||
555 | + assert_tag :tag => 'meta', :attributes => { :name => 'twitter:card', :value => 'summary' } | ||
556 | + assert_tag :tag => 'meta', :attributes => { :name => 'twitter:title', :content => assigns(:environment).name } | ||
557 | + assert_tag :tag => 'meta', :attributes => { :name => 'twitter:description', :content => assigns(:environment).name } | ||
558 | + assert_no_tag :tag => 'meta', :attributes => { :name => 'twitter:image' } | ||
559 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:type', :content => 'website' } | ||
560 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:url', :content => assigns(:environment).top_url } | ||
561 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:title', :content => assigns(:environment).name } | ||
562 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:site_name', :content => assigns(:environment).name } | ||
563 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:description', :content => assigns(:environment).name } | ||
564 | + assert_no_tag :tag => 'meta', :attributes => { :property => 'article:published_time' } | ||
565 | + assert_no_tag :tag => 'meta', :attributes => { :property => 'og:image' } | ||
566 | + end | ||
545 | end | 567 | end |
test/functional/content_viewer_controller_test.rb
@@ -1369,4 +1369,28 @@ class ContentViewerControllerTest < ActionController::TestCase | @@ -1369,4 +1369,28 @@ class ContentViewerControllerTest < ActionController::TestCase | ||
1369 | assert_match /this is a sample text file/, @response.body | 1369 | assert_match /this is a sample text file/, @response.body |
1370 | end | 1370 | end |
1371 | 1371 | ||
1372 | + should 'add meta tags with article info' do | ||
1373 | + a = TinyMceArticle.create(:name => 'Article to be shared', :body => 'This article should be shared with all social networks', :profile => profile) | ||
1374 | + | ||
1375 | + get :view_page, :profile => profile.identifier, :page => [ a.name.to_slug ] | ||
1376 | + | ||
1377 | + assert_tag :tag => 'meta', :attributes => { :name => 'twitter:title', :content => /#{a.name} - #{a.profile.name}/ } | ||
1378 | + assert_tag :tag => 'meta', :attributes => { :name => 'twitter:description', :content => a.body } | ||
1379 | + assert_no_tag :tag => 'meta', :attributes => { :name => 'twitter:image' } | ||
1380 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:type', :content => 'article' } | ||
1381 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:url', :content => /\/#{profile.identifier}\/#{a.name.to_slug}/ } | ||
1382 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:title', :content => /#{a.name} - #{a.profile.name}/ } | ||
1383 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:site_name', :content => a.profile.name } | ||
1384 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:description', :content => a.body } | ||
1385 | + assert_no_tag :tag => 'meta', :attributes => { :property => 'og:image' } | ||
1386 | + end | ||
1387 | + | ||
1388 | + should 'add meta tags with article images' do | ||
1389 | + a = TinyMceArticle.create(:name => 'Article to be shared with images', :body => 'This article should be shared with all social networks <img src="/images/x.png" />', :profile => profile) | ||
1390 | + | ||
1391 | + get :view_page, :profile => profile.identifier, :page => [ a.name.to_slug ] | ||
1392 | + assert_tag :tag => 'meta', :attributes => { :name => 'twitter:image', :content => /\/images\/x.png/ } | ||
1393 | + assert_tag :tag => 'meta', :attributes => { :property => 'og:image', :content => /\/images\/x.png/ } | ||
1394 | + end | ||
1395 | + | ||
1372 | end | 1396 | end |
test/unit/content_viewer_helper_test.rb
@@ -89,38 +89,6 @@ class ContentViewerHelperTest < ActiveSupport::TestCase | @@ -89,38 +89,6 @@ class ContentViewerHelperTest < ActiveSupport::TestCase | ||
89 | assert_no_match /feed/, result | 89 | assert_no_match /feed/, result |
90 | end | 90 | end |
91 | 91 | ||
92 | - should 'generate facebook addthis url for article' do | ||
93 | - Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') | ||
94 | - [TextileArticle, Blog, Folder, Gallery, UploadedFile, Forum, Event, TextArticle, TinyMceArticle].each do |model| | ||
95 | - a = model.new(:name => 'Some title', :body => 'Some text here.', :profile => profile) | ||
96 | - assert_equal "http://www.facebook.com/sharer.php?s=100&p[title]=Some+title&p[summary]=Some+text+here.&p[url]=http%3A%2F%2Fnoosfero.org%2Fblog_helper_test%2Fsome-title&p[images][0]=", addthis_facebook_url(a) | ||
97 | - end | ||
98 | - end | ||
99 | - | ||
100 | - should 'generate facebook addthis url without body' do | ||
101 | - Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') | ||
102 | - a = TinyMceArticle.new(:name => 'Test', :body => nil, :profile => profile) | ||
103 | - assert_equal "http://www.facebook.com/sharer.php?s=100&p[title]=Test&p[summary]=&p[url]=http%3A%2F%2Fnoosfero.org%2Fblog_helper_test%2Ftest&p[images][0]=", addthis_facebook_url(a) | ||
104 | - end | ||
105 | - | ||
106 | - should 'generate facebook addthis url without tags in body' do | ||
107 | - Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') | ||
108 | - a = TinyMceArticle.new(:name => 'Some title', :body => '<p>This <b class="bold">is</b> a test</p>', :profile => profile) | ||
109 | - assert_equal "http://www.facebook.com/sharer.php?s=100&p[title]=Some+title&p[summary]=This+is+a+test&p[url]=http%3A%2F%2Fnoosfero.org%2Fblog_helper_test%2Fsome-title&p[images][0]=", addthis_facebook_url(a) | ||
110 | - end | ||
111 | - | ||
112 | - should 'generate facebook addthis url with truncated body' do | ||
113 | - Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') | ||
114 | - a = TinyMceArticle.new(:name => 'Some title', :body => 'test' * 76, :profile => profile) | ||
115 | - assert_equal "http://www.facebook.com/sharer.php?s=100&p[title]=Some+title&p[summary]=#{'test' * 74}t...&p[url]=http%3A%2F%2Fnoosfero.org%2Fblog_helper_test%2Fsome-title&p[images][0]=", addthis_facebook_url(a) | ||
116 | - end | ||
117 | - | ||
118 | - should 'generate facebook addthis url for tinymce article with images' do | ||
119 | - Environment.any_instance.stubs(:default_hostname).returns('noosfero.org') | ||
120 | - a = TinyMceArticle.new(:name => 'Some title', :body => '<p>This <b class="bold">is</b> a <img src="/images/x.png" />test</p>', :profile => profile) | ||
121 | - assert_equal "http://www.facebook.com/sharer.php?s=100&p[title]=Some+title&p[summary]=This+is+a+test&p[url]=http%3A%2F%2Fnoosfero.org%2Fblog_helper_test%2Fsome-title&p[images][0]=http%3A%2F%2Fnoosfero.org%2Fimages%2Fx.png", addthis_facebook_url(a) | ||
122 | - end | ||
123 | - | ||
124 | should 'theme provides addthis custom icon' do | 92 | should 'theme provides addthis custom icon' do |
125 | stubs(:session).returns({:theme => 'base'}) | 93 | stubs(:session).returns({:theme => 'base'}) |
126 | File.expects(:exists?).with(anything).returns(true) | 94 | File.expects(:exists?).with(anything).returns(true) |