X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/7a64e03a24ee4465f0c3316f72e1404624e709c7..dfd67489c93bc9bb0ed989bd16eca5e4b4ff67be:/test/lib/rich_text_test.rb diff --git a/test/lib/rich_text_test.rb b/test/lib/rich_text_test.rb index c04a4b3ae..4ec85bcf9 100644 --- a/test/lib/rich_text_test.rb +++ b/test/lib/rich_text_test.rb @@ -269,8 +269,22 @@ class RichTextTest < ActiveSupport::TestCase end end - def test_text_to_html_linkify_wiki_replace - with_settings(:linkify_wiki_hosts => ["replace-me-wiki.example.com"], :linkify_wiki_hosts_replacement => "wiki.example.com") do + def test_text_to_html_linkify_wiki_replace_prefix + with_settings(:linkify_wiki_hosts => ["replace-me-wiki.example.com"], :linkify_wiki_hosts_replacement => "wiki.example.com", + :linkify_wiki_optional_path_prefix => "^/wiki(?=/[A-Z])") do + r = RichText.new("text", "foo https://replace-me-wiki.example.com/wiki/Tag:surface%3Dmetal bar") + assert_html r do + assert_dom "a", :count => 1, :text => "wiki.example.com/Tag:surface%3Dmetal" do + assert_dom "> @href", "https://replace-me-wiki.example.com/wiki/Tag:surface%3Dmetal" + assert_dom "> @rel", "nofollow noopener noreferrer" + end + end + end + end + + def test_text_to_html_linkify_wiki_replace_prefix_undefined + with_settings(:linkify_wiki_hosts => ["replace-me-wiki.example.com"], :linkify_wiki_hosts_replacement => "wiki.example.com", + :linkify_wiki_optional_path_prefix => nil) do r = RichText.new("text", "foo https://replace-me-wiki.example.com/wiki/Tag:surface%3Dmetal bar") assert_html r do assert_dom "a", :count => 1, :text => "wiki.example.com/wiki/Tag:surface%3Dmetal" do @@ -281,6 +295,32 @@ class RichTextTest < ActiveSupport::TestCase end end + def test_text_to_html_linkify_wiki_replace_undefined_prefix + with_settings(:linkify_wiki_hosts => ["replace-me-wiki.example.com"], :linkify_wiki_hosts_replacement => nil, + :linkify_wiki_optional_path_prefix => "^/wiki(?=/[A-Z])") do + r = RichText.new("text", "foo https://replace-me-wiki.example.com/wiki/Tag:surface%3Dmetal bar") + assert_html r do + assert_dom "a", :count => 1, :text => "https://replace-me-wiki.example.com/Tag:surface%3Dmetal" do + assert_dom "> @href", "https://replace-me-wiki.example.com/wiki/Tag:surface%3Dmetal" + assert_dom "> @rel", "nofollow noopener noreferrer" + end + end + end + end + + def test_text_to_html_linkify_wiki_replace_prefix_no_match + with_settings(:linkify_wiki_hosts => ["replace-me-wiki.example.com"], :linkify_wiki_hosts_replacement => "wiki.example.com", + :linkify_wiki_optional_path_prefix => "^/wiki(?=/[A-Z])") do + r = RichText.new("text", "foo https://replace-me-wiki.example.com/wiki/w bar") + assert_html r do + assert_dom "a", :count => 1, :text => "wiki.example.com/wiki/w" do + assert_dom "> @href", "https://replace-me-wiki.example.com/wiki/w" + assert_dom "> @rel", "nofollow noopener noreferrer" + end + end + end + end + def test_text_to_html_email r = RichText.new("text", "foo example@example.com bar") assert_html r do