]> git.openstreetmap.org Git - rails.git/commitdiff
Merge remote-tracking branch 'upstream/pull/3149'
authorTom Hughes <tom@compton.nu>
Wed, 24 Mar 2021 19:53:41 +0000 (19:53 +0000)
committerTom Hughes <tom@compton.nu>
Wed, 24 Mar 2021 19:53:41 +0000 (19:53 +0000)
config/initializers/sanitize.rb
test/lib/rich_text_test.rb

index 6f2e30852029f17d0deafa615b4068daf540d9c3..b98523805a3e188806dd0eed7aaacc3d5449a6e2 100644 (file)
@@ -1,8 +1,10 @@
-Sanitize::Config::OSM = Sanitize::Config::RELAXED.dup
-
-Sanitize::Config::OSM[:elements] -= %w[div style]
-Sanitize::Config::OSM[:add_attributes] = { "a" => { "rel" => "nofollow noopener noreferrer" } }
-Sanitize::Config::OSM[:remove_contents] = %w[script style]
-Sanitize::Config::OSM[:transformers] = lambda do |env|
-  env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
-end
+Sanitize::Config::OSM = Sanitize::Config.merge(
+  Sanitize::Config::RELAXED,
+  :elements => Sanitize::Config::RELAXED[:elements] - %w[div style],
+  :add_attributes => { "a" => { "rel" => "nofollow noopener noreferrer" } },
+  :remove_contents => %w[script style],
+  :transformers => lambda do |env|
+    env[:node].remove_class
+    env[:node].add_class("table table-sm w-auto") if env[:node_name] == "table"
+  end
+)
index 80cf0ae37e30c3fa293e9aae862c2ea6f63300b1..5b590bc3e41ae1a60253884ff1154622af7c436e 100644 (file)
@@ -47,6 +47,17 @@ class RichTextTest < ActiveSupport::TestCase
       assert_select "style", false
       assert_select "p", /^foo *baz$/
     end
+
+    r = RichText.new("html", "<table><tr><td>column</td></tr></table>")
+    assert_html r do
+      assert_select "table[class='table table-sm w-auto']"
+    end
+
+    r = RichText.new("html", "<p class='btn btn-warning'>Click Me</p>")
+    assert_html r do
+      assert_select "p[class='btn btn-warning']", false
+      assert_select "p", /^Click Me$/
+    end
   end
 
   def test_html_to_text
@@ -145,6 +156,18 @@ class RichTextTest < ActiveSupport::TestCase
     assert_html r do
       assert_select "pre", /^\s*foo bar baz\s*$/
     end
+
+    r = RichText.new("markdown", "|column|column")
+    assert_html r do
+      assert_select "table[class='table table-sm w-auto']"
+    end
+
+    r = RichText.new("markdown", "Click Me\n{:.btn.btn-warning}")
+    # raise r.to_html
+    assert_html r do
+      assert_select "p[class='btn btn-warning']", false
+      assert_select "p", /^Click Me$/
+    end
   end
 
   def test_markdown_to_text