diff --git a/test/scrubbers_test.rb b/test/scrubbers_test.rb index e6612e9..a825404 100644 --- a/test/scrubbers_test.rb +++ b/test/scrubbers_test.rb @@ -41,6 +41,16 @@ def test_default_scrub_behavior assert_scrubbed 'hello', 'hello' end + def test_default_scrub_removes_comments + assert_scrubbed('
one
three', + '
one
three') + end + + def test_default_scrub_removes_processing_instructions + assert_scrubbed('
one
three', + '
one
three') + end + def test_default_attributes_removal_behavior assert_scrubbed '

hello

', '

hello

' end @@ -56,6 +66,12 @@ def test_leaves_only_supplied_tags assert_scrubbed html, 'leave me now' end + def test_leaves_comments_when_supplied_as_tag + @scrubber.tags = %w(div comment) + assert_scrubbed('
one
three', + '
one
three') + end + def test_leaves_only_supplied_tags_nested html = 'leave me now' @scrubber.tags = %w(tag) @@ -112,50 +128,6 @@ def test_attributes_accessor_validation end end -class PermitScrubberSubclassTest < ScrubberTest - def setup - @scrubber = Class.new(::Rails::Html::PermitScrubber) do - attr :nodes_seen - - def initialize - super() - @nodes_seen = [] - end - - def keep_node?(node) - @nodes_seen << node.name - super(node) - end - end.new - end - - def test_elements_are_checked - html = %Q("
") - Loofah.scrub_fragment(html, @scrubber) - assert_includes(@scrubber.nodes_seen, "div") - assert_includes(@scrubber.nodes_seen, "a") - assert_includes(@scrubber.nodes_seen, "tr") - end - - def test_comments_are_checked - # this passes in v1.3.0 but fails in v1.4.0 - html = %Q("
") - Loofah.scrub_fragment(html, @scrubber) - assert_includes(@scrubber.nodes_seen, "div") - assert_includes(@scrubber.nodes_seen, "comment") - assert_includes(@scrubber.nodes_seen, "tr") - end - - def test_craftily_named_processing_instructions_are_not_checked - # this fails in v1.3.0 but passes in v1.4.0 - html = %Q("
") - Loofah.scrub_fragment(html, @scrubber) - assert_includes(@scrubber.nodes_seen, "div") - refute_includes(@scrubber.nodes_seen, "a") - assert_includes(@scrubber.nodes_seen, "tr") - end -end - class TargetScrubberTest < ScrubberTest def setup @scrubber = Rails::Html::TargetScrubber.new