Merge pull request #4031 from rriemann/support_hyphen_in_mentions
fix: support for hyphens in group name
This commit is contained in:
commit
4ce870c17f
|
@ -73,7 +73,7 @@ module PrettyText
|
||||||
@ctx_init = Mutex.new
|
@ctx_init = Mutex.new
|
||||||
|
|
||||||
def self.mention_matcher
|
def self.mention_matcher
|
||||||
Regexp.new("\\W@(\\w{#{SiteSetting.min_username_length},#{SiteSetting.max_username_length}})\\b")
|
Regexp.new("\\W@([\\w\\-]{#{SiteSetting.min_username_length},#{SiteSetting.max_username_length}})\\b")
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.app_root
|
def self.app_root
|
||||||
|
|
|
@ -48,6 +48,11 @@ HTML
|
||||||
expect(PrettyText.cook('@hello @hello @hello')).to match_html "<p><span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span></p>"
|
expect(PrettyText.cook('@hello @hello @hello')).to match_html "<p><span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span> <span class=\"mention\">@hello</span></p>"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "should handle group mentions with a hyphen and without" do
|
||||||
|
expect(PrettyText.cook('@hello @hello-hello')).to match_html "<p><span class=\"mention\">@hello</span> <span class=\"mention\">@hello-hello</span></p>"
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
it "should sanitize the html" do
|
it "should sanitize the html" do
|
||||||
expect(PrettyText.cook("<script>alert(42)</script>")).to match_html "<p></p>"
|
expect(PrettyText.cook("<script>alert(42)</script>")).to match_html "<p></p>"
|
||||||
end
|
end
|
||||||
|
|
|
@ -206,6 +206,11 @@ describe PostAnalyzer do
|
||||||
expect(post_analyzer.raw_mentions).to eq(['jake', 'finn', 'jake_old'])
|
expect(post_analyzer.raw_mentions).to eq(['jake', 'finn', 'jake_old'])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "handles hyphen in groupname" do
|
||||||
|
post_analyzer = PostAnalyzer.new("@org-board", default_topic_id)
|
||||||
|
expect(post_analyzer.raw_mentions).to eq(['org-board'])
|
||||||
|
end
|
||||||
|
|
||||||
it "ignores emails" do
|
it "ignores emails" do
|
||||||
post_analyzer = PostAnalyzer.new("1@test.com 1@best.com @best @not", default_topic_id)
|
post_analyzer = PostAnalyzer.new("1@test.com 1@best.com @best @not", default_topic_id)
|
||||||
expect(post_analyzer.raw_mentions).to eq(['best', 'not'])
|
expect(post_analyzer.raw_mentions).to eq(['best', 'not'])
|
||||||
|
|
|
@ -426,6 +426,11 @@ describe Post do
|
||||||
expect(post.raw_mentions).to eq(['jake', 'finn', 'jake_old'])
|
expect(post.raw_mentions).to eq(['jake', 'finn', 'jake_old'])
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it "handles hyphen in groupname" do
|
||||||
|
post = Fabricate.build(:post, post_args.merge(raw: "@org-board"))
|
||||||
|
expect(post.raw_mentions).to eq(['org-board'])
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
context "max mentions" do
|
context "max mentions" do
|
||||||
|
|
|
@ -112,13 +112,20 @@ describe PostAlerter do
|
||||||
|
|
||||||
expect(GroupMention.count).to eq(1)
|
expect(GroupMention.count).to eq(1)
|
||||||
|
|
||||||
group.update_columns(alias_level: Group::ALIAS_LEVELS[:members_mods_and_admins])
|
Fabricate(:group, name: 'group-alt', alias_level: Group::ALIAS_LEVELS[:everyone])
|
||||||
|
|
||||||
|
expect {
|
||||||
|
create_post_with_alerts(raw: "Hello, @group-alt should not trigger a notification?")
|
||||||
|
}.to change(evil_trout.notifications, :count).by(0)
|
||||||
|
|
||||||
|
expect(GroupMention.count).to eq(2)
|
||||||
|
|
||||||
|
group.update_columns(alias_level: Group::ALIAS_LEVELS[:members_mods_and_admins])
|
||||||
expect {
|
expect {
|
||||||
create_post_with_alerts(raw: "Hello @group you are not mentionable")
|
create_post_with_alerts(raw: "Hello @group you are not mentionable")
|
||||||
}.to change(evil_trout.notifications, :count).by(0)
|
}.to change(evil_trout.notifications, :count).by(0)
|
||||||
|
|
||||||
expect(GroupMention.count).to eq(2)
|
expect(GroupMention.count).to eq(3)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue