File: test_clean_comment.rb

package info (click to toggle)
ruby-sanitize 4.6.6-2.1~deb10u1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 528 kB
  • sloc: ruby: 2,837; makefile: 5
file content (47 lines) | stat: -rw-r--r-- 1,976 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
# encoding: utf-8
require_relative 'common'

describe 'Sanitize::Transformers::CleanComment' do
  make_my_diffs_pretty!
  parallelize_me!

  describe 'when :allow_comments is false' do
    before do
      @s = Sanitize.new(:allow_comments => false, :elements => ['div'])
    end

    it 'should remove comments' do
      @s.fragment('foo <!-- comment --> bar').must_equal 'foo  bar'
      @s.fragment('foo <!-- ').must_equal 'foo '
      @s.fragment('foo <!-- - -> bar').must_equal 'foo '
      @s.fragment("foo <!--\n\n\n\n-->bar").must_equal 'foo bar'
      @s.fragment("foo <!-- <!-- <!-- --> --> -->bar").must_equal 'foo  --&gt; --&gt;bar'
      @s.fragment("foo <div <!-- comment -->>bar</div>").must_equal 'foo <div>&gt;bar</div>'

      # Special case: the comment markup is inside a <script>, which makes it
      # text content and not an actual HTML comment.
      @s.fragment("<script><!-- comment --></script>").must_equal ''

      Sanitize.fragment("<script><!-- comment --></script>", :allow_comments => false, :elements => ['script'])
        .must_equal '<script><!-- comment --></script>'
    end
  end

  describe 'when :allow_comments is true' do
    before do
      @s = Sanitize.new(:allow_comments => true, :elements => ['div'])
    end

    it 'should allow comments' do
      @s.fragment('foo <!-- comment --> bar').must_equal 'foo <!-- comment --> bar'
      @s.fragment('foo <!-- ').must_equal 'foo <!-- -->'
      @s.fragment('foo <!-- - -> bar').must_equal 'foo <!-- - -> bar-->'
      @s.fragment("foo <!--\n\n\n\n-->bar").must_equal "foo <!--\n\n\n\n-->bar"
      @s.fragment("foo <!-- <!-- <!-- --> --> -->bar").must_equal 'foo <!-- <!-- <!-- --> --&gt; --&gt;bar'
      @s.fragment("foo <div <!-- comment -->>bar</div>").must_equal 'foo <div>&gt;bar</div>'

      Sanitize.fragment("<script><!-- comment --></script>", :allow_comments => true, :elements => ['script'])
        .must_equal '<script><!-- comment --></script>'
    end
  end
end