Commit c7edb005c159f7890558deb94b4fd4fa801fa017
Committed by
Daniela Feitosa
1 parent
e927bd9d
Exists in
master
and in
27 other branches
make profile_editor_extras respond to procs properly
Conflicts: app/views/profile_editor/edit.html.erb (ActionItem3152)
Showing
2 changed files
with
18 additions
and
1 deletions
Show diff stats
app/views/profile_editor/edit.html.erb
@@ -53,7 +53,7 @@ | @@ -53,7 +53,7 @@ | ||
53 | 53 | ||
54 | <%= | 54 | <%= |
55 | @plugins.dispatch(:profile_editor_extras).map do |content| | 55 | @plugins.dispatch(:profile_editor_extras).map do |content| |
56 | - if content.respond_to?(:call) then instance_eval(&content).html_safe else content.html_safe end | 56 | + content.kind_of?(Proc) ? self.instance_eval(&content) : content |
57 | end.join("\n") | 57 | end.join("\n") |
58 | %> | 58 | %> |
59 | 59 |
test/functional/profile_editor_controller_test.rb
@@ -894,6 +894,23 @@ class ProfileEditorControllerTest < ActionController::TestCase | @@ -894,6 +894,23 @@ class ProfileEditorControllerTest < ActionController::TestCase | ||
894 | assert_tag :tag => 'input', :attributes => {:id => 'field_added_by_plugin', :value => 'value_of_field_added_by_plugin'} | 894 | assert_tag :tag => 'input', :attributes => {:id => 'field_added_by_plugin', :value => 'value_of_field_added_by_plugin'} |
895 | end | 895 | end |
896 | 896 | ||
897 | + should 'add extra content with block provided by plugins on edit' do | ||
898 | + class TestProfileEditPlugin < Noosfero::Plugin | ||
899 | + def profile_editor_extras | ||
900 | + lambda do | ||
901 | + render :text => "<input id='field_added_by_plugin' value='value_of_field_added_by_plugin'/>" | ||
902 | + end | ||
903 | + end | ||
904 | + end | ||
905 | + Noosfero::Plugin.stubs(:all).returns([TestProfileEditPlugin.to_s]) | ||
906 | + | ||
907 | + Noosfero::Plugin::Manager.any_instance.stubs(:enabled_plugins).returns([TestProfileEditPlugin.new]) | ||
908 | + | ||
909 | + get :edit, :profile => profile.identifier | ||
910 | + | ||
911 | + assert_tag :tag => 'input', :attributes => {:id => 'field_added_by_plugin', :value => 'value_of_field_added_by_plugin'} | ||
912 | + end | ||
913 | + | ||
897 | should 'show image upload field from profile editor' do | 914 | should 'show image upload field from profile editor' do |
898 | env = Environment.default | 915 | env = Environment.default |
899 | env.custom_person_fields = { } | 916 | env.custom_person_fields = { } |