Commit 5de354cb6feb60f9ad732ecdcde0b5a1df8f16dc
1 parent
1e02838e
Exists in
master
and in
22 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 |