Commit 5de354cb6feb60f9ad732ecdcde0b5a1df8f16dc
1 parent
1e02838e
Exists in
master
and in
27 other branches
social-share: adds social buttons to content view page
(ActionItem3238)
Showing
4 changed files
with
78 additions
and
0 deletions
Show diff stats
plugins/social_share_privacy/lib/social_share_privacy_plugin.rb
| @@ -16,4 +16,16 @@ class SocialSharePrivacyPlugin < Noosfero::Plugin | @@ -16,4 +16,16 @@ class SocialSharePrivacyPlugin < Noosfero::Plugin | ||
| 16 | true | 16 | true |
| 17 | end | 17 | end |
| 18 | 18 | ||
| 19 | + def social_buttons_contents | ||
| 20 | + proc do | ||
| 21 | + settings = Noosfero::Plugin::Settings.new(environment, SocialSharePrivacyPlugin) | ||
| 22 | + locale = FastGettext.locale | ||
| 23 | + javascript_include_tag('plugins/social_share_privacy/socialshareprivacy/javascripts/socialshareprivacy.js') + | ||
| 24 | + javascript_include_tag(settings.get_setting(:networks).map { |service| "plugins/social_share_privacy/socialshareprivacy/javascripts/modules/#{service}.js" }) + | ||
| 25 | + (locale != 'en' ? javascript_include_tag("plugins/social_share_privacy/socialshareprivacy/javascripts/locale/jquery.socialshareprivacy.min.#{locale}.js") : '') + | ||
| 26 | + javascript_tag("jQuery.fn.socialSharePrivacy.settings.path_prefix = '../../plugins/social_share_privacy/socialshareprivacy/'; jQuery.fn.socialSharePrivacy.settings.order = #{settings.get_setting(:networks)}; jQuery(document).ready(function () { jQuery('.social-buttons').socialSharePrivacy({perma_option: false, info_link_target: '_blank'});});") + | ||
| 27 | + content_tag(:div, '', :class => "social-buttons") | ||
| 28 | + end | ||
| 29 | + end | ||
| 30 | + | ||
| 19 | end | 31 | end |
plugins/social_share_privacy/public/style.css
plugins/social_share_privacy/test/functional/content_viewer_controller_test.rb
0 → 100644
| @@ -0,0 +1,56 @@ | @@ -0,0 +1,56 @@ | ||
| 1 | +require File.dirname(__FILE__) + '/../../../../test/test_helper' | ||
| 2 | +require File.dirname(__FILE__) + '/../../../../app/controllers/public/invite_controller' | ||
| 3 | + | ||
| 4 | +# Re-raise errors caught by the controller. | ||
| 5 | +class ContentViewerController; def rescue_action(e) raise e end; end | ||
| 6 | + | ||
| 7 | +class ContentViewerControllerTest < ActionController::TestCase | ||
| 8 | + | ||
| 9 | + def setup | ||
| 10 | + @controller = ContentViewerController.new | ||
| 11 | + @request = ActionController::TestRequest.new | ||
| 12 | + @response = ActionController::TestResponse.new | ||
| 13 | + | ||
| 14 | + @profile = create_user('testinguser').person | ||
| 15 | + @environment = @profile.environment | ||
| 16 | + @environment.enabled_plugins = ['SocialSharePrivacyPlugin'] | ||
| 17 | + @environment.save! | ||
| 18 | + end | ||
| 19 | + | ||
| 20 | + should 'add social content on content view page' do | ||
| 21 | + page = @profile.articles.build(:name => 'test') | ||
| 22 | + page.save! | ||
| 23 | + | ||
| 24 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | ||
| 25 | + | ||
| 26 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/socialshareprivacy\.js\??\d*/} | ||
| 27 | + assert_tag :tag => 'div', :attributes => {:class => "social-buttons"} | ||
| 28 | + end | ||
| 29 | + | ||
| 30 | + should 'add social share privacy modules acording to networks settings' do | ||
| 31 | + page = @profile.articles.build(:name => 'test') | ||
| 32 | + page.save! | ||
| 33 | + Noosfero::Plugin::Settings.new(@environment, SocialSharePrivacyPlugin, :networks => ['twitter', 'gplus']).save! | ||
| 34 | + | ||
| 35 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | ||
| 36 | + | ||
| 37 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/modules\/twitter\.js\??\d*/} | ||
| 38 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/modules\/gplus\.js\??\d*/} | ||
| 39 | + end | ||
| 40 | + | ||
| 41 | + should 'add javascript with string translations if not english' do | ||
| 42 | + page = @profile.articles.build(:name => 'test') | ||
| 43 | + page.save! | ||
| 44 | + FastGettext.stubs(:locale).returns('pt') | ||
| 45 | + | ||
| 46 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | ||
| 47 | + | ||
| 48 | + assert_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/locale\/jquery\.socialshareprivacy\.min\.pt\.js\??\d*/} | ||
| 49 | + | ||
| 50 | + FastGettext.stubs(:locale).returns('en') | ||
| 51 | + | ||
| 52 | + get :view_page, :profile => @profile.identifier, :page => ['test'] | ||
| 53 | + | ||
| 54 | + assert_no_tag :tag => 'script', :attributes => {:src => /\/javascripts\/plugins\/social_share_privacy\/socialshareprivacy\/javascripts\/locale\/jquery\.socialshareprivacy\.min\.en\.js\??\d*/} | ||
| 55 | + end | ||
| 56 | +end |
plugins/social_share_privacy/test/unit/social_share_privacy_test.rb
| @@ -25,4 +25,10 @@ class SocialSharePrivacyPluginTest < ActiveSupport::TestCase | @@ -25,4 +25,10 @@ class SocialSharePrivacyPluginTest < ActiveSupport::TestCase | ||
| 25 | assert_equal [], @settings.get_setting(:networks) | 25 | assert_equal [], @settings.get_setting(:networks) |
| 26 | end | 26 | end |
| 27 | 27 | ||
| 28 | + should 'return html code for social share privacy buttons' do | ||
| 29 | + self.stubs(:environment).returns(Environment.default) | ||
| 30 | + content = @plugin.social_buttons_contents | ||
| 31 | + assert self.instance_eval(&content) | ||
| 32 | + end | ||
| 33 | + | ||
| 28 | end | 34 | end |