Project

General

Profile

Feature #20511 ยป 20511.patch

Go MAEDA, 2022-03-11 06:05

View differences:

lib/redmine/wiki_formatting/textile/redcloth3.rb
298 298
        @pre_list = []
299 299
        rip_offtags text
300 300
        no_textile text
301
        clean_html_comment text
301 302
        escape_html_tags text
302 303
        # need to do this before #hard_break and #blocks
303 304
        block_textile_quotes text unless @lite_mode
......
1217 1218
            end
1218 1219
        end
1219 1220
    end
1221

  
1222
    def clean_html_comment(text)
1223
        text.gsub!(/<!--[\s\S]*?-->/, '')
1224
    end
1220 1225
end
test/helpers/application_helper_test.rb
1300 1300
      "<pre>\nline 1\nline2</pre>" => "<pre>\nline 1\nline2</pre>",
1301 1301
      "<pre><code>\nline 1\nline2</code></pre>" => "<pre><code>\nline 1\nline2</code></pre>",
1302 1302
      "<pre><div>content</div></pre>" => "<pre>&lt;div&gt;content&lt;/div&gt;</pre>",
1303
      "HTML comment: <!-- no comments -->" => "<p>HTML comment: &lt;!-- no comments --&gt;</p>",
1304 1303
      "<!-- opening comment" => "<p>&lt;!-- opening comment</p>",
1305 1304
      # remove attributes including class
1306 1305
      "<pre class='foo'>some text</pre>" => "<pre>some text</pre>",
test/unit/lib/redmine/wiki_formatting/textile_formatter_test.rb
719 719
    assert_equal expected.gsub(%r{[\r\n\t]}, ''), to_html(text).gsub(%r{[\r\n\t]}, '')
720 720
  end
721 721

  
722
  def test_should_clean_html_comment
723
    text = <<~STR
724
      <!-- begin -->
725
      Hello <!-- comment between words -->world.
726

  
727
      <!--
728
        multi-line
729
      comment -->Foo
730

  
731
      <pre>
732
      This is a code block.
733
      <p>
734
      <!-- comments in a code block should be preserved -->
735
      </p>
736
      </pre>
737
    STR
738
    expected = <<~EXPECTED
739
      <p>Hello world.</p>
740

  
741
      <p>Foo</p>
742

  
743
      <pre>
744
      This is a code block.
745
      &lt;p&gt;
746
      &lt;!-- comments in a code block should be preserved --&gt;
747
      &lt;/p&gt;
748
      </pre>
749

  
750
    EXPECTED
751
    assert_equal expected.gsub(%r{[\r\n\t]}, ''), to_html(text).gsub(%r{[\r\n\t]}, '')
752
  end
753

  
722 754
  private
723 755

  
724 756
  def assert_html_output(to_test, expect_paragraph = true)
    (1-1/1)