Commit 04962ef3e6cfc8c5c86179aaa1d039ffbf1b6bc6
Exists in
master
and in
28 other branches
Merge branch 'parse-everything' into stable
Showing
6 changed files
with
36 additions
and
4 deletions
Show diff stats
app/helpers/application_helper.rb
... | ... | @@ -1401,7 +1401,7 @@ module ApplicationHelper |
1401 | 1401 | end |
1402 | 1402 | |
1403 | 1403 | def filter_html(html, source) |
1404 | - if @plugins | |
1404 | + if @plugins && source.has_macro? | |
1405 | 1405 | html = convert_macro(html, source) |
1406 | 1406 | #TODO This parse should be done through the macro infra, but since there |
1407 | 1407 | # are old things that do not support it we are keeping this hot spot. | ... | ... |
app/helpers/boxes_helper.rb
... | ... | @@ -100,9 +100,7 @@ module BoxesHelper |
100 | 100 | options[:title] = _("This block is invisible. Your visitors will not see it.") |
101 | 101 | end |
102 | 102 | |
103 | - if @controller.send(:content_editor?) | |
104 | - result = filter_html(result, block) | |
105 | - end | |
103 | + result = filter_html(result, block) | |
106 | 104 | |
107 | 105 | box_decorator.block_target(block.box, block) + |
108 | 106 | content_tag('div', | ... | ... |
app/models/article.rb
app/models/block.rb
app/models/raw_html_block.rb
test/unit/application_helper_test.rb
... | ... | @@ -791,6 +791,29 @@ class ApplicationHelperTest < ActiveSupport::TestCase |
791 | 791 | '<br style=\'clear: left;\' /></div>', result |
792 | 792 | end |
793 | 793 | |
794 | + should 'not filter html if source does not have macros' do | |
795 | + class Plugin1 < Noosfero::Plugin | |
796 | + end | |
797 | + | |
798 | + class Plugin1::Macro1 < Noosfero::Plugin::Macro | |
799 | + def parse(params, inner_html, source) | |
800 | + 'Test1' | |
801 | + end | |
802 | + end | |
803 | + | |
804 | + environment = Environment.default | |
805 | + environment.enable_plugin(Plugin1) | |
806 | + @plugins = Noosfero::Plugin::Manager.new(environment, self) | |
807 | + macro1_name = Plugin1::Macro1.identifier | |
808 | + source = mock | |
809 | + source.stubs(:has_macro?).returns(false) | |
810 | + | |
811 | + html = "<div class='macro nonEdit' data-macro='#{macro1_name}' data-macro-param='123'></div>" | |
812 | + parsed_html = filter_html(html, source) | |
813 | + | |
814 | + assert_no_match /Test1/, parsed_html | |
815 | + end | |
816 | + | |
794 | 817 | protected |
795 | 818 | include NoosferoTestHelper |
796 | 819 | ... | ... |