Commit c7edb005c159f7890558deb94b4fd4fa801fa017
Committed by
Daniela Feitosa
1 parent
e927bd9d
Exists in
master
and in
29 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 = { } |