Commit a91ba23d160ea5e23047cc28592198c82e3a9f7c

Authored by Daniela Feitosa
1 parent 13b88959

Removed unused method

Also included tests for meta tags and removed not-needed tests

(ActionItem2610)
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 &lt; ActionController::TestCase @@ -263,7 +263,7 @@ class ApplicationControllerTest &lt; 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 &lt; ActionController::TestCase @@ -271,17 +271,22 @@ class ApplicationControllerTest &lt; 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 &lt; ActionController::TestCase @@ -324,7 +329,8 @@ class ApplicationControllerTest &lt; 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 &lt; ActionController::TestCase @@ -338,7 +344,9 @@ class ApplicationControllerTest &lt; 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 &lt; ActionController::TestCase @@ -542,4 +550,18 @@ class ApplicationControllerTest &lt; 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 &lt; ActionController::TestCase @@ -1369,4 +1369,28 @@ class ContentViewerControllerTest &lt; 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 &lt; ActiveSupport::TestCase @@ -89,38 +89,6 @@ class ContentViewerHelperTest &lt; 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)